美文网首页
ActivityThread和android应用启动

ActivityThread和android应用启动

作者: kevin查_5ff1 | 来源:发表于2020-03-23 14:59 被阅读0次

    Android应用启动的入口
     
        android启动入口不是onCreate,而是ActivityThread的main。
    ActivityThread的main方法
    1、Envrionment.initForCurrentUser()     初始化应用中所使用的系统路径
    2、EventLogger.setReporter(new EventLoggingReport()) 在libcore中为事件日志设置一个reporter
    3、Security.addProvider(new AndroidKeyStoreProvider()) 增加一个保存key的provider
    4、TrustedCertificateStore..setDefaultUserDirectory(configDir)  为应用设置当前用户的CA证书保存的位置
    5、Process.setArgV0("<pre-initialized") 设置进程的名称
    6、Looper.prepareMainLooper() 初始化主线程的looper
    7、ActivityThread thread = new ActivityThread()  thread.attach(false) 创建ActivityThread对象并调用attach
    8、Looper.loop() 让looper无限循环起来,进入消息循环
    什么时候调用ActivityThread中的main方法呢?
        从Zygote进程fork出来应用进程后,会通过反射方法来调用,具体是通过RuntimeInit的invokeStaticMain方法调用
    ActivityThread一个应用有几个呢?
        一个应用只会创建一个,启动的activity都保存在ActivityThread的mActivities中,这是一个ArrayMap<IBinder,ActivityClientRecord>

    相关文章

      网友评论

          本文标题:ActivityThread和android应用启动

          本文链接:https://www.haomeiwen.com/subject/uqdwyhtx.html