转载请标明出处:http://blog.csdn.net/Christopher_Lv/article/details/44917199
大家都知道robotium进行黑盒测试时需要重签apk,今天我尝试了下,把步骤和遇到的问题做一下总结:
- 下载重签名UI工具re-sign.jar,路径:http://download.csdn.net/detail/christopher_lv/8569477
- 将目标apk拖拽到re-sign.jar中,
如果报如上错误,说明在%ANDROID_HOME%\tools下没有找到zipalign.exe。
解决方法有两种:
- 我用的是android 5.0.1,zipalign.exe是在%ANDROID_HOME%\build_tools\21.1.2\下,将其复制到tools文件夹下重试即可。
- 使用jd-gui反编译re-sign.jar,发现zipalign的路径是通过变量de.troido.resigner.controll.ResignerLogic中的zipalignpath指定,将其改为
zipalignpath = new File(androidhome).getAbsolutePath() + "/build_tools/21.1.2/zipalign";
- 重签名后需要获取包名和main activity名。有两种方法能够获取:
- re-sign.jar重签名后会自动显示这些信息
- 在命令行中输入aapt dump badging com.baidu.tieba_032622.apk可以获取如下信息
package: name=’com.baidu.tieba’ versionCode=’101057024’ versionName=’6.6.2’ platformBuildVersionName=”
sdkVersion:’7’
targetSdkVersion:’11’
application-label:’百度贴吧’
application-icon-120:’res/drawable-ldpi/icon.png’
application-icon-160:’res/drawable-hdpi/icon.png’
application-icon-240:’res/drawable-hdpi/icon.png’
application-icon-320:’res/drawable-xhdpi/icon.png’
application-icon-480:’res/drawable-xhdpi/icon.png’
application: label=’百度贴吧’ icon=’res/drawable-hdpi/icon.png’
launchable-activity: name=’com.baidu.tieba.LogoActivity’ label=” icon=”
uses-permission: name=’android.permission.SYSTEM_ALERT_WINDOW’
…
粗体内容即为robotium所需信息
- re-sign.jar重签名后会自动显示这些信息