美文网首页androidAndroid热修复技术Android开发经验谈
2.集成tinker后使用360加固并使用walle进行多渠道打

2.集成tinker后使用360加固并使用walle进行多渠道打

作者: 瓦雷 | 来源:发表于2017-07-27 11:14 被阅读320次

    1.集成TinkerPatch注意事项

    1.先修改app目录下build.gradle中的tinkerId
    2.tinkerPatch.gradle  中的 appVersion 值应该与tinkerPatch后台创建的版本值相对饮
    3.def baseInfo 该值填写基础apk的一级目录
    4.def variantName 该值填写基础apk的二级目录
    5.需要使用加固的时候记得将protectedApp设置为true
    

    2.整合tinker+walle+360加固

    tinker貌似对原来的友盟多渠道的集成方式不兼容,官方建议使用walle,
    然后walle是针对android 7.0新出的一种签名机制( Signature V2 Scheme)的签名工具。
    

    参考:
    http://blog.csdn.net/blf09/article/details/72782795
    http://blog.csdn.net/likuan0214/article/details/71682993

    3.tinker+walle+360加固整合的初衷

    在集成完tinker之后准备进行多渠道打包,
    然而···
    传统的多渠道打包方法是通过gradle配置productFlavors,在配合grade的manifestPlaceholders插件,就可以实现task打多渠道包。
    如果使用这样的方式的话,基础包bakApk目录下会生成N个基础包,显然这样子要更新所有渠道的补丁的时候真的会疯掉(有实现方法的大神指点一二....)
    官方的建议:#不然建议采用zip comment或者文件方式生成渠道信息(相关工具:walle 或者 packer-ng)
    果断选择了walle,美团出品
    

    4.集成

    首先将打包好的应用上传360加固,注意使用的是网页版的加密,加密好后下载到本地备用,千万别用360pc版本的客户端,因为其使用的还是V1(传统)得签名方式。
    
    注:下文中提及的路径都是指该文件的 文件夹的路径名称+文件名(包括文件后缀)
    

    1.使用Android SDK中的zipalign - 对齐操作 - 优化 zipalign

    该执行文件在sdk中build-tools文件25.+的目录中

    zipalign.png

    我们只需要在cmd命名行中进入到该目录下cd D:\tools\sdk\build-tools\25.0.2中

    执行命名 zipalign -v 4 [需要优化的apk路径] [优化后的apk路径]

    例如: zipalign -v 4 
    C:\Users\Administrator\Desktop\fengzhuantoutiao_apk\app-release.encrypted.apk 
    空格
    C:\Users\Administrator\Desktop\fengzhuantoutiao_apk\app-release.encrypted_zipalign.apk 
    
    
    232323.png

    检查当前APK是否已经执行过Align优化。命令:zipalign -c -v 4 test.apk

    提示:
     Verification FAILED 说明没有优化
     Verification succesful 说明优化成功
    
    注:mac下命令行在开头加上./
    

    2.使用V2签名工具再次签名加固后的Apk

    打开cmd命令行进入到刚刚的目录下cd D:\tools\sdk\build-tools\25.0.2
    
    执行命令...
    
    apksigner sign --ks [签名文件路径] [apk路径]
    
    回车之后会提示输入一次签名文件的密码
    
    再次回车秒签好,签名完成的文件会覆盖原有的apk文件,不要不知道签完名的文件去哪了~~~,可以看看签名文件的时间验证下。
    

    3。检查是否正确使用V2签名成功

    需要jar包,CheckAndroidV2Signature.jar 下载链接:[https://github.com/bihe0832/AndroidGetAPKInfo/blob/master/CheckAndroidV2Signature.jar](https://github.com/bihe0832/AndroidGetAPKInfo/blob/master/CheckAndroidV2Signature.jar) 
     注:下载jar包最好把整个项目下载下来,单独下载可能导致jar包损坏 
    
    执行命令: [Java](http://lib.csdn.net/base/java) -jar CheckAndroidV2Signature.jar   test.apk
     
    在cmd根目录执行即可
    
    执行命令后返回: 
    {“ret”:0,”msg”:”ok”,”isV2”:true,”isV2OK”:true} 是 V2 签名的App 
    {“ret”:0,”msg”:”ok”,”isV2”:false,”isV2OK”:false} 不是 V2 签名的App
    
    

    4.写入渠道信息

    需要 walle-cli-all.jar 包:[https://github.com/Meituan-Dianping/walle/blob/master/walle-cli/walle-cli-all.jar](https://github.com/Meituan-Dianping/walle/blob/master/walle-cli/walle-cli-all.jar)
    
     
    执行命令: 命令:(单个写入,如果未指定目录,生成的新Apk与[apk路径]同级目录) 
    java -jar [刚下载walle-cli-all.jar的路径] put -c 360 base_zipalign.apk
     java -jar [刚下载walle-cli-all.jar的路径] put -c [渠道名] [apk路径]
     java -jar [刚下载walle-cli-all.jar的路径] put -c [渠道名] [apk路径] [生成的apk路径(可选)]
    
    个人推荐使用这种方式比较方便:
     指定渠道配置文件: java -jar [刚下载walle-cli-all.jar的路径] batch -f [项目里channel的路径]  [apk路径]    
    
    大功告成....
    
    33333.png

    5.使用walle多渠道打包友盟统计的处理

    去掉以下的代码

    <meta-data
                android:name="UMENG_CHANNEL"
                android:value="${UMENG_CHANNEL_VALUE}" />
    

    在项目中添加代码进行统计

    //这里填写通过walle打包生成的渠道包
    String channel =WalleChannelReader.getChannel(getApplicationContext());
    String umengAppkey = "填写你在友盟注册的key";
    MobclickAgent.UMAnalyticsConfig umAnalyticsConfig = new MobclickAgent.UMAnalyticsConfig(context,
                umengAppkey,
                channel,
                MobclickAgent.EScenarioType.E_UM_NORMAL,
                true);
    
        MobclickAgent.startWithConfigure(umAnalyticsConfig);
    

    注意:

    <meta-data
                android:name="UMENG_APPKEY"
                android:value="xxxx" />
    上面的不能去掉,否则友盟登陆和友盟分享会崩溃
    

    相关文章

      网友评论

      本文标题:2.集成tinker后使用360加固并使用walle进行多渠道打

      本文链接:https://www.haomeiwen.com/subject/epqzkxtx.html