Android面试题之App的启动流程和启动速度优化
App启动流程概括:
当用户点击App图标,Launcher通过Binder IPC请求system_server启动Activity。system_server指示Zygote fork新进程,接着App进程向system_server申请启动Activity。经过Binder通信,Activity创建并回调生命周期方法。启动状态分为冷启动、温启动和热启动,其中冷启动耗时最长。优化技巧包括异步初始化、避免主线程I/O、类加载优化和简化布局。
通过Gradle自动实现Android组件化模块构建
为什么我们要用Gradle管理组件呢?
先来看看Android组件化需要实现的目标
按照业务逻辑划分模块
项目模块能够单独启动测试
能够根据需求引入或删除某些业务模块
通过不同模块的组合,组成不同的App
对于第一点:需要根据技术架构和业务架构来划分模块,这里需要根据实际情况来考虑。