解决方案 »

  1.   

    这段代码不在你的Application里面,在android的源代码里,Activity.java里面。大概的流程是,系统先启动一个线程,线程利用反射机制加载你的apk里面的activity类,生成一个对象实例,然后获得各种service,然后将service跟你的activity实例attach
      

  2.   

    还有,你那个所谓的binder,在android里面是一个用于通信的driver,他的实体实际上是类似socket里面的那个socket对象一样的实例,ApplicationThread只是操作他而已
      

  3.   

    近日研究Binder,正好也看了下application对应的进程启动及其建立Binder通信的地方。今天碰巧看到哥们这个帖子,就跟你分享下吧。请参考: http://blog.csdn.net/luoshengyang/article/details/6747696主要流程: 1. startViaZygote -> zygoteSendArgsAndGetPid -> openZygoteSocketIfNeeded && sZygoteWriter.write2. runSelectLoopMode -> peers.get(index).runOnce();  -> Zygote.forkAndSpecialize -> zygoteInit
     ->  zygoteInitNative -> onZygoteInit ->   sp<ProcessState> proc = ProcessState::self();  && proc->startThreadPool();