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

重庆门户网站dw中旅游网站怎么做

重庆门户网站,dw中旅游网站怎么做,平面设计新手兼职接单,浙江政务服务网官网因为工作中经常需要解决一些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.15wanjia.com/news/187095.html

相关文章:

  • 凯里市经济开发区建设局网站怎么开微信公众号
  • 深圳做网站哪家专业微信 文章 wordpress
  • 公司网站建设及维护管理办法建设银行集团网站首页
  • 西安网站开发服务多少钱网站手机端和电脑端
  • 色系网站网站建设 软件服务
  • 内江网站seo合肥网络推广
  • 网站是怎么制作的照片变年轻在线制作网站
  • 做薪酬调查的网站wordpress调用登录logo
  • 深圳做官网的公司北京网站搜索引擎优化推广
  • 阿里巴巴网站怎么做全屏大图网站建设在开封找谁做
  • 平台网站如何做推广方案设计一个好的产品怎么推广
  • dedecms做的系统网站主页是哪一个文件模仿京东商城网站开发视频
  • 酒店网站建设流程企业网站的基本内容以及营销功能
  • 揭阳网站制作平台网站建设需要租用什么
  • 网站开发云南搜索引擎调词平台价格
  • 有哪些免费网站可以发布广告企业所得税税率2022年最新税率表
  • 做网站需要会写代码6网页游戏网站手机
  • 青州网站设计公司公共资源交易中心怎么报名投标
  • iis7.0 asp网站配置怎么做网站促收录
  • 四平网站优化单页网站有哪些
  • 专业手机移动网站设计怎么卸载安装的wordpress
  • 网站静态页面网站技术培训班有哪些种类
  • 校园招聘网站策划书网络营销渠道也可分为
  • 毕设做网站 方面的论文网站禁止火车头采集
  • 已有网站可以做服务器吗企业网站的基本内容
  • 制作广告网站的步骤网页制作模板保存
  • 中化山东公路建设集团网站电子商务网站建设重点
  • 深圳住房和建设局网站登录界面asp做网站安全性
  • 如何做彩票网站信息大连建设招标网
  • 阿里巴巴免费做网站win主机 wordpress