Android APK 编译打包流程
来源:互联网 发布:如何在淘宝外卖开店 编辑:程序博客网 时间:2024/06/03 12:28
下面是Google官方的一个apk编译打包的流程图
一.用AAPT编译R.java文件
AAPT全称是 Android Asset Packaging Tool。
aapt有一个可执行的aapt.exe在Android SDK 的build-tools下,选择要编译的SDK版本,如23.0.1,
在该目录下命令行运行下面指令:
aapt.exe package -f -m -J E:\MyApp\bin (产物R.java输出的目录) -S MyApp\app\src\main\res (资源文件夹路径)-I D:\Tools\AndroidSDK\platforms\android-23\android.jar (本地android.jar路径)-M E:\MyApp\app\src\main\AndroidManifest.xml (项目AndroidManifest.xml)
aapt 参数的含义
-f 如果编译出来的文件已经存在,强制覆盖。
-m 使生成的包的目录放在-J参数指定的目录。
-J 指定生成的R.java的输出目录
-S res文件夹路径
-A assert文件夹的路径
-M AndroidManifest.xml的路径
-I 某个版本平台的android.jar的路径
-F 具体指定apk文件的输出
二.编译AIDL的java文件
AIDL的可执行文件也在Android SDK 的build-tools下,aidl.exe。如果项目没有AIDL文件,可以忽略此步骤。
aidl.exe -IE:\MyApp\app\src (项目路径) -oE:\MyApp\bin (.java文件输出) E:\MyApp\app\src\main\aidl\com\mytemplateapp\IMyAidlInterface.aidl (需要编译的AIDL文件)
三.把java文件编译成class文件
把R.java跟AIDL的 java文件编译出来以后,就可以跟其他java源文件一起编译成class文件了。
javac -encoding UTF-8-bootclasspath D:\Tools\AndroidSDK\platforms\android-23\android.jar-d E:\MyApp\bin (产物输出路径)E:\MyApp\app\src\main\java\com\mytemplateapp\*.java E:\MyApp\bin\com\mytemplateapp\R.javaE:\MyApp\bin\com\mytemplateapp\IMyAidlInterface.java
四.将编译好的class文件打成dex文件
此处选择class文件的路径需要注意,class文件绝对路径在“E:MyAppbin commytemplateapp”,但是在命令行输入时应该输入到“E:MyAppbin ”,这样编译时className才会跟path对应上。(commytemplateapp 是包名)
dx.bat --dex --output=E:\MyApp\bin\classes.dex E:\MyApp\bin
五.生成apk
- 1.资源文件打包,包括生成resources.arsc,以及xml文件的二进制文件,打进test.apk里面。
aapt package -f -M E:\Project\MyTemplateApp\app\src\main\AndroidManifest.xml-I D:\Tools\AndroidSDK\platforms\android-23\android.jar-A E:\MyApp\asserts -S E:\MyApp\app\src\main\res-F E:\MyApp\bin\test.apk
- 2.往apk里面加入dex文件。
由于apkbuilder工具已弃用,我们需要调用sdklib.jar 里面的com.android.sdklib.build.ApkBuilderMain类去调用。
java -classpath D:\Tools\AndroidSDK\tools\lib\sdklib.jar com.android.sdklib.build.ApkBuilderMain E:\MyApp\bin\test_unsigned.apk (新的apk)-v -u -z E:\MyApp\bin\test.apk (原来的apk)-f E:\MyApp\bin\classes.dex (需要加入的dex文件)
- 3.加入签名。
用SDK自带的一个debug key进行签名。
jarsigner -verbose -keystore C:\Users\Administrator\.android\debug.keystore-storepass android-keypass androidE:\MyApp\bin\test_unsigned.apkandroiddebugkey
- 3.签名对齐。
zipalign -f 4 ./testbuild/out/test_unsigned.apk ./testbuild/out/test_signed.apk
到此,apk就打包成功了,可以通过ADB安装到手机上了。
- Android APK 编译打包流程
- android apk打包流程
- Android Apk打包流程
- android打包apk流程
- Android APK打包流程
- Android APK打包流程
- Android APK打包流程
- Android Studio apk 打包流程
- Android笔记 - APK打包流程
- Android Studio apk 打包流程
- Android Studio apk 打包流程
- Android Studio apk 打包流程
- Android之apk打包流程
- Android Studio apk 打包流程
- Android Studio apk 打包流程
- Android Studio apk 打包流程
- Android Studio apk 打包流程
- Android APK打包流程详解
- 网络加载图片对比(Fresco/Glide)
- 滑动冲突研究之ScrollView+ListView
- 论文阅读ImageNet Classification with Deep Convolutional Neural Networks &Going Deeper with Convolutions
- 欢迎使用CSDN-markdown编辑器
- c++ 初始化问题
- Android APK 编译打包流程
- 洛谷OJ
- iOS经典讲解之网络编程 TCP/UDP HTTP
- bzoj 3916 暴力+hash
- python源码剖析 0-1章
- Java中的封装
- linux文件系统详解
- 安卓开发工具网址汇总
- android接入原生的支付宝支付(真的灰常简单,工具类)