包大小检测优化策略:
使用TinyPNG或者WebP优化图片资源
使用lint对于无用代码进行检测
AndResGuard、7Zip压缩等等
Android:https://github.com/wuba/Zucker
iOS:https://github.com/wuba/WBBlades
csdn参考: https://blog.csdn.net/Kibaco/article/details/128675330
模块化,业务module,功能feature
性能监控
启动耗时:
https://juejin.cn/post/7236924717310967863
通过nimbledroid这个工具
adb shell am start -S -R 10 -W com.example.app/.MainActivity
-S表示每次启动前先强行停止,-R表示重复测试次数。每一次的输出如下所示信息
Stopping: com.example.app
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.app/.MainActivity }
Status: ok
Activity: com.example.app/.MainActivity
ThisTime: 1059
TotalTime: 1059
WaitTime: 1073
Complete
冷启动时间:冷启动表示用户首次打开应用,这时进程还没创建,包含了Application创建的过程。冷启动时间指从第一次用户点击Launcher中的应用图标开始,到首页内容全部展示出来的时间。
热启动时间:热启动表示用户在首页按了返回,首页Activity已经Destroy,不过Application仍在内存中存在,对应的进程并没有被杀掉,不包含Application创建过程。热启动时间指在Application仍然存在的情况下,从用户点击桌面图标,到首页内容全部展示出来的时间。
onWindowFocusChanged()中停止冷启动计时