Android优化----启动页优化

1点击桌面图标(Launcher)--1向--->system_server发起startActivity请求
2system_server--2向-->zygote创建进程请求
3zygote进程fork出新子即App进程
4App进程,--向-->system_server进程,发起attachApplication请求
5system_server收到请求准备完毕之后---->App发起scheduleLaunchActivity请求
6App进程的binder进程(ApplicationThread)收到请求之后,通过handler向主线程发送LAUCH_ACTIVITY消息
7主线程收到Meaasge之后,通过反射创建目标Activity,并且回调Activity.onCrete方法
8App已经启动,进入生命周期,在执行完onCreta->onstart->onResume->UI渲染完成之后,用户就可以看到界面

图片1.png

启动优化方案
耗时检测1:日志(display) 或者 命令行adb shell am start -S -W [packageName]/[activityName]
检测2:cpuProfile工具
检测3:StrictMode严苛模式,去检测

手段:
1). 合理的使用异步初始化、延迟初始化、懒加载机制。
2). 启动过程避免耗时操作,如数据库 I/O操作不要放在主线程执行。
3). 类加载优化:提前异步执行类加载。
4). 合理使用IdleHandler进行延迟初始化。
5). 简化布局,条件与许下使用AsyncLayoutInflater(this).inflate异步初始化

你可能感兴趣的:(Android优化----启动页优化)