敬请期待英语怎么说seo网站推广
与在 App 内部启动一个 Activity 的不同之处在于,点击桌面 Launcher 首次启动一个应用程序的时候,会先去创建一个该应用程序对应的进程,然后执行 ActivityThread 的 main() 方法去创建该应用对应的 Application,然后再去启动首页 Activity。前面已经分析了进程的创建和启动首页 activtiy,这一篇文章我们对创建该应用对应的 Application 单独分析。
一、创建Application
前面分析通过 Process 里的 start 创建新的进程,AMS 通过 Zygote 创建应用进程,应用进程启动完成后通知 AMS,AMS 再通知应用创建 Application 对象。而 ActivityThread 类的 main() 函数是应用的入口函数。
1、ActivityThread
源码位置:/frameworks/base/core/java/android/app/ActivityThread.java
main
public static void main(String[] args) {……//创建一个主线程的looperLooper.prepareMainLooper();……ActivityThread thread = new ActivityThread();// 创建applicationthread.attach(false, startSeq);……Looper.loop();throw new RuntimeException("Main thread loop unexpectedly exited");
}