
Android Binder
文章平均质量分 79
fyfcauc
这个作者很懒,什么都没留下…
展开
-
android开发AIDL实例
From: http://blog.youkuaiyun.com/wangkuifeng0118/article/details/7277680 由于每个应用程序都运行在自己的进程空间,并且可以从应用程序UI运行另一个服务进程,而且经常会在不同的进程间传递对象。在Android平台,一个进程通常不能访问另一个进程的内存空间。但是android提供了AIDL可以用来进程间数据传递。转载 2014-12-16 22:12:49 · 429 阅读 · 0 评论 -
Android Handler 源码笔记
Handler:interface Callback -> handleMessage(Message msg)handleMessage(Message msg): 交由子类定制自己的Message处理逻辑.dispatchMessage(Message msg):如果msg自己的callback不是null, 那么会调用handleCallback(msg), message.callbac原创 2015-10-19 11:19:24 · 699 阅读 · 0 评论 -
Android Binder机制源码笔记(1)
Binder在java层的实现其实是对native层的封装(Binder.java中一堆的native方法),因此主要分析的应该是native层.android_util_Binder.cpp:对于java层的native方法在这里进行了register,已和c/c++层对应起来:构造一个JNINativeMethod数组,里面存储了Binder的java方法和cpp方法的映射: /* nam原创 2015-06-03 14:29:52 · 839 阅读 · 1 评论 -
Android Binder机制源码笔记(2)
一个Client要获得想要通信的Service的handle,必须先借助于ServiceManager来获得想要的service的handle, 所以第一步是和ServiceManager这个service通信,而serviceManader其handle固定为0,因此在IServiceManager.cpp的defaultServiceManager()就可以获得: 可以看到defaultSer原创 2015-06-16 13:19:26 · 532 阅读 · 0 评论 -
Android ResultReceiver 汇总
From: http://www.eoeandroid.com/thread-325401-1-1.html发现网络上对ResultReceiver的资料很少,刚好项目中用到,就花点时间整理下,提大家参考。首先看下官网对 ResultReceiver的解释Generic interface for receiving a callback result from someone原创 2015-02-15 20:12:26 · 1570 阅读 · 0 评论 -
Download模块 (十七)
Download模块 (十七)DownloadProxy是和DownloadService配对存在的,负责维护mainActivity和downloadService的通信交互。DownloadProxy不是一构造就立刻启动DownloadService,而是将启动Service放在一个init函数中,出于防止反复初始化,增加一个flag标记,如果当前还没有bind Downl原创 2015-03-03 18:33:30 · 1026 阅读 · 0 评论 -
Download模块 (十五)
Download模块 (十五)DownloadInfo实现了Parcelable,顾名思义,封装了一个Download的所有必要信息,信息足够使接收端构造出合乎发送端需求的DownloadTask。并且Info在接收端也会承载起M的角色,所有也会有一些setter来更新其信息。实现了Parcelable接口:(1)describeContents()直接返回0即可。原创 2015-03-03 15:05:48 · 568 阅读 · 0 评论 -
IBinder对象在进程间传递的形式(二)
From: 这篇文章是对IBinder对象在进程间传递的形式(一)这篇文章的补充,首先还是把service启动过程的流程图贴上来 这篇文章是对IBinder对象在进程间传递的形式(一)这篇文章的补充,首先还是把service启动过程的流程图贴上来 Android中主要通过2种方法来获得service IBinder:1. 通过ServiceManager.g转载 2014-12-18 11:00:27 · 448 阅读 · 0 评论 -
Android开发:什么是IBinder
From: http://blog.youkuaiyun.com/niu_gao/article/details/6453218上回书简单描述了进程间传递类对象的原理,这回在讲Parcel之前,先要讲一个东西:IBinder。IBinder是什么呢?首先要明白,Android的远程调用(就是跨进程调用)就是通过IBinder实现的,下面是对android开发文档的翻译。 IBinder是远程对转载 2014-12-18 10:10:37 · 466 阅读 · 0 评论 -
Android Binder 透传 Fd流程
Fd是通过binder可以透传(即client进程在收到此fd之后是可以作为自己进程已经打开的fd来是使用的)的信息之一在binder驱动的binder_transaction(…)方法中,有对Fd的特殊处理:在分析传递给驱动层的flat_binder_object 对象 fp时:如果fp->type是BINDER_TYPE_FD, 那么说明这次要传递的是一个跨进程的Fd: 调用file(类型原创 2016-02-29 14:35:45 · 3808 阅读 · 0 评论