(4.6.11)从Android源码到apk——apk打包过程
2016-04-25 20:24
369 查看
Android程序是怎么从源码变成可以安装使用的apk的
原文链接http://sparkyuan.github.io/2016/04/01/从源码到APK/ ,转载请注明出处
![](http://img.blog.csdn.net/20160401162705343)
![](http://img.blog.csdn.net/20160401162722609)
上面就是一个关于构建过程的一个典型的流程图。
aapt(Android Asset Packaging Tool)给你的Activity提供所需的资源文件,如 AndroidManifest.xml,XML文件,并编译它们。同时产生R.java文件,使你可以在java代码中引用这些资源。
aidl工具把.aidl接口转换成Java接口。
你所有的Java代码,包括 R.java和 .aidl文件,由Java编译器和编译输出.class文件。
dex工具把.class文件转换成Dalvik字节文件,第三方的类和.class也被转换成.dex文件
所有无法编译的资源(比如图片),编译好的资源文件和.dex都被送到apkbuilder工具中,生成最后的.apk
生成.apk时必须制定是debug还是release,release还要提供相应的key
如果选择release版本,还需要使用zipalign工具对apk对齐。齐处理即使得所有资源文件距离文件起始偏移为4字节的整数倍,这样通过内存映射访问apk文件时处理速度更快。
生成的apk在app/build/outputs/apk/目录下,命名规则 app--.apk,例如,app-demo-debug.apk.
原文链接http://sparkyuan.github.io/2016/04/01/从源码到APK/ ,转载请注明出处
原文链接http://sparkyuan.github.io/2016/04/01/从源码到APK/ ,转载请注明出处
流程
官方版
详细版
上面就是一个关于构建过程的一个典型的流程图。
aapt(Android Asset Packaging Tool)给你的Activity提供所需的资源文件,如 AndroidManifest.xml,XML文件,并编译它们。同时产生R.java文件,使你可以在java代码中引用这些资源。
aidl工具把.aidl接口转换成Java接口。
你所有的Java代码,包括 R.java和 .aidl文件,由Java编译器和编译输出.class文件。
dex工具把.class文件转换成Dalvik字节文件,第三方的类和.class也被转换成.dex文件
所有无法编译的资源(比如图片),编译好的资源文件和.dex都被送到apkbuilder工具中,生成最后的.apk
生成.apk时必须制定是debug还是release,release还要提供相应的key
如果选择release版本,还需要使用zipalign工具对apk对齐。齐处理即使得所有资源文件距离文件起始偏移为4字节的整数倍,这样通过内存映射访问apk文件时处理速度更快。
输出
生成的apk在app/build/outputs/apk/目录下,命名规则 app--.apk,例如,app-demo-debug.apk.原文链接http://sparkyuan.github.io/2016/04/01/从源码到APK/ ,转载请注明出处
相关文章推荐
- android自定义View之NotePad出鞘记
- CharmingAndroid框架类整理之VPIndicator类——ViewPager的指示器
- 诡异的Android开发中EditText键盘弹出后被遮盖的bug
- Android 状态栏的动态显示和隐藏
- (4.2.26)一个特别适合新手练习的Android小项目——每日一妹纸
- Aandroid 标题显示进度条遇到的问题总结
- Android学习——四大组件之Service
- android学习之ToggleButton的使用
- android 语音合成的简单实现
- Android解决“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题
- Android中实现“按下”效果 的方法 (代码、xml)
- android GPS 获取卫星数量
- 解读Android虚拟机工作原理
- Android 屏幕适配
- Android热修复技术链接收集
- Android Studio编译报错
- Android 项目利用 Android Studio 和 Gradle 打包多版本APK
- Android-OptionMenu选项菜单
- Android Studio更换现名图片导致编译失败
- Android 针对个人开发者的bmob支付