[android]android自动化测试六之命令行编译APK
手动编译你的apk,可以让资源目录不命名为res,你能够命名任何你想要的名字。
你可以在以下目录发现ant脚本:<SDK_HOME>/platforms/android-1.5/templates/android-rules.xml
第一步:产生R文件以及包资源
aaptpackage-f-M${manifest.file}-F${packaged.resource.file}-I${path.to.android-jar.library}-S${android-resource-directory}[-m-J${folder.to.output.the.R.java}]
第二步:编译java源文件以及R.java文件
usejavac
第三步:将classes文件转化成Dalvik自节码
usedx.bat
dx.bat–dex–output=${output.dex.file}${compiled.classes.directory}${jarfiles..}
第四步:创建未签名的apk
useapkbuilder
apkbuilder${output.apk.file}-u-z${packagedresource.file}-f${dex.file}
or
apkbuilder${output.apk.file}-u-z${packagedresource.file}-f${dex.file}-rf${source.dir}-rj${libraries.dir}
-rf=resourcesrequiredforcompiledsourcefiles?
-rj=resourcesrequiredforjarfiles
第六步:产生一个key
usekeytool
第七步骤:对APK进行签名
usejarsigner
jarsigner-keystore${keystore}-storepass${keystore.password}-keypass${keypass}-signedjar${signed.apkfile}${unsigned.apkfile}${keyalias}
第八步:发布
useadb
adb-dinstall-r${signed.apk}
InspectingyourAPKfile:
aaptlist-vlatest.apk
Openquestions:
1.Canyouincludemorethanonedexfileintheapk?
2.Canyouhavedexfilenamedotherthanclasses.dexintheapk?
3.Doesanapkhavetohaveapackagedresource?
相关推荐
adb shell cd system/app rm *.apk21. 获取管理员权限: adb root22. 启动Activity: adb shell am start -n 包名/包名+类名。