android系统getSystemService原理分析
来源:互联网 发布:手机图片移花接木软件 编辑:程序博客网 时间:2024/06/15 01:32
平常有很多用到系统服务的地方 比如TelephonyManger
TelephonyManager tm =(TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
系统会在frameworks/base/core/java/android/app/SystemServiceRegistry.java 这里注册
final class SystemServiceRegistry { ...... private SystemServiceRegistry() { } static { registerService(Context.TELEPHONY_SERVICE, TelephonyManager.class, new CachedServiceFetcher<TelephonyManager>() { @Override public TelephonyManager createService(ContextImpl ctx) { return new TelephonyManager(ctx.getOuterContext()); }}); }
ContextImpl会调用SystemServiceRegistry.java 中 getSystemService()方法
public static Object getSystemService(ContextImpl ctx, String name) { ServiceFetcher<?> fetcher = SYSTEM_SERVICE_FETCHERS.get(name); return fetcher != null ? fetcher.getService(ctx) : null; }
这里反射得到每个serviceString对应的 service服务 ContextImpl继承 Context 于是有如上的调用
阅读全文
0 0
- android系统getSystemService原理分析
- Android Context getSystemService分析
- Android Context getSystemService分析
- Android getSystemService 源码分析
- getSystemservice()原理
- getSystemService原理
- getSystemservice()原理
- getSystemService原理
- Android之getSystemService 各种系统服务总结
- Androidの系统服务之getSystemService
- android中的系统级服务getSystemService(name)
- Android getSystemService获取系统相应的服务
- android getSystemService(系统服务)学习
- Android getSystemService
- Android getSystemService
- android getSystemService
- Android getSystemService()
- android getSystemService()
- 让 BAT 的 Offer 不再难拿
- [日推荐]『旅行翻译』不懂外语也能走遍天下!
- Linux-流量访问监控
- jQuery中live()使用报错,TypeError: $(...).live is not a function(转)
- 光纤熔接机使用方法
- android系统getSystemService原理分析
- Django REST framework-教程06-ViewSets and Routers 原创翻译
- asp.net中的上传文件
- 北京买车武汉上牌超详细全细节攻略(北京买车必看)
- web.xmlwen头部引用报错
- jquery常用代码段
- Python工具包以及资源包
- 视觉编程
- 静态代码块、非静态代码块、构造函数三者执行顺序