当前位置: 首页 > news >正文

网站开发设计流程时间表晚上国网app

网站开发设计流程时间表,晚上国网app,男人女人做那个网站,全国加盟网站官网因为工作中经常需要解决一些framework层的问题,而framework层功能一般都是system service 的代理stub,然后封装相关接口,并提供给APP层使用,system service则在不同的进程中运行,这样实现了分层,隔离&#…

        因为工作中经常需要解决一些framework层的问题,而framework层功能一般都是system service 的代理stub,然后封装相关接口,并提供给APP层使用,system service则在不同的进程中运行,这样实现了分层,隔离,跨进程等需求。

        下面以Vibrator为例,总结一下实现流程

  1. 定义一个抽象类Vibrator定义了应用中可以访问的一些抽象方法
    frameworks/base/core/java/android/os/Vibrator.java
  2. 定义具体的类SystemVibrator继承Vibrator实现抽象方法
    frameworks/base/core/java/android/os/SystemVibrator.java
  3. 定义一个AIDL接口文件IVibratorService.aidl定义系统服务接口
    frameworks/base/core/java/android/os/IVibratorService.aidl
  4. 定义服务VibratorService,实现IVibratorService定义的接口
    frameworks/base/services/java/com/android/server/VibratorService.java

public class VibratorService extends IVibratorService.Stub

5.将VibratorServicey添加到系统服务
frameworks/base/services/java/com/android/server/SystemServer.java

VibratorService vibrator = null; 

... 

//实例化VibratorService并添加到ServiceManager 

Slog.i(TAG, "Vibrator Service"); 

vibrator = new VibratorService(context);

ServiceManager.addService("vibrator", vibrator);

... 

//通知服务系统启动完成 

try { 

vibrator.systemReady();

 } catch (Throwable e) { 

reportWtf("making Vibrator Service ready", e); 

}

6.在SystemVibrator中通过IVibratorService的代理连接到VibratorService,这样SystemVibrator的接口实现里就可以调用IVibratorService的接口:
frameworks/base/core/java/android/os/SystemVibrator.java

private final IVibratorService mService;

 ...

public SystemVibrator() {

 ...

mService = IVibratorService.Stub.asInterface( ServiceManager.getService("vibrator"));

 ...

public boolean hasVibrator() {

 ...

try {

return mService.hasVibrator();

} catch (RemoteException e) { }

 ...

}

}

7.在Context里定义一个代表Vibrator服务的字符串
frameworks/base/core/java/android/content/Context.java

public static final String VIBRATOR_SERVICE = "vibrator";

8.注册SystemVibrator,在ContextImpl里添加SystemVibrator的实例化过程static方法中注册 registerService
frameworks/base/core/java/android/app/ContextImpl.java

registerService(VIBRATOR_SERVICE, new ServiceFetcher() {

public Object createService(ContextImpl ctx) {

 return new SystemVibrator(ctx);

}});

9.在应用中使用Vibrator的接口

Vibrator mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); mVibrator.vibrate(500);

10.为保证编译正常,还需要将AIDL文件添加到编译配置里
frameworks/base/Android.mk

LOCAL_SRC_FILES += \

...

core/java/android/os/IVibratorService.aidl \

上面的流程在location service和Bluetooth service等流程基本一致,也可以参照上面流程,实现自定义的系统服务,比如车机开发中经常面临这样的需求。

http://www.khdw.cn/news/68092.html

相关文章:

  • 雄安网站建设400多少钱seo实战技术培训
  • web前端工程师前景粤语seo是什么意思
  • 网站设计费最近的重要新闻
  • 南宁好的网站建设公司网络营销的类型有哪些
  • 建设厅安全员证书查询网站品牌营销推广代运营
  • 建设厅八大员seo快排技术教程
  • 怎么判断网站建设年龄十大营销模式
  • 徐城乡建设局网站微商软文范例
  • 广水网站定制网站建设与营销经验
  • 公司网站制作武汉怎么做蛋糕
  • 网站运营编辑seo在线优化工具
  • 如何用php做网站关键词优化教程
  • 导购网站的seo怎么做关键词分析软件
  • php手机网站开发网站运营推广方式
  • 北京网站建设 网站维护互联网营销师培训
  • 佛山新网站制作平台兰州seo培训
  • 网站建设需要写代码吗淘宝推广方法有哪些
  • 网站排名消失网红推广
  • 网站怎么做h5支付宝支付搜索百度app下载
  • 黄岩做网站公司电话企业推广app
  • 优惠券网站怎么做搜索引擎营销有哪些方式
  • 一级a做爰片免费网站瑜伽怎么自己创建一个网站
  • 兴仁县城乡建设局网站seo是什么公司
  • xampp wordpress linux深圳企业seo
  • 重庆公司注册代理seo推广骗局
  • 建筑网建筑规范大全专业网站优化外包
  • 常州注册公司代办注册烟台seo外包
  • 用flask做的网站有哪些网站建设的重要性
  • 小程序开发成本宁波seo排名公司
  • 公司百度网站建设郑州seo优化培训