社区
Android
帖子详情
关于Andorid新进程中的binder实体
a220315410
2014-03-12 06:39:31
App进程中存在一个Binder实体,ApplicationThread,
ActivityManagerService通过ApplicationThread的代理,和Application进行交互,例如让Application Pause到后台
但是为什么我找不到Application在那边启动binder线程,以监听ActivityManagerService的指令呢?
有哪位知道的,指点下~
...全文
218
3
打赏
收藏
关于Andorid新进程中的binder实体
App进程中存在一个Binder实体,ApplicationThread, ActivityManagerService通过ApplicationThread的代理,和Application进行交互,例如让Application Pause到后台 但是为什么我找不到Application在那边启动binder线程,以监听ActivityManagerService的指令呢? 有哪位知道的,指点下~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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。。。
Andorid
:关于
Bind
er
几个面试问题
bind
er
是一种
进程
间通讯的机制
进程
间通讯需要了解用户空间和内核空间每个
进程
拥有自己的独立虚拟机,系统为他们分配的地址空间都是互相隔离的。如两个
进程
需要进行通讯,则需要使用到内核空间做载体,内核空间是所有
进程
共享的一块内存区域。而用户空间切到内核空间需要使用到系统api ioctl进行通讯。
从AIDL来看
Bind
er
的通信原理(基于
Andorid
8
我们知道AMS给我们返回的一定是
Bind
er
的对象,所以我们去
Bind
er
中
看看// 1// 2// 3可以发现
Bind
er
文件
中
,有两处实现了这个方法,在
Bind
er
类
中
。注释1
中
通过 descriptor标识来返回,mOwn
er
是Bidn
er
本身。注释2、3是实现的,直接返回一个空。在Stub类的构造方法里我们就看到了只要Stub被构建就会调用:按理来说,不可能返回为空,我们应该都是得到一个正宗的 Stub类才对,但是实际上这里出现了偏出。
bind
er
初探
一、引言 前面android
进程
的创建流程(http://blog.csdn.net/newhope1106/article/details/54932800)有提到过
bind
er
,先来看看这部分的代码。 public static final void zygoteInit(int targetSdkV
er
sion, String[] argv, ClassLoad
er
classL
Android10.0
Bind
er
通信原理(二)-
Bind
er
入门篇
Modify the
bind
er
to request 1M - 2 pages instead of 1M. The backing store in the k
er
nel requires a guard page, so 1M allocations fragment memory v
er
y badly. Subtracting a couple of pages so that they fit in a pow
er
of two allows the k
er
nel to make more e
Andorid
跨
进程
通信
Bind
er
的学习
多
进程
基础
进程
: 独立 线程:
进程
内部滴一个小玩意~
进程
通信 IPC Int
er
Process Communication 文件 Intent AIDL
Andorid
基础Linux Linux 跨
进程
通信方式 1.管道 dn什么玩意 2.消息队列 3.信号 耳闻 4.共享内存 听懂了 多个
进程
共享同一个内存 5.信号量 耳闻 6.套接字 就是...
Android
80,488
社区成员
91,378
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章