Android软件的主入口也是main
,这个main方法定义在ActivityThread
中:
public static void main(String[] args) {
...
Looper.prepareMainLooper();
ActivityThread thread = new ActivityThread();
thread.attach(false);
if (sMainThreadHandler == null) {
sMainThreadHandler = thread.getHandler();
}
...
Looper.loop();
...
}
这里主要用到了Handler
机制,由于本文主要讲述Android加载机制,所有不过多分析Handler
,main
方法中主要有一个Looper
,一直在循环等待消息(Message
),main
方法中大多数都是主线程Handler
的一些操作,除此之外最重要的就是:
thread.attach(false);
查看attach
方法
private void attach(boolean system) {
...
final IActivityManager mgr = ActivityManager.getService(); //1
try {
mgr.attachApplication(mAppThread