日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android4.4添加系统服务(aidl接口服务)

發布時間:2023/12/20 Android 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android4.4添加系统服务(aidl接口服务) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、 準備

  • 編譯好的Android4.4源碼
    用于添加系統服務,用于獲取CPU的Core數量。
  • AndroidStudio工具
    用于編寫apk調用系統接口
  • 二、 添加系統服務

  • 添加aidl接口
    frameworks/base/core/java/android/app/ICpuInfoManager.aidl

    package android.app;interface ICpuInfoManager {int getCpuCore(); }
  • 添加系統服務,實現aidl文件的接口
    frameworks/base/services/java/com/android/server/CpuInfoManagerService.java

    package com.android.server; import android.app.ICpuInfoManager; import android.content.Context; import android.util.Slog;public class CpuInfoManagerService extends ICpuInfoManager.Stub {private Context mContext;public CpuInfoManagerService(Context context){mContext = context;Slog.d("CPUINFO","Construct");} @Overridepublic int getCpuCore(){return 4;} }
  • 添加系統服務的Manager
    frameworks/base/core/java/android/app/CpuInfoManager.java

    package android.app; import android.content.Context; import android.os.RemoteException; import android.util.Slog;public class CpuInfoManager {Context mContext;ICpuInfoManager mService;public CpuInfoManager(Context context,ICpuInfoManager service){mContext = context;mService = service;} public int getCpuCore(){if(mService != null){try{return mService.getCpuCore();}catch(RemoteException e){Slog.e("CPUINFO","RemoteException " + e);} } return -1;} }
  • 將aidl文件添加至Android.mk參與編譯
    frameworks/base/Android.mk

    LOCAL_SRC_FILES += \core/java/android/app/ICpuInfoManager.aidl \
  • 添加Context中的Service常量
    frameworks/base/core/java/android/content/Context.java

    /*** 用于Service的注冊、SystemServer中的開機啟動以及上層應用的使用*/public static final String CPU_INFO_SERVICE = "cpuinfo";
  • 將實現的服務注冊到系統中去
    frameworks/base/core/java/android/app/ContextImpl.java

    registerService(CONSUMER_IR_SERVICE, new ServiceFetcher() {public Object createService(ContextImpl ctx) {return new ConsumerIrManager(ctx);}});// add register cpuinfo serviceregisterService(CPU_INFO_SERVICE, new ServiceFetcher() {public Object createService(ContextImpl ctx) {IBinder iBinder = ServiceManager.getService(Context.CPU_INFO_SERVICE);return new CpuInfoManager(ctx, ICpuInfoManager.Stub.asInterface(iBinder));}});
  • 將注冊的服務設置成開機啟動
    frameworks/base/services/java/com/android/server/SystemServer.java

    try {display.systemReady(safeMode, onlyCore);} catch (Throwable e) {reportWtf("making Display Manager Service ready", e);}// add cpuinfo servicetry{ServiceManager.addService(Context.CPU_INFO_SERVICE, new CpuInfoManagerService(context));} catch(Throwable e){Slog.e("CPUINFO","Failed to start CpuInfoManagerService " + e);}
  • 更新api接口并且編譯源碼

    make update-apimake -j32

    之后更新系統。

  • 三、編寫app調用

  • AndroidStudio中引入AOSP的jar包
    此處導入out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar即可。

  • 編寫app測試
    調用部分代碼:

    CpuInfoManager cm = (CpuInfoManager) getSystemService("cpuinfo"); // cpuinfo即Context.CPU_INFO_SERVICE, 不知道為什么,AndroidStudio引入frameworkjar包后,調不到。Log.d("CPUINFO", "getcpuinfo: " + cm.getCpuCore());
  • 四、調試

  • 查看服務是否啟動
    串口下輸入

    service list | grep cpuinfo

    出現以下信息即為添加系統調用服務成功:

    53 cpuinfo: [android.app.ICpuInfoManager]
  • logcat查看app是否調用成功
    串口下輸入

    logcat -vthreadtime -s CPUINFO

    出現以下打印(cpu core is 4)即為app調用成功:

    --------- beginning of /dev/log/system --------- beginning of /dev/log/main 01-01 08:00:04.433 1930 1930 D CPUINFO : Construct 05-18 15:03:26.770 4993 4993 D CPUINFO : cpu core is 4
  • 五、參考

    Android AOSP 添加系統服務【aidl接口服務】Java層

    總結

    以上是生活随笔為你收集整理的Android4.4添加系统服务(aidl接口服务)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 奇米视频在线观看 | 国产美女无遮挡免费 | 国产精品一二三四五 | 波多野结衣50连登视频 | 欧美性xxxxxx| 超碰狠狠干 | 久久久久国产视频 | 欧美人妻精品一区二区免费看 | 91网站视频在线观看 | 久久久久噜噜噜亚洲熟女综合 | 国产色爽 | 高清视频一区二区三区 | 亚州黄色网址 | 欧美xx在线| 久久国产成人精品国产成人亚洲 | 免费视频色 | 国产人妻777人伦精品hd | 麻豆蜜桃wwww精品无码 | 日韩在线观看免费 | 中文字幕+乱码+中文字幕明步 | 黄色的网站免费观看 | 尹人成人网| 人人澡人人插 | 国产精品无码在线播放 | 天堂色综合 | 蜜桃av成人永久免费 | 日韩欧美区 | 欧美30p| av动漫天堂 | 国产精品111 | 好爽…又高潮了毛片免费看 | 人人妻人人澡人人爽精品欧美一区 | 在线看片网站 | 女同二区 | 久久久久久天堂 | 在线观看亚洲色图 | 亚洲一区色 | 婷婷色中文网 | 国产一区二区内射 | 被扒开腿一边憋尿一边惩罚 | 久久99精品国产.久久久久久 | 一边吃奶一边摸做爽视频 | 午夜日韩在线 | 国产思思 | 噜噜噜在线| 妖精视频一区二区 | 欧美日韩高清一区 | √天堂8资源中文在线 | 国产一区二区三区在线观看 | 五月少妇| 91av免费观看 | 日韩在线第二页 | 国产suv精品一区二区69 | 91久久人人 | 欧美一区二区三区免费看 | 久操资源网 | 国产精品女同一区二区 | 黄色一级片毛片 | 天堂欧美城网站网址 | 在线观看国产一区二区 | 91久久在线观看 | 亚洲一线av | 亚洲一二三不卡 | 老熟妇高潮一区二区高清视频 | 国产成人精品综合在线观看 | 日韩精品av一区二区三区 | 91麻豆视频网站 | 91久久精品一区二区三区 | youjizz亚洲 | 天堂在线观看视频 | 美女扒开腿让男人操 | 蜜臀av色欲a片无码精品一区 | av猫咪 | 欧美成年人视频 | 亚洲视频在线观看免费 | 欧美高清hd19 | 中国黄色三级视频 | 国产高清不卡视频 | 国产精品丝袜在线观看 | 国产精品久久久久久妇女6080 | 91九色丨porny丨国产jk | 国产精品国产馆在线真实露脸 | 国产超碰在线 | 麻豆一级片 | 网友自拍咪咪爱 | 欧美成人精品一区二区 | 国产高潮自拍 | 真实乱偷全部视频 | 捆绑无遮挡打光屁股调教女仆 | 日韩亚洲国产精品 | 午夜在线精品偷拍 | 尤物在线视频观看 | 青青草视频在线观看免费 | 奇米影视久久 | 91成品视频 | 不卡免费视频 | 91插视频 | 国产精欧美一区二区三区蓝颜男同 | 肉色超薄丝袜脚交69xx |