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

网站开发第三方登录设计百度广告开户

网站开发第三方登录设计,百度广告开户,百度seo现状,cocos creator做网站因为工作中经常需要解决一些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.hengruixuexiao.com/news/50963.html

相关文章:

  • 怎么做网站平台梦想百家号查询排名数据查询
  • 聊城市网站建设公司软文是什么文章
  • 重庆企业网络推广价格网站推广seo方法
  • 湖南营销型网站建设团队怎样建立一个自己的网站
  • wordpress 简体中文seo推广的公司
  • 用模板做网站需要懂代码吗seo手机排名软件
  • 潍坊高端网站建设公司网络销售公司经营范围
  • 怎么做网站一个平台磁力搜索器下载
  • 岳阳整站优化seo公司优化排名
  • jsp做网站都可以做什么互联网营销师是干什么
  • 北京免费做网站好的seo公司营销网
  • 闵行网站制作设计公司关键词搜索指数
  • 网站建设教程书籍大连seo外包平台
  • 自己服务器建网站天津网络广告公司
  • 在centos做网站百度今日小说搜索风云榜
  • 武汉地区网站建设深圳优化seo排名
  • 上饶哪里培训网站建设电商培训课程
  • 网站网页设计心得百度搜索引擎官网
  • 301重定向到新网站百度论坛
  • 哪个公司做网站好 知乎百度seo排名查询
  • 网站详情怎么做的网站优化要多少钱
  • 惠州网站建设是什么意思什么是关键词
  • 做美食如何加入团购网站搜索引擎seo关键词优化
  • 广州网站推广费用万网的app叫什么
  • 重庆做网站哪家好长沙企业网站建设报价
  • b2b 网站制作杭州龙席网络seo
  • 公司网页设计免费百度搜索名字排名优化
  • 一个论坛网站应该怎么做佛山网站建设排名
  • 做网站等保收费百度网址大全首页
  • 做安全题目是哪个网站百度软件中心下载安装