从技术层面讲,如果要启动一个安卓app,首先需要触发启动过程,然后再分配系统资源,最后才启动要打开的app组件。本文我来对安卓系统app启动流程进行分析,对于应用开发、系统定制以及性能优化人员来说,熟悉应用启动流程会使你们在今后的工作中更加得心应手,做到知其然,知其所以然。在对安卓app启动流程分析过程中,必定是需要用到监测工具的,我推荐大家使用友盟+U-APM这款app性能监测工具,它的后台对于异常的查询速度是非常快的,使用起来非常方便。
启动App流程
用户点击Home上的一个App图标, 启动一个应用时:

Click事件会调用startActivity(Intent), 会通过Binder IPC机制, 最终调用到ActivityManagerService。 该Service会执行如下操作:
●第一步通过PackageManager的resolveIntent()收集这个intent对象的指向信息。
●指向信息被存储在一个intent对象中。
●下面重要的一步是通过grantUriPermissionLocked()方法来验证用户是否有足够的权限去调用该intent对象指向的Activity。
●如果有权限, ActivityManagerService会检查并在新的task中启动目标activity。
●现在, 是时候检查这个进程的ProcessRecord是否存在了。
如果ProcessRecord是null, ActivityManagerService会创建新的进程来实例化目标activity。
一、 创建进程
ActivityManagerService调用startProcessLocked()方法来创建新的进程, 该方法会通
安卓App启动流程深度解析

本文详细分析了安卓app的启动流程,从用户点击图标开始,包括启动过程、创建进程、绑定Application和启动Activity等步骤。同时,推荐使用友盟+U-APM作为性能监测工具,它能快速定位异常,辅助开发者进行性能优化和故障排查。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



