途牛APK压缩最佳实践
2016-11-09 11:03 阅读(248)
汪亮亮:    
       毕业于北京大学信息安全系,曾任职于Symantec,负责诺顿APP的病毒扫描核心工作。目前负责途牛旅游安卓客户端技术架构研究和技术演进。</section>


  途牛 APP 成长


  产  品</strong>


  APK 体积持续增加


  机遇 与 挑战


挑 战</strong>


解决问题 --- 从“压缩”开始&nbsp;   


           如    何    压    缩   ?        



 

 精 简 资 源</strong>




 

混 淆 资 源</span>




资源文件名称被修改,缩小resources.arsc的体积。</span>


 混淆资源 --- Resources.arsc




Resources.arsc的十六进制</strong>


 

 混 淆 流 程</span>



 

代码压缩 

 代码压缩 --- Java

 代码压缩 --- Native

修改Android.mk编译选项的配置,减少so文件的size。</span>



 
架构优化
 架构优化-插件化


 架构优化 --- 插件化资源加载</strong>

AssetManagerinstance = AssetManager.class.newInstance();


Method addAssetPathMethod = AssetManager.class.getDeclaredMethod("addAssetPath", String.class);


addAssetPathMethod.invoke(instance, apkPath);


 架构优化 --- 插件化class加载

DexClassLoader  pluginClassLoader = new DexClassLoader (dexPath, optimizedDirectory,libraryPath, parentClassLoader);


 架构优化 --- 插件化</strong>

 架构优化 --- React Native



 架构优化 --- 精简包体



来自:<span style="font-family: "Helvetica Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif; font-size: 0px; background-color: rgb(255, 255, 255);"> 途牛技术中心</p>