Android APK 编译打包流程

发布时间:2019-11-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Android APK 编译打包流程脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

下面是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:MyAppbin     (产物R.java输出的目录)   -s MyAppappsrcmainres                  (资文件夹路径) -i D:ToolsAndroidSDKplatformsandroid-23android.jar    (本地android.jar路径) -M E:MyAppappsrcmainAndroidManifest.XMl       (项目AndroidManifest.xML) 

aapt 参数的含义
-f 如果编译出来的文件已经存在,强制覆盖。
-m 使生成的包的目录放在-J参数指定的目录。
-J 指定生成的R.java的输出目录
-S res文件夹路径
-A assert文件夹的路径
-M AndroidMan@L_360_3@est.xml的路径
-I 某个版本平台的android.jar的路径
-F 具体指定apk文件的输出

二.编译AIDL的java文件

AIDL的可执行文件也在Android SDK 的build-tools下,aidl.exe。
如果项目没有AIDL文件,可以忽略此步骤。

  aidl.exe -IE:MyAppappsrc                          (项目路径)   -oE:MyAppbin.java文件输出)   E:MyAppappsrcmainaidlcommytemplateappIMyAidlInterface.aidl   (需要编译的AIDL文件) 

三.把java文件编译成class文件

把R.java跟AIDL的 java文件编译出来以后,就可以跟其他java源文件一起编译成class文件了。

javac -encoding UTF-8 -bootclasspath D:ToolsAndroidSDKplatformsandroid-23android.jar -d E:MyAppbin                                        (产物输出路径) E:MyAppappsrcmainjavacommytemplateapp*.java                                               E:MyAppbincommytemplateapPR.java E:MyAppbincommytemplateappIMyAidlInterface.java 

四.将编译好的class文件打成dex文件

此处选择class文件的路径需要注意,class文件绝对路径在“E:MyAppbin commytemplateapp”,但是在命令行输入时应该输入到
“E:MyAppbin ”,这样编译时classname才会跟path对应上。(commytemplateapp 是包名)

dx.bat --dex --output=E:MyAppbinclasses.dex E:MyAppbin 

五.生成apk

- 1.资源文件打包,包括生成resources.arsc,以及xml文件的二进制文件,打进test.apk里面。

aapt package -f -M E:ProjectMyTemplateAppappsrcmainAndroidManifest.xml -I D:ToolsAndroidSDKplatformsandroid-23android.jar -A E:MyAppasserts   -S E:MyAppappsrcmainres -F E:MyAppbintest.apk 

- 2.往apk里面加入dex文件。
由于apkbuilder工具已弃用,我们需要调用sdklib.jar 里面的com.android.sdklib.build.ApkBuilderMain类去调用。

java -classpath D:ToolsAndroidSDKtoolslibsdklib.jar com.android.sdklib.build.ApkBuilderMain E:MyAppbintest_unsigned.apk       (新的apk-v -u -z E:MyAppbintest.apk原来apk-f E:MyAppbinclasses.dex                         (需要加入的dex文件)  

- 3.加入签名。
用SDK自带的一个debug key进行签名。

jarsigner -verbose -keyStore C:UsersAdministrator.androiddebug.keystore -storepass android -keypass android E:MyAppbintest_unsigned.apk androiddebugkey 

- 3.签名对齐。

zipalign -f 4 ./testbuild/out/test_unsigned.apk ./testbuild/out/test_signed.apk 

到此,apk就打包成功了,可以通过ADB安装到手机上了。

脚本宝典总结

以上是脚本宝典为你收集整理的Android APK 编译打包流程全部内容,希望文章能够帮你解决Android APK 编译打包流程所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。