Loading... 本文主要汇总Android应用的启动速度优化方案。 # 阿里开源的alpha启动框架 github地址: [alpha](https://github.com/alibaba/alpha) [更快!更高效!异步启动框架Alpha完全解析](https://juejin.im/post/6844904201143713806) 其实除了在冷启动的时候需要对各种任务异步或同步执行,在某一个功能点里,也会用到,比如一个详情页,会根据详情ID请求数据接口后,做很多其他接口的请求和UI的展示工作,那么都可以使用这个alpha框架来组织任务。 底层是使用到了线程池来进行异步任务处理(不然呢?),虽然也是支持多进程的,但是多进程带来的开销与不使用到底哪个更优,还是需要根据业务情况在开发阶段多做耗时测试。 **总结**:相比使用Rxjava的各种map、zip操作符而言,alpha框架使用简单,学习成本低,但是其场景仍比较理想化,实际业务中可能会有多个分支,很难在一个project里使用add、after来完成,所以对于这类需要异步或者同步交叉的逻辑流,还是使用Rxjava或者Java 8中的Stream API,或者使用Kotlin里协程的Flowable来组织,虽然学习成本大了点,但是可以应对各种复杂场景。 [RxJava 3.X](https://github.com/ReactiveX/RxJava) [Kotlin协程和在Android中的使用总结(五 Collection、Sequence、Flow与RxJava对比(上))](https://blog.csdn.net/unicorn97/article/details/105196025) # Jetpack的新成员App Startup 这个库主要是用来针对项目中用到很多第三方库时,如果这些第三方库使用所谓的无Context初始化,即自己在库内搞了一个ContentProvider来做初始化,那么引入这样的多个库就会导致应用启动时创建多个ContentProvider,这无疑对内存和启动时间都有影响。 而如果能在一个ContentProvider中完成所有第三方库的初始化,那就能减少ContentProvider创建的时间。 App Startup就是这样的一个库,即每个第三方库都使用App Startup的API来初始化,这样看来,App Startup这个库主要是用来开发SDK时使用,不过现在一般的项目都会做很多的组件拆分,因此在每个需要初始化的拆分的组件内使用App Startup,则可以使得最终整个App中,仅使用一个ContentProvider来完成各库的初始化。 这里推荐两篇博文: [Jetpack新成员,App Startup一篇就懂](https://mp.weixin.qq.com/s/rverE0OGRnncB5-K-_Wesg) [Jetpack 最新成员 AndroidX App Startup 实践以及原理分析](https://juejin.im/post/6844904190440013837) **总结**:不知道现在多少项目已经改成AndroidX了,比较马上都2021年了,如果大家都改成了AndroidX,那这个Jetpack的新成员App Startup还是挺好的,不过即使应用也是在SDK中使用,主项目无感知。 # 抖音的BoostMultiDex [开源 | BoostMultiDex:挽救 Android Dalvik 机型APP升级安装体验](https://mp.weixin.qq.com/s/0gtkc7IQdhKjFxrHCuNZwQ) 由于优化只是针对4.4以下的Dalvik机型,而现在多数app都已经把最低兼容版本设为5.0,甚至是6.0,所以用处也比较有限。 # 其他方案 参考: [都9102年了,Android 冷启动优化除了老三样还有哪些新招?](https://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650829097&idx=2&sn=e59841d4b1ed7e12a30e29ec51072d70&chksm=80b7a5b7b7c02ca184e0c06289d90823d589e738c55712318875f51e4aeb8646294b8d426299&scene=27#wechat_redirect) [支付宝 App 构建优化解析:通过安装包重排布优化 Android 端启动性能](https://mp.weixin.qq.com/s/79tAFx6zi3JRG-ewoapIVQ) [支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」](https://mp.weixin.qq.com/s?__biz=MzUyMDk2MzUzMQ==&mid=2247483789&idx=1&sn=f3843b9ce282ab7d4e3c6225d780f9cd&chksm=f9e31529ce949c3f8c5d1ef7b96a3c09d358fec8c3d891c6640129152dbb3529b338f81b901f&scene=21#wechat_redirect) [Android App 启动优化全记录](https://www.androidperformance.com/2019/11/18/Android-App-Lunch-Optimize/) © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 ×Close 赞赏作者 扫一扫支付 0