欢迎使用CSDN-markdown编辑器
来源:互联网 发布:战地1枪械数据 编辑:程序博客网 时间:2024/06/14 07:08
首先是对AMS持有的对象代理
C:客户端App所在进程
S: AMS服务所在进程
IActivityManager 接口
public abstract class ActivityManagerNative {
static public IActivityManager asInterface(IBinder obj) { return IActivityManager.Stub.asInterface(obj);}static public IActivityManager getDefault() { return ActivityManager.getService();}
所以跟进ActivityManager.getService()
public static IActivityManager getService() { return IActivityManagerSingleton.get(); }
private static final Singleton<IActivityManager> IActivityManagerSingleton = new Singleton<IActivityManager>() { @Override protected IActivityManager create() { final IBinder b = ServiceManager.getService(Context.ACTIVITY_SERVICE); final IActivityManager am = IActivityManager.Stub.asInterface(b); return am; } };
这是一个单例模式,首先获取远程服务的Binder接口,然后经典的asInterface转成定义的接口即可。获取远程服务都是从ServiceManager管家类获取
思考:app本身的进程如果获取远程服务AMS,是先拿到相应的Binder接口,然后获取代理来完成。
阅读全文
0 0
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- Q_OBJECT类
- linux git服务器搭建,多用户协作
- 谈谈个人网站的建立(一)——建站历史和技术架构
- poj 2109
- lintcode 三数之和
- 欢迎使用CSDN-markdown编辑器
- 最全面的 Spring 学习笔记
- Tomcat要点总结
- java interface 接口 及 接口的调用 实例及误区
- java执行字符串中的运算公式
- 缓存第五篇:无框架的自定义页面缓存---从后台到页面
- C中函数的声明
- 语音口令红包软件系统开发
- Influxdb自定义数据采样(CQ)