一. 减少方法的数目
1). 在开发过程中对应用方法的限制是非常重要的——《Android 高性能变编程》:
我们可以在apk中关联大量的方法,但最多只能调用前65536个方法,没有更多的空间可供指令调用。为了解决这个问题,工程师们花了大量的时间讨论,但大部分解决方案都会对应用的性能产生影响。
方法过度会导致:
- 包的体积增大
- dex增多
dex增多,会导致加载耗时。
可以采用:
1>apk-method-count查看项目的方法。
2>android-classyshark,找一个简单的apk,用它打开并查看他的结构。
解决办法有以下:
1>移除重复的库
烂的代码往往经过几手,通常旧的开发者会引入多个有重复功能的包。
2>优化混淆规则
对项目中使用的Jsoup和Greendao的混淆规则进行优化,之前相关的开发人工的混淆规则是keep整个库,所以会导致无用的方法也保留
3>精选库的使用
作者早期的项目,用到过一个poi的库,字体的库,还有视频播放等。能使用早起的精简版本解决问题的,可以用早期的——因为当时没添加那么多功能,包的体积往往很小。
作者还接手一个视频类的项目,使用一个著名的开源库GSYVideoPlayer
,里面有两个视频播放的内核。作者讲了,如果不涉及到一些视频格式,可以继承更小的包。我就将整体的集成换成了微量的针对性的包。大大缩小了包的体积。
- 所以库的使用:要做到时时勤拂拭,莫使惹尘埃!——经常去看自己的集成库。
参考文献:
《Android 高性能变编程》【西班牙】Enrique López Mañas(恩里克·洛佩斯·马尼亚斯),【意】Diego Grancini (迪戈·格兰奇尼)著叶坤 译
《Kotlin实战》【俄】Dmitry Jemerov Svetlana Isakova 著 覃宇 罗丽 李思阳 蒋扬海 译
《重构改善既有代码设计》【美】马丁福勒(MartinFowler)著 熊节 林从羽译
Android app性能调优
安卓包的优化
内存占用优化
app渲染优化
掌握多线程使用
网友评论