[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?

相关推荐