android开发-Activity的启动过程

startActivity启动的是startActivityForResult

在startActivityForResult中启动了instrumentation的execStartActivity

Instrumentation因其强大的跟踪application及activity生命周期的功能,用于android 应用测试框架中,被做为基类使用

execStartActivity有一个checkStartActivityResult方法,就是为了会检查将要启动的Activity信息,

如果Activity不存在 会抛出Unable to find explicit activity class;have you declared this activity in your Manifest.xml

看到这个异常激不激动!熟悉吧!

接着在execStartActivity中启动了ActivityManagerNative.getDefault()获取的就是ActivityManagerService在Ibinder中的引用

然后调用了AMS中的startActivity

经过一大推互相调用 之后 走到了ApplicationThread中 通过调用scheduleLunchActivity

在这个方法里,通过一个Handler发送一个消息给H处理,handleLaunchActivity方法来实现

最终通过Instrumentation的newActivity放来 使用类加载器创建这个Activity


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值