創(chuàng)建文件 IMyApiService
創(chuàng)新互聯(lián)建站是一家企業(yè)級(jí)云計(jì)算解決方案提供商,超15年IDC數(shù)據(jù)中心運(yùn)營(yíng)經(jīng)驗(yàn)。主營(yíng)GPU顯卡服務(wù)器,站群服務(wù)器,成都服務(wù)器托管,海外高防服務(wù)器,機(jī)柜大帶寬,動(dòng)態(tài)撥號(hào)VPS,海外云手機(jī),海外云服務(wù)器,海外服務(wù)器租用托管等。
文件路徑 frameworks/base/core/java/android/os/
定義了一個(gè)計(jì)算和的方法。
在frameworks/base/Android.mk
LOCAL_SRC_FILES最后加入
創(chuàng)建文件 MyApiService.java
文件路徑 frameworks/base/core/java/com/android/server/
實(shí)現(xiàn)aidl的接口,計(jì)算參數(shù)和。
(1)Context添加服務(wù)名
文件路徑 frameworks/base/core/java/android/content/Context.java
添加
(2)添加啟動(dòng)服務(wù)
文件路徑 frameworks/base/services/java/com/android/server/SystemServer.java
在startOtherServices方法中添加
創(chuàng)建 MyApiManager.java文件
文件路徑 frameworks/base/core/java/android/app/
文件路徑 frameworks/base/core/java/android/app/ContextImpl
添加registerService
記住make update-api
編譯打包完成后,燒寫(xiě)新的固件。
jar主要為了在android studio編譯環(huán)境中MyApiManager報(bào)錯(cuò)導(dǎo)致編譯不通過(guò)問(wèn)題。
也可以導(dǎo)入frameworks jar包或使用反射。
在源碼目錄packages/app下新建MyJar文件夾
并新建目錄com/myapi/(包名)
在目錄com/myapi/新建文件MyApi.java
具體Android.mk語(yǔ)法這里不做解釋,可以自行查閱
在MyApi目錄下直接運(yùn)行mm編譯命令(記得先source build/envsetup.sh)
待編譯完成后,jar生成目錄
out/target/common/obj/JAVA_LIBRARIES/Myapi_intermediates/javalib.jar
可更改為其他名稱。
現(xiàn)在
開(kāi)發(fā)APP
的公司不少,比較好的我認(rèn)為有智云app,他們
APP開(kāi)發(fā)
的不錯(cuò)。
開(kāi)啟服務(wù)有兩種方式: startService 和 bindService 。
首先在 AndroidManifest.xml 文件中聲明
啟動(dòng)服務(wù):
開(kāi)啟服務(wù)時(shí),調(diào)用一次 startService() ,生命周期執(zhí)行的方法依次是: onCreate() == onStartCommand();
調(diào)用多次 startService() , onCreate() 只有第一次會(huì)被執(zhí)行,而 onStartCommand() 會(huì)執(zhí)行多次。
該方式需要一個(gè) ServiceConnection 接口的實(shí)現(xiàn)類對(duì)象
MyServiceConnection.java :
MyService.java :
啟動(dòng)服務(wù):
bindService 開(kāi)啟服務(wù),生命周期執(zhí)行的方法依次是:
onCreate() == onBind() == onServiceConnected();
調(diào)用多次 bindService() , onCreate() 和 onBind() 都只在第一次會(huì)被執(zhí)行, onServiceConnected() 會(huì)執(zhí)行多次。