唯鹿的博客

一只努力的程序猿

使用gradle集成360加固

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集成

这里写图片描述

上图是打包时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中。代码中的apkPathapkPath.getParent()就是我们sh脚本中的APKDEST

3.使用

Terminal中执行gradlew assembleRelease

这里写图片描述

输出:

这里写图片描述

注意:如果出现类似$’\r’: command not found的错误。可以使用Notepad++打开文件,编辑–>文档格式转换–>转换为UNIX格式–>保存进行处理即可。

4.参考

51建设Android版一些技术整理

最后,请喜欢的点赞哦,你的鼓励是我的动力!

阅读更多

扫码向博主提问

去开通我的Chat快问

qq_17766199

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • Android
  • 单元测试
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_17766199/article/details/74929844
文章标签: gradle 360 android
个人分类: Android
上一篇Dagger2与AndroidInjector
下一篇Android 7.0脱坑指南
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭