安卓添加系統(tǒng)自定義服務(wù)

安卓版本:4.4
因?yàn)轫?xiàng)目中用到了,做一下簡(jiǎn)要筆記。

  1. 定義aidl文件,如IFlyscaleManager.aidl,放到frameworks/base/core/java/android/flyscale/IFlyscaleManager.aidl
  2. 定義服務(wù)FlyscaleService.java,實(shí)現(xiàn)該IFlyscaleManager.aidl,放到frameworks/base/service/java/com/android/server/flyscale/FlyscaleService.java
  3. 調(diào)用FlyscaleService服務(wù),定義FlyscaleManager.java,放到frameworks/base/core/java/android/flyscael/FlyscaleManager.java
  4. 添加服務(wù),修改frameworks/base/core/java/android/content/Context.java
    添加:
/**
 *@author bianjb add flyscale service
 */
public static final String FLYSCALE_SERVICE = "flyscale";

修改initAndLoop()方法,添加

//framework/base/services/java/com/android/server/SystemServer.java 
//bianjb:add flyscale service
FlyscaleService flyscaleService = null;

//bianjb: add for flyscale service
try {
    if (PowerGuruService.isEnabled()) {
        Slog.i(TAG, "Flyscale Manager");
        flyscaleService = new FlyscaleService(context);
        ServiceManager.addService(Context.FLYSCALE_SERVICE, flyscaleService);
    }
} catch (Throwable e) {
    Slog.e(TAG, "Failure FlyscaleService", e);
}
  1. 實(shí)例化并注冊(cè)服務(wù)
    修改frameworks/base/core/java/android/app/ContextImpl.java
    的static代碼塊中添加
//bianjb:add for flyscale service
registerService(FLYSCALE_SERVICE, new ServiceFetcher() {
public Object createService(ContextImpl ctx) {
    IBinder b = ServiceManager.getService(FLYSCALE_SERVICE);
    IFlyscaleManager service = IFlyscaleManager.Stub.asInterface(b);
    return new FlyscaleManager(ctx, service);
}});
  1. 編譯IFlyscaleService.aidl
    修改frameworks/base/Android.mk
    添加
#add for flyscale service
LOCAL_SRC_FILES += core/java/android/flyscale/IFlyscaleManager.aidl \

之后重新編譯即可,在APP調(diào)用的方法與調(diào)用ActivityManager方法一致。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容