各位同学,今天专门开辟个 Robotium 的专题,主要是我自己在学习和研究 Robotium 过程中遇到的一些问题以及解决方法,有些资料的内容是来源于网络的,但都是为了更好地学习和工作,所以,请大家给点鼓励!
最近一直在看有关 Robotium 对安卓 APP 进行自动化测试的内容,结合网上所说的 APK 重新签名的问题,现将个人的实际操作汇总如下:
1、去除签名
将 apk 文件后缀改为.zip,然后从 winrar 中删除 META-INF 文件夹,删除后重新将文件名改成 apk 的后缀,这样就去除签名了。
2、JDK 为 1.6,
手动去除签名后然后用下面的命令进行签名:
注意下面的部分内容需要根据自己的 debug.keystore 的位置,和待签名 apk 的位置进行设置
jarsigner -keystore D:\Android\avd.android\debug.keystore -storepass android -keypass android D:\Android\apk\02-AndroidCalculator-unsign.apk androiddebugkey
zipalign 4 D:\Android\apk\02-AndroidCalculator-unsign.apk D:\Android\apk\02-AndroidCalculator-sign.apk
zipalign 能够使 apk 文件中未压缩的数据在 4 个字节边界上对齐(4 个字节是一个性能很好的值)
3、JDK 为 1.7(含 1.7)以上,签名稍有区别,需要加上参数:-digestalg SHA1 -sigalg MD5withRSA
jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore D:\Android\avd.android\debug.keystore -storepass android -keypass android D:\Android\apk\plingm\com.freephoo.android_1180-unsign.apkandroiddebugkey
zipalign 4 D:\Android\apk\plingm\com.freephoo.android_1180-unsign.apkD:\Android\apk\plingm\com.freephoo.android_1180-sign.apk
由于我装的是 JDK1.7 版本,故上述 “ -digestalg SHA1 -sigalg MD5withRSA” 的命令必须加上,这点非常重要,一定要看清楚本机安装的 JDK 版本!
这些是我在做 Robotium 时的一些经验总结,希望对大家能有所帮助!