Android提升之三 广播机制,IBINDER通信机制

哎,真难 2015-03-20 10:21:41
加精
前段时间生病了,一直没更新,今天先问下基础的,面试基础面是最基本的,只有问完了基础面才能问技术面,基础面过了,才能通过技术面来定薪,所以掌握基础特别重要
好的问题很简单,广播机制的分类,普通和无序的区别?ibinder通信机制的实现,是否用过AIDL?
...全文
2351 46 打赏 收藏 转发到动态 举报
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_26723833 2015-09-19
  • 打赏
  • 举报
回复
引用 8 楼 lollipoppp的回复:
ibinder在service中,在其中一个方法中返回,用来绑定服务的时候需要获得service对象,在跨进程的时候,就必须使用aidl,谷歌sdk文档中还说,用messenger也是可以用来跨进程获取服务对象的,不知道说的对不对。。。
回答不错!…………………
伊顺鸣 2015-04-08
  • 打赏
  • 举报
回复
值得学习,大家都来看看吧。
APP架构师 2015-04-07
  • 打赏
  • 举报
回复


广播分为三种,可以好好掌握一下。。。。。。。
福清仔 2015-04-07
  • 打赏
  • 举报
回复
_明月 2015-04-04
  • 打赏
  • 举报
回复
嗯,围观一下,求给分,谢谢撒。呵呵
hvk687 2015-04-02
  • 打赏
  • 举报
回复
在说一下AIDL;这个东西呢,是 Android Interface definition language;是android 定义的一套语法;来定义通讯接口的; 这个东西的文件是以.aidl结尾的;android在编译的时候,会把aidl编译成java文件;这个文件中就是一些ibinder的一些定义; .stub啊啥的,具体的可以去自己写一个玩玩,我记得也不是很清楚了;
hvk687 2015-04-02
  • 打赏
  • 举报
回复
其实,四大组建最终都是归结于binder binder是来自openbinder的,为了适合移动设备,进行了修改; binder是一个字符驱动设备;它的代码不是很多,可以去看看;binder通讯可以分为同步同学和异步通讯;但是andoroid中,貌似都是同步的;binder通讯,是分为binder server, binder client; 驱动会在binder client请求数据的时候,挂起请求的线程,等待binder server返回数据;binder底层是在内核区把binder client thread, binder server thread两者之间的数据进行交互; 我们用的四大组建,其实是在ActivityThread.java里面,管理了一些binder client;在ActivityManagerService中,管理了一些binder server; binder是IPC的基石; -------------------- 上面是自己对边看代码看的,和大家一起讨论
「已注销」 2015-03-30
  • 打赏
  • 举报
回复
感谢楼主分享!
益诚智客 2015-03-27
  • 打赏
  • 举报
回复
好问题,如果能再结合一些实际就更好了。
黄枫_ 2015-03-25
  • 打赏
  • 举报
回复
楼主的问题问很好,我面试也需要这个。我懒得打字回答了,自己想想然后去百度下。
哎,真难 2015-03-23
  • 打赏
  • 举报
回复
引用 23 楼 leafact 的回复:
引用 20 楼 heaimnmn 的回复:
引用 8 楼 leafact 的回复:
ibinder在service中,在其中一个方法中返回,用来绑定服务的时候需要获得service对象,在跨进程的时候,就必须使用aidl,谷歌sdk文档中还说,用messenger也是可以用来跨进程获取服务对象的,不知道说的对不对。。。
跨进程不一定要用aidl的,还有其它方法,你可以去研究下
意思是跨进程传输数据还有其他方法?
有的
Leafact 2015-03-23
  • 打赏
  • 举报
回复
引用 20 楼 heaimnmn 的回复:
引用 8 楼 leafact 的回复:
ibinder在service中,在其中一个方法中返回,用来绑定服务的时候需要获得service对象,在跨进程的时候,就必须使用aidl,谷歌sdk文档中还说,用messenger也是可以用来跨进程获取服务对象的,不知道说的对不对。。。
跨进程不一定要用aidl的,还有其它方法,你可以去研究下
意思是跨进程传输数据还有其他方法?
qnapjiujiu 2015-03-23
  • 打赏
  • 举报
回复
Hare_ 2015-03-23
  • 打赏
  • 举报
回复
粘性广播典型例子:系统中的电量信息广播,不论早晚任何程序启动后,如果注册了对系统电量信息的广播接收者,都会收到最新的电量信息,
请叫我皇上 2015-03-23
  • 打赏
  • 举报
回复
下载积分下载积分
12304108 2015-03-23
  • 打赏
  • 举报
回复
aidl类似windows com组件中的idl文件,是接口定义语言。
12304108 2015-03-23
  • 打赏
  • 举报
回复
广播机制确实有3种,但是可以分类为有序和无序。
哎,真难 2015-03-23
  • 打赏
  • 举报
回复
引用 27 楼 leafact 的回复:
引用 24 楼 heaimnmn 的回复:
引用 23 楼 leafact 的回复:
引用 20 楼 heaimnmn 的回复:
引用 8 楼 leafact 的回复:
ibinder在service中,在其中一个方法中返回,用来绑定服务的时候需要获得service对象,在跨进程的时候,就必须使用aidl,谷歌sdk文档中还说,用messenger也是可以用来跨进程获取服务对象的,不知道说的对不对。。。
跨进程不一定要用aidl的,还有其它方法,你可以去研究下
意思是跨进程传输数据还有其他方法?
有的
给个提示呗,(*^__^*) 嘻嘻……
自己写个ibinder
Leafact 2015-03-23
  • 打赏
  • 举报
回复
引用 24 楼 heaimnmn 的回复:
引用 23 楼 leafact 的回复:
引用 20 楼 heaimnmn 的回复:
引用 8 楼 leafact 的回复:
ibinder在service中,在其中一个方法中返回,用来绑定服务的时候需要获得service对象,在跨进程的时候,就必须使用aidl,谷歌sdk文档中还说,用messenger也是可以用来跨进程获取服务对象的,不知道说的对不对。。。
跨进程不一定要用aidl的,还有其它方法,你可以去研究下
意思是跨进程传输数据还有其他方法?
有的
给个提示呗,(*^__^*) 嘻嘻……
sinat_25940185 2015-03-23
  • 打赏
  • 举报
回复
加载更多回复(16)

80,350

社区成员

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

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