(1)选择版本:有多个版本,此处选用免费版(APK Protect PC Edition)。 我把软件也上传到CSDN服务器,下载地址。 下载后解压目录如下:
(2)目标应用:SplashAct.apk
(3)加密过程: 无需安装,解压后直接运行apkcrypt.exe; 选择需要加密的APK; 指定生成目标的名字; 点击按钮开始加密,软件会在同一目录下生成加密后的APK。
加密前:18823KB 加密后:18885KB
注:点击开始后,可能会弹出错误信息:The application need Java jre , please install jre and retry 解决办法:由于电脑是64位的,我只安装了64位的jre,再去装个32位的jre就可以了
获取到加固之后的APK文件,这时还不能立即安装,会提示APK未签名,所以我们需要使用签名工具对其进行签名。 步骤:首先我们需要有.keystore 或.jks文件,那怎么生成呢?
.keystore 或.jks文件的生成(可跳过):.jks文件的生成如下:
可通过AS中build中的下边这个↓,调出上边↑这个图像化界面生成.jks文件即可;.keystore的生成
.keystore的生成麻烦一点儿,需要键入cmd命令进入命令模式。因为需要通过keytool.exe%20工具来创建keystore库.所以我们需要到"JDK"的安装目录的Bin子目录下,按住shift%20+%20鼠标右键选择“在此处打开命令窗口”进入本地命令模式。
输入以下命令:例子:keytool%20-genkeypair%20-alias%20 mydemo.keystore%20-keyalg%20RSA%20-validity%20 100 -keystore%20mydemo.keystore
命令说明如下:
-genkeypair%20 :指定生成数字证实
-alias%20:指定生成数字证书的别名
-keyalg:指定生成数字证书的算法%20 这里如RSA算法
-validity:指定生成数字证书的有效期
-keystore%20:指定生成数字证书的存储路径。%20 (这里默认在keytool.exe%20目录下)然后回车%20出现如图交互式界面%20 %20输入数字证书费密码%20作者%20 公司等详细信息
如图%20:
使用如下命令进行签名:
jarsigner -verbose -keystore mydemo.keystore -signedjar -Note.apk Notes.apk mydemo.keystore
以上命令的说明:
-verbose:指定生成详细输出
-keystore:指定数字证书存储路径
-signedjar:该选项的三个参数分别为 签名后的apk包 未签名的apk包 数字证书别名
注意有效期哦。
这个警告的话本身对签名没有影响,要想去掉这个警告只要在命令上再加上:
-tsa%20https://timestamp.geotrust.com/tsa 就可以了,不过考虑到在安装的时候就可能会提示安装失败,没有签名,所以再加这段话: -digestalg%20SHA1%20-sigalg%20md5withRSA%20,结果新的命令语句就是:
例:jarsigner -verbose -digestalg%20SHA1%20-sigalg%20MD5withRSA -keystore%20test.keystore%20-storepass%20test123%20-signedjar%20signed_client.apk%20client.apk%20test
签名后的apk%20 如图:sdk目录下tool目录下使用zipalign.exe工具优化APK安装包。
将已经签名的apk包放在zipalign.exe同目录下,如图:
使用如下命令:
zipalign -f -v 4 -Note.apk -Notes.apk
命令说明:
-f :指定强制覆盖已有文件
-v 指定生成详细输出
4:指定档案整理基于的字节数 一般是4 也有基于32位的。
-Note.apk :优化前APK
-Notes.apk 优化后的APK
运行命令后,在该目录下生成一个-Notes.apk,这个就是优化过的APK安装包,该安装包可以对外发布。如图:(注意命令之间的空格区域)
新闻热点
疑难解答