要看得懂android代码,首先要了解binder机制。binder机制也是android里面比较难以理解的一块,这里记录一下binder的重要概念以及实现,作为备忘。部分内容来源于网上,如有侵权,请及时告知。1.binder通信机制概述binder通信是一种client-server的通信结构,1...
分类:
移动开发 时间:
2015-07-17 11:43:31
阅读次数:
163
框架spring+springMVC+mybatis,前台给后台传数据传不了时分秒,所以用springMVC的注解解决了,记录一下controller中如下:/** * * 方法描述 : 使用@InitBinder 标签对表单数据绑定 * @param binder */ @InitBin...
分类:
其他好文 时间:
2015-07-16 11:11:54
阅读次数:
165
本文中主要讲解了如何实现绑定service,该篇中主要讲了两种实现方式传递IBinder实例,继承Binder类和使用Messenger。继承Binder类适用于同一应用程序且同一进程中,使用Messenger可以进行IPC,包括service向client发送消息和client向service发送消息。本文中还涉及一些其它内容,具体内容请参见正文。...
分类:
移动开发 时间:
2015-07-15 22:59:32
阅读次数:
386
一、Binder通信流程简单概述
(一)Binder用以Android内部的进程间通信,Binder相对于传统的Linux内核IPC(管道,信号,消息队列,共享内存,插口等)具有仅需拷贝一次内存的好处,进而提高了效率,也节省了内存;
从设计模式来看,Binder通信可以抽象为上图C/S模式,数据通信流程已经足够清晰。从中可以看出:
1、Client组件获得Service组...
分类:
其他好文 时间:
2015-07-13 18:43:24
阅读次数:
183
1)函数适配器的理论知识
2)常用函数函数适配器
标准库提供一组函数适配器,用来特殊化或者扩展一元和二元函数对象。常用适配器是:
1、绑定器(binder): binder通过把二元函数对象的一个实参绑定到一个特殊的值上,将其转换成一元函数对象。C++标准库提供两种预定义的binder适配器:bind1st和bind2nd,前者把值绑定到二元函数对象的第一...
分类:
编程语言 时间:
2015-07-09 22:40:57
阅读次数:
144
Token是ActivityRecord的内部静态类,我们先来看下Token的继承关系,Token extends IApplicationToken.Stub,从IApplicationToken.Stub类进行继承,根据Binder的机制可以知道Token是一个匿名Binder实体类,这个匿名Binder实体会传递给其他进程,其他进程会拿到Token的代理端。
我们知道匿名Binde...
分类:
其他好文 时间:
2015-07-09 17:57:19
阅读次数:
757
Android-AppWidget
一 AppWidget
1,界面小组件:模型
2,特点:
界面显示复杂,必须用到ViewGroup
事件不再单一
用到进程间通讯-不断的通讯和刷新二 设计AppWidget的思路
1,Binder-service和AppWigetManager
2,序列化的复杂界面传输
3,刷新,使用广播三 AppWidget主要使用的类和框架
与界面相关的...
分类:
移动开发 时间:
2015-07-07 09:39:39
阅读次数:
254
一、出问题的场景1、Sensorservice线程正在处理compass sensor事件的过程中,检查了一次buffer的指针的有效性,并在稍后会传递到AKM获取数据的函数接口中使用2、Sensorservice线程所在进程的负责跨进程通信的Binder线程在sensorservice线程检查buffer指针之后没有真正使用之前,收到了disable compass sensor的请求,从log...
分类:
移动开发 时间:
2015-07-03 17:31:28
阅读次数:
194
在看Binder源码时,总是接触到很多这些莫名其妙的struct,故依据几本参考资料先把这些数据结构的意义即关系整理以下:
/** \kernel\goldfish\drivers\staging\android\binder.c*/
1、binder_work:
//表示binder驱动中进程所要处理的工作项
struct binder_work {
str...
分类:
其他好文 时间:
2015-07-02 19:33:33
阅读次数:
180
我们现在对上一节中的DEMO进行改进,在服务中开启线程来执行。package com.example.service;import android.app.Service;import android.content.Intent;import android.os.Binder;import an...
分类:
移动开发 时间:
2015-07-01 20:21:22
阅读次数:
142