360加固我想大家并不陌生,使用起来也比较简单。只要下载它的加固助手上传我们打包签名好的APK文件就可以完成加固。但我们是否可以让他更加的便捷呢?答案是肯定的。
1.准备
首先我们下载360加固助手。这里我使用Windows版来说明。
解压后我们将jiagu
文件夹放到我们项目的根目录中。
因为360加固支持命令行方式加固,并且提供了详细的命令操作。因此我们可以使用sh脚本来实现。执行sh脚本需要我们的电脑提前安装 Cygwin。
2.集成
1.首先我们写执行的脚本(jiagu.sh):
#!/bin/bash
BASE=../jiagu/jiagu.jar
NAME=360加固账号
PASSWORD=360加固账号的密码
KEY_PATH=../app/keystore/test.jks #密钥路径
KEY_PASSWORD=111111 #密钥密码
ALIAS=test #别名
ALIAS_PASSWORD=111111 #别名密码
APK=$1 #需要加固的apk路径
DEST=$2 #输出加固包路径
echo "------ running! ------"
java -jar ${BASE} -version
java -jar ${BASE} -login ${NAME} ${PASSWORD}
java -jar ${BASE} -importsign ${KEY_PATH} ${KEY_PASSWORD} ${ALIAS} ${ALIAS_PASSWORD}
java -jar ${BASE} -showsign
#java -jar ${BASE}/jiagu.jar -importmulpkg ${BASE}/多渠道模板.txt #根据自身情况使用
java -jar ${BASE} -showmulpkg
java -jar ${BASE} -showconfig
java -jar ${BASE} -jiagu ${APK} ${DEST} -autosign
echo "------ finished! ------"
#-login <username> 首次使用必须先登录 <360用户名>
# <password> <登录密码>
#-importsign <keystore_path> 导入签名信息 <密钥路径>
# <keystore_password> <密钥密码>
# <alias> <别名>
# <alias_password> <别名密码>
#-importmulpkg <mulpkg_filepath> 导入多渠道配置信息,txt格式
#-showsign 查看已配置的签名信息
#-showmulpkg 查看已配置的多渠道信息
#-help 显示帮助信息
#-config [-update] 配置加固可选项 【升级通知】
# [-crashlog] 【崩溃日志】
# [-x86] 【x86支持】
#-showconfig 显示已配置加固项
#-version 显示当前版本号
#-update 升级到最新版本
#-jiagu <inputAPKpath> 加固命令 <APK路径>
# <outputPath> <输出路径>
# [-autosign] 【自动签名】
# [-automulpkg] 【自动多渠道】
# [-pkgparam mulpkg_filepath] 【自定义文件生成多渠道】
上面就是我们编写好的脚本代码,上面有详细的注释,大家只需要填写自己的信息即可。
最后我们将此脚本放入之前的jiagu
文件夹。
2.gradle集成
扫描二维码关注公众号,回复:
1650279 查看本文章
上图是打包时Run build
的最后Task,可以看到是assembleRelease
。我们执行脚本的时间也就在assembleRelease
之后。所以有如下代码:
afterEvaluate {
android.applicationVariants.all { variant ->
variant.assemble.doLast {
if (variant.buildType.name.contains('release')) {
def apkPath = variant.outputs.get(0).outputFile as File
exec {
ignoreExitValue true
commandLine "sh", "../jiagu/jiagu.sh", apkPath, apkPath.getParent()
}
}
}
}
}
补充:Android Studio 3.0后Gradle插件版本默认为3.0,所以有些方法变化,上面代码中get(0)方法替换为first()方法。其余不变。
def apkPath = variant.outputs.first().outputFile as File
我们将它加入我们项目的appbuild.gradle
中。代码中的apkPath
与apkPath.getParent()
就是我们sh脚本中的APK
与DEST
。
3.使用
Terminal
中执行gradlew assembleRelease
输出:
注意:如果出现类似$’\r’: command not found的错误。可以使用Notepad++
打开文件,编辑–>文档格式转换–>转换为UNIX格式–>保存进行处理即可。
4.参考
最后,请喜欢的点赞哦,你的鼓励是我的动力!