重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创建文件 IMyApiService
创新互联建站是一家企业级云计算解决方案提供商,超15年IDC数据中心运营经验。主营GPU显卡服务器,站群服务器,成都服务器托管,海外高防服务器,机柜大带宽,动态拨号VPS,海外云手机,海外云服务器,海外服务器租用托管等。
文件路径 frameworks/base/core/java/android/os/
定义了一个计算和的方法。
在frameworks/base/Android.mk
LOCAL_SRC_FILES最后加入
创建文件 MyApiService.java
文件路径 frameworks/base/core/java/com/android/server/
实现aidl的接口,计算参数和。
(1)Context添加服务名
文件路径 frameworks/base/core/java/android/content/Context.java
添加
(2)添加启动服务
文件路径 frameworks/base/services/java/com/android/server/SystemServer.java
在startOtherServices方法中添加
创建 MyApiManager.java文件
文件路径 frameworks/base/core/java/android/app/
文件路径 frameworks/base/core/java/android/app/ContextImpl
添加registerService
记住make update-api
编译打包完成后,烧写新的固件。
jar主要为了在android studio编译环境中MyApiManager报错导致编译不通过问题。
也可以导入frameworks jar包或使用反射。
在源码目录packages/app下新建MyJar文件夹
并新建目录com/myapi/(包名)
在目录com/myapi/新建文件MyApi.java
具体Android.mk语法这里不做解释,可以自行查阅
在MyApi目录下直接运行mm编译命令(记得先source build/envsetup.sh)
待编译完成后,jar生成目录
out/target/common/obj/JAVA_LIBRARIES/Myapi_intermediates/javalib.jar
可更改为其他名称。
现在
开发APP
的公司不少,比较好的我认为有智云app,他们
APP开发
的不错。
开启服务有两种方式: startService 和 bindService 。
首先在 AndroidManifest.xml 文件中声明
启动服务:
开启服务时,调用一次 startService() ,生命周期执行的方法依次是: onCreate() == onStartCommand();
调用多次 startService() , onCreate() 只有第一次会被执行,而 onStartCommand() 会执行多次。
该方式需要一个 ServiceConnection 接口的实现类对象
MyServiceConnection.java :
MyService.java :
启动服务:
bindService 开启服务,生命周期执行的方法依次是:
onCreate() == onBind() == onServiceConnected();
调用多次 bindService() , onCreate() 和 onBind() 都只在第一次会被执行, onServiceConnected() 会执行多次。