re-sign.jar中后自动去除签名这个方法,经试验不可用!
1.去除准备重新签名SinaVoice.apk软件本身的签名
将apk文件后缀改为.zip,然后从winrar中删除META-INF文件夹,删除后重新将文件名改成apk的后缀
2.开始-运行-cmd
cd到android-sdk下的platform-tools文件运行
输入:jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore D:\tools\robotium\debug.keystore -storepass android -keypass androidD:\tools\robotium\SinaVoice.apk androiddebugkey 按回车
备注:D:\tools\robotium\debug.keystore 这个是自己debug.key的位置
D:\tools\robotium\SinaVoice.apk 这个是我准备签名的apk
3. 再cd到android-sdk的tools文件下运行
输入:zipalign 4 D:\tools\robotium\SinaVoice.apk D:\tools\robotium\SinaVoice_debug.apk
最后:D:\tools\robotium\SinaVoice_debug.apk就是我们自动化测试用的apk文件
重前面的应用,在运行时没有崩溃闪退就说明重签名成功。
最后说明一下,重签名后要获取mainactivity 和 packagename,在dos窗口中输入adb logcat *:I >> 11111.txt,将信息输出到指定的目录并过滤剩下有I开头的输出信息,然后在11111.txt找到相关信息
例如:I/ActivityManager ( 274 ):start proc com.xiaomi.channel for activity com.xiaomi.channel.ui.ChannelLauncherActivity:pid = 1599 uid = 10014 gid = {1024,3344,2182}
mainActiviy = "com.xiaomi.channel.ui.ChannelLauncherActivity";
packageName = "com.xiaomi.channel";
private static String mainActiviy = "com.xiaomi.channel.ui.ChannelLauncherActivity";private static StringpackageName= "com.xiaomi.channel"
主要是要修改androidmainfest.xml 中的android targetpackage = "com.xiaomi.channel";
第二种获取mainactivity 和 packagename的方法,就是使用jdk\bin里面的apt工具来获取
命令:aapt d badging C:\11111.apk(apk的位置)
package : name = 'com.xiaomi.channel'
launchable-actibity : name = 'com.xiaomi.channel.ui.ChannelLauncherActivity'