安卓app启动流程分析

从技术层面讲,如果要启动一个安卓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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值