android 添加ETH pppoe tr069服务
2016-05-26 17:10
477 查看
这三个服务是以Java端的服务方式启动的,对上层代理端是xxxManager,由aidl来和本地端xxxService来通信。
所以也就是说,他们的启动方式是在system_server中来addService。
添加服务:
在systemServer.java中,initAndLoop中回去add这些service,在ConnectivityService中,可以看到这些网络相关的服务被添加进去。
获取服务:
使用getSystemSevice来获取对应的代理端manger
EthernetManager mEM
= (EthernetManager)mContext.getSystemService(Context.ETH_SERVICE);
想通过Context.getSystemService(name)获取Manager实例,如上面所示,还必须要做另一个事情,就是在ContextImpl类初始化的时候,将Manager实例注册。
如果不这样注册的话,想要使用就不能从context中来获取服务,而是需要从serviceManager中用get方法来获取。这种的缺点是apk的编译必须要放在源码编译,因为在Eclipse等编译的话是没有serviceManager包可以用的。
所以也就是说,他们的启动方式是在system_server中来addService。
添加服务:
在systemServer.java中,initAndLoop中回去add这些service,在ConnectivityService中,可以看到这些网络相关的服务被添加进去。
获取服务:
使用getSystemSevice来获取对应的代理端manger
EthernetManager mEM
= (EthernetManager)mContext.getSystemService(Context.ETH_SERVICE);
想通过Context.getSystemService(name)获取Manager实例,如上面所示,还必须要做另一个事情,就是在ContextImpl类初始化的时候,将Manager实例注册。
registerService(ETH_SERVICE, new ServiceFetcher() { public Object createService(ContextImpl ctx) { IBinder b = ServiceManager.getService(ETH_SERVICE); IEthernetManager service = IEthernetManager.Stub.asInterface(b); return new EthernetManager(service, ctx.mMainThread.getHandler()); }}); registerService(PPPOE_SERVICE, new ServiceFetcher() { public Object createService(ContextImpl ctx) { IBinder b = ServiceManager.getService(PPPOE_SERVICE); IPppoeManager service = IPppoeManager.Stub.asInterface(b); return new PppoeManager(service, ctx.mMainThread.getHandler()); }});
如果不这样注册的话,想要使用就不能从context中来获取服务,而是需要从serviceManager中用get方法来获取。这种的缺点是apk的编译必须要放在源码编译,因为在Eclipse等编译的话是没有serviceManager包可以用的。
相关文章推荐
- 缓存策略在工作上的实际应用
- Android CountDownTimer倒计时器的使用
- 关于蓝牙通信文档 Android建立蓝牙RFCOMM通信
- android中获取View宽高的方法
- android 4.0 BLE开发官方文档介绍
- android 中tools命名空间的全解
- AndroidStudio的Gradle的分析(非配置,环境原理分析)
- Android SurfaceView播放视频
- [Android Studio] *.jar 与 *.aar 的生成与*.aar,jar,第三方库项目导入项目方法
- Realm Android简单使用说明
- Android 6.0权限模型
- Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
- android 基础 加密 加密类Cipher
- textview onclick属性 无效问题
- android图片压缩上传系列-基础篇
- 【android】:android五大布局详解
- Android apk动态加载机制的研究(二):资源加载和activity生命周期管理
- Android apk动态加载机制的研究
- android weakreference内存进行优化
- 全面介绍Android的MVVM框架 - 数据绑定