Android SystemService

我想我会记得你
https://www.cnblogs.com/chorm590/p/7258001.html

复制代码
    modified:   device/rockchip/common/BoardConfig.mk
    modified:   device/rockchip/common/init.rk30board.rc
    modified:   frameworks/base/Android.mk
    modified:   frameworks/base/api/current.txt
    modified:   frameworks/base/api/system-current.txt
    modified:   frameworks/base/core/java/android/app/ContextImpl.java
    modified:   frameworks/base/core/java/android/content/Context.java
    modified:   frameworks/base/services/java/com/android/server/SystemServer.java

Untracked files:
  (use "git add <file>..." to include in what will be committed)
  
    frameworks/base/core/java/android/app/GAManager.java
    frameworks/base/core/java/android/app/IGAManager.aidl
    frameworks/base/gaapimanager/
    frameworks/base/services/core/java/com/android/server/GAService.java
复制代码

 

Android创建系统服务(XHService)
实现功能:调用自己的Service,实现控制红蓝灯。


一、接口
首先定义一个 AIDL 文件,接口

1
frameworks/base/core/java/android/app/IGAManager.aidl

 

二、封装
Manager 这个就是一个封装类,用来封装 aidl接口的


三、功能
功能实现在Service

 

四、注册与编译
1、 aidl 接口参与编译

frameworks/base/Android.mk
    core/java/android/app/IAlarmManager.aidl \
    core/java/android/app/IXHManager.aidl \
    core/java/android/app/IGAManager.aidl \

2、注册成为系统服务,开机自动运行

frameworks/base/services/java/com/android/server/SystemServer.java

     gaService = new GAService(context);
     ServiceManager.addService(Context.GA_SERVICE,gaService);

3、定义标识符 (规范)

frameworks/base/core/java/android/content/Context.java
在 Context 中添加用于识别这个服务的标识符
public static final String GA_SERVICE = "GA_SERVICE";

4、功能和封装方法建立联系

GAManager.java & GAService.java
frameworks/base/core/java/android/app/ContextImpl.java

 

5、编译
更新系统api接口需要同时提交current.txt
解释一下什么是current.txt?
修改framework/base下面的api时要注意更新api/current.txt

so,要make update-api,更新一下,编译完之后,文件自动生成定义的方法
如果编译成功,current.txt 会生成定义的方法

 

五、封装成api 给应用调用
封装成api,资源更小,客户调用更方便

 

 

posted @   CrushGirl  阅读(458)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示