Android源码开发记录-自定义系统服务和jar包生成

Android源码开发记录-自定义系统服务和jar包生成,第1张

创建文件 IMyApiService

文件路径 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

可更改为其他名称。

从CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系统启动和管理系统服务的相关命令全部由systemctl命令来代替。

我们用添加jboss启动服务来举个例子:

CentOS6中,我们将JBOSS_HOME/bin/init.d/目录下的jboss-as-domain.sh 拷贝到/etc/rc.d/init.d/,然后执行sudo chkconfig --add jboss-as-domain.sh将jboss-as-domain.sh添加成了系统的service,添加完成之后就可以使用service jboss-as-domain.sh start/stop 这些命令启停服务。

但是在centos7中完全不同,centos7中service脚本是在/usr/lib/systemd/system这个目录下,脚本格式如下:

添加完该文件之后使用chmod 754 /usr/lib/systemd/system/jboss-as-domain.service添加可执行权限,这样我们的service就添加成功了,可以使用systemctl start/stop jboss-as-domain.service 启动或者停止服务。

本文章向大家介绍Linux Ubuntu 20.04 —添加开机启动(服务/脚本),主要包括Linux Ubuntu 20.04 —添加开机启动(服务/脚本)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

系统启动时需要加载的配置文件

一、修改开机启动文件:/etc/rc.local(或者/etc/rc.d/rc.local)

二、自己写一个shell脚本

将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,系统启动后就会自动执行该目录下的所有shell脚本。

三、通过chkconfig命令设置

四、自定义服务文件,添加到系统服务,通过Systemctl管理

1.写服务文件:如nginx.service、redis.service、supervisord.service

2.文件保存在目录下:以754的权限。目录路径:/usr/lib/systemd/system。如上面的supervisord.service文件放在这个目录下面。

3.设置开机自启动(任意目录下执行)。如果执行启动命令报错,则执行:systemctl daemon-reload

4.其他命令

5.服务文件示例:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11853878.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存