zoukankan      html  css  js  c++  java
  • 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 文件,接口

    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,资源更小,客户调用更方便

     

  • 相关阅读:
    迁移Veil:手工打造Windows下编译的免杀Payload
    设置快速的debian源的方法:
    最新织梦的一个延时注入
    关于web后门权限防删的一个新思路
    安全狗两个中危提权+NET提权
    python抓取中文网页乱码通用解决方法
    SSRF漏洞的挖掘经验
    Hive中自定义Map/Reduce示例 In Java
    Hive学习之Locking
    Cloudera Manager及CDH最新版本安装全程记录
  • 原文地址:https://www.cnblogs.com/crushgirl/p/12912602.html
Copyright © 2011-2022 走看看