关于Andorid新进程中的binder实体

a220315410 2014-03-12 06:39:31
App进程中存在一个Binder实体,ApplicationThread,
ActivityManagerService通过ApplicationThread的代理,和Application进行交互,例如让Application Pause到后台
但是为什么我找不到Application在那边启动binder线程,以监听ActivityManagerService的指令呢?

有哪位知道的,指点下~
...全文
136 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy08god 2014-03-13
  • 打赏
  • 举报
回复
近日研究Binder,正好也看了下application对应的进程启动及其建立Binder通信的地方。 今天碰巧看到哥们这个帖子,就跟你分享下吧。 请参考: http://blog.csdn.net/luoshengyang/article/details/6747696 主要流程: 1. startViaZygote -> zygoteSendArgsAndGetPid -> openZygoteSocketIfNeeded && sZygoteWriter.write 2. runSelectLoopMode -> peers.get(index).runOnce(); -> Zygote.forkAndSpecialize -> zygoteInit -> zygoteInitNative -> onZygoteInit -> sp<ProcessState> proc = ProcessState::self(); && proc->startThreadPool();
appleeatworms 2014-03-12
  • 打赏
  • 举报
回复
还有,你那个所谓的binder,在android里面是一个用于通信的driver,他的实体实际上是类似socket里面的那个socket对象一样的实例,ApplicationThread只是操作他而已
appleeatworms 2014-03-12
  • 打赏
  • 举报
回复
这段代码不在你的Application里面,在android的源代码里,Activity.java里面。大概的流程是,系统先启动一个线程,线程利用反射机制加载你的apk里面的activity类,生成一个对象实例,然后获得各种service,然后将service跟你的activity实例attach。。。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧