在android开发时,我们需要加固以确保安全,需要多渠道进行精准客户分析,并且需要一个平台进行统计分析。
我现在常用的就是,腾讯乐固进行加固,美团进行多渠道打包,然后用友盟进行渠道分析。
我采取的方案是
1、先打包出来一个apk
2、乐固加固
3、签名
4、walle多渠道
5、多渠道配置到umeng分析
步骤这样的主要原因是因为加固会把渠道包给去掉。
先正常打包出来一个apk,乐固加固之后,进行签名
采用命令行签名,把签名文件,apk放到一个文件夹中,命令行cd进入到该文件夹下,然后进行如下操作
验证签名:
jarsigner -verify -verbose -certs app.apk
加固之后重新签名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore 签名文件名称 -storepass 签名密码 签名apk名字 签名别名
对齐:zipalign 4 apk名字 apk新名字
walle ,是美团Android Signature V2 Scheme签名下的新一代渠道包打包神器。
walle 多渠道打包的使用 https://github.com/Meituan-Dianping/walle
配置上walle
配置build.gradle
在位于项目的根目录 build.gradle 文件中添加Walle Gradle插件的依赖, 如下:
buildscript {
dependencies {
classpath 'com.meituan.android.walle:plugin:1.1.6'
}
}
并在当前App的 build.gradle 文件中apply这个插件,并添加上用于读取渠道号的AAR
apply plugin: 'walle'
dependencies {
compile 'com.meituan.android.walle:library:1.1.6'
}
把walle下面的jar包放到文件夹中,channel文件中配置的是渠道信息(该步骤仅需要这两个文件,其他文件是签名需要)
channle.txt内容如下,根据自己的需要配置。
xiaomi # 小米
meizu
huawei
oppo
vivo
googleplay
baidu
360cn
yyb
wangzhan
命令行进入该文件夹下
cd C:\Users\Administrator\Desktop\donghaohuosign
然后打包只需要一句命令行
java -jar walle-cli-all.jar batch -f C:\Users\Administrator\Desktop\donghaohuosign\channel.txt C:\Users\Administrator\Desktop\donghaohuosign
\donghaohuo.apk C:\Users\Administrator\Desktop\donghaohuosign
最后的一个路径是配置apk生成位置,默认生成在目录下,精简可以这样
java -jar walle-cli-all.jar batch -f C:\Users\Administrator\Desktop\donghaohuosign\channel.txt C:\Users\Administrator\Desktop\donghaohuosign
\donghaohuo.apk
就可以生成渠道包了。
你的应用中已经配置上了umeng了,我就不多赘述配置过程。
如果不修改,umeng肯定不能识别到渠道包啊,因为我们去掉了manifest中的umeng 渠道的配置和 gradle中的productFlavors 。
解决的办法也很简单。
只需要在初始化的时候,把第二个参数改成你获取到的channel
//友盟初始化
String channel = WalleChannelReader.getChannel(this.getApplicationContext());
Log.i("yicooll", "" + "*****************************" + channel);
UMConfigure.init(this, "", channel, UMConfigure.DEVICE_TYPE_PHONE, "")