Android apk实际就是压缩包,可以通过解压工具解压看到apk内部的内容,其中包含一些依赖的动态库,当我们只需要修改其中的某些动态库时,可以直接进行替换,最后打包成新的apk,而不需要使用Android Studio重新生成apk。此方法更快速高效。
步骤:
1、需要使用到apktool工具,可到apktool官网下载对应操作系统的版本。
2、解压初始apk:
apktool d original.apk
解压后在当前目录生成与apk同名的文件夹。
3、更新解压后文件夹中的动态库,动态库位于lib\arm64-v8a、lib\armeabi-v7a目录中,按照需要的架构更新即可。
4、重新打包生成新的apk:
apktool b -o unsigned.apk .\original\
5、生成签名证书(只需生成一次),需要安装有Java JDK,keytool是Java JDK自带的证书工具,运行:
keytool –genkey –alias abc.keystore –keyalg RSA –validity 20000 –keystore abc.keystore
参数说明:
-genkey参数表示:要生成一个证书(版权、身份识别的安全证书)
-alias参数表示:证书有别名,-alias mine.keystore表示证书别名为:mine
-keyalg RSA表示加密类型,RSA表示需要加密,以防止别人盗取
-validity 20000表示有效时间20000天
-keystore adc.keystore表示要生成的证书名称为adc
执行后,需要输入keystore密码,其它的项按提示输入即可。
6、对重新打包后的apk进行签名,jarsigner是Java的签名工具,运行:
jarsigner -verbose -keystore abc.keystore -signedjar new.apk unsigned.apk abc.keystore
参数说明:
-verbose:显示出签名详细信息
-keystore:使用当前目录中的abc.keystore签名证书文件
-new.apk:签名后生成的APK名称
-unsigned.apk:未签名的APK名称