平时开发过程中我们通过android studio编写完成android项目之后直接点击 Run ‘app’就可以在build/outputs/apk生成可以在android设备中安装的apk文件了,那么整个android源码的构建过程是怎么样的呢? 我们可以根据Google官方提供的流程图来具体了解构建的过程:
通常的构建过程就是如上图所示,下面是具体描述:
1.AAPT(Android Asset Packaging Tool)工具会打包应用中的资源文件,如AndroidManifest.xml、layout布局中的xml等,并将xml文件编译为二进制形式,当然assets文件夹中的文件不会被编译,图片及raw文件夹中的资源也会保持原来的形态,需要注意的是raw文件夹中的资源也会生成资源id。AAPT编译完成之后会生成R.java文件。
2.AIDL工具会将所有的aidl接口转化为java接口。
3.所有的java代码,包括R.java与aidl文件都会被Java编译器编译成.class文件。
4.Dex工具会将上述产生的.class文件及第三库及其他.class文件编译成.dex文件(dex文件是Dalvik虚拟机可以执行的格式),dex文件最终会被打包进APK文件。
5.ApkBuilder工具会将编译过的资源及未编译过的资源(如图片等)以及.dex文件打包成APK文件。
6.生成APK文件后,需要对其签名才可安装到设备,平时测试时会使用debug keystore,当正式发布应用时必须使用release版的keystore对应用进行签名。
7.如果对APK正式签名,还需要使用zipalign工具对APK进行对齐操作,这样做的好处是当应用运行时会提高速度,但是相应的会增加内存的开销。
相关推荐
7> 分析第一个ANDROID应用的启动过程 8> 电话拔打 9> 查看手机模拟器往控制台输出的日志信息 10> 如何部署应用到真实手机 11> 短信发送 12> 布局介绍 LinearLayout (线性布局)、AbsoluteLayout(绝对布局)、...
项目开发:开发者可以基于这些源代码快速构建自己的应用,或者将学习到的技术应用到现有项目中。 技术研究:适用于对Android系统深入研究的学者或开发者,可作为研究材料,探索移动技术的最新发展。
zxing.java源码解析一票验证申请 爱沙尼亚I-voting系统基于Android的投票验证应用程序 该存储库背后的目的是使爱沙尼亚互联网投票系统的官方 I-vote 验证应用程序的源代码可供公众审查。 该存储库不用于主动开发,但...
开源项目源码解析 Android快速开发框架,MVP架构,丰富的功能、简单的实现、详细的注释、规范的风格。OKHttp、UIL图片加载、ZXing二维码、沉浸状态栏、下载安装、自动缓存以及各种Base、Demo、UI、Util直接用。全新...
Asura的目标是使构建一个简单的应用程序变得容易,该应用程序可以解析JSON文件并将其显示在ListView中,主要是只需配置一个文件即可。 如何设置? 将项目导入Android Studio或使用编辑器。 编辑app / app / build...
zxing.java源码解析2016 年Spring软件工程 最近的评论 与 VincentWeixun dyzhangweix 合作的团队项目。 建议意见: 需要在本周晚些时候修复 JSON 解析错误(要做的事情太多了,只是觉得我还不想处理这个问题,但肯定...
毕业设计源码java 欢迎 尊敬的访客, 此页面旨在概述在 . 邀请学生为此存储库做出贡献。 这可以帮助具有相似主题的学生聚在一起并分享想法。 这是一个公共存储库。 文章复制:程序员在 Java 中使用继承做什么? 文章...
Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...
本项目使用Android Studio IDE的Gradle构建,实现思路也使用了常规的手机客户端通过向服务器端发送http请求,服务器端api接口返回json数据,然后手机客户端解析json数据,然后将数据展示在listview中。另外压缩包中...
此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...
如果说直接研究编译过程太过复杂的话,我们完全可以学习他软件实现的流程,代码编写的规范,学习到如何写代码才能完整的构建出这样一个大型的程序。 例程程序中如何使用变量,如何管理众多的程序集和全局变量,如何...
一个能够实现扫码登录的demo,不妨小小Star一下吧>。<〜,请戳。 本项目一共包含三份原始码,即服务器端,网页前端和移动端。 项目请戳,APP安装包或请戳: 网页和APP预设登录账号:123456,密码:123456。 ...
编译过程,编译开始时,将开始分析源码,将源码进行处理,处理的过程实际上是作为了一种替换,将原本写好的代码,根据JAVA与Android的规范进行替换,将代码替换为符合标准的java代码,之后调用java编译器进行编译。...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
回答android考试系统原始码,模拟考试答题欢迎星,本系统总体版本是离线版本,模拟做题都是通过写死的,在后期的维护中将通过构建后台服务器,展现动态做题,以及不同学科的做题,当然,也是开源的,喜欢的小伙伴也...
java实现验证码功能源码构建状态(主): 构建状态(开发): 使用以下后端配置运行测试: 托管在 back4app.com 上的解析服务器版本 2.2.24 托管在 openshift 上的解析服务器版本 2.2.13 Parse4CN1 - 代号为 # 的一...