安卓 FrameWork阅读之:ActivityThread作用

首先我们分析一个app的启动过程,我们通过eclipse中debug来查看app启动时的调用栈信息,下面是截图:
这里写图片描述
我们看到,主线程的调用栈信息,我在mainActivity中的onCreate方法上打的断点,主线程停在了我的onCreate()方法,那么我们来分析分析app的启动过程,主线程先是调用ZygoteInit类的main(String[])方法,对就java属性的同学是不是特别属性,这个不就是java程序的入口么,其实App就是一个跑在linux系统上的,java程序,他用的虚拟机就是谷歌重写的JVM,谷歌叫它Dalvik。我们知道ZygoteInit类是在Zygote进程创建当前进程后,对被创建的进程初始化,然后来到倒数第四行,ActivityThread.mian(String[]),这是我们今天的主角,
我们来分析分析它的作用。

1、通过源码分析,我可以知道ActivityThread.mian(String[])是被
ZygoteInit启动的,我们来ActivityThread.mian(String[])中看看:

  public static void main(String[] args) {
                  .....

        /**
        * 创建我们常说的MainThread的消息循环队列
        */
        Looper.prepareMainLooper();

        /**
        *  初始化我们的主角ActivityThread 
        */
        ActivityThread thread = new ActivityThread();
        /*
         *这个方法是将我们的ActivityThread连接到,我们MainThread
         *它里面都做啥呢,我们在下面来分析分析
         */
        thread.attach(false);

        if (sMainThreadHandler == <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值