创建创建Android守护进程实例守护进程实例(底层服务底层服务)
前言前言
Android底层服务,即运行在 linux 下的进程,是 Android 系统运行的基础,完成 Android 或者说计算机最基本的功能。比如连
接服务(包括 WIFI,BT 等等);比如 Android 的 adb 功能;比如存储监控等等。没有这些底层服务,上层也就没有了对应
的功能。
Android 底层服务往往是常驻内存,时刻运行完成任务。底层服务进程,往往具有更多的权限,可能和驱动通信,可能和 linux
内核通信,可能需要操作系统核心运行文件以及节点等等。所以,底层服务,可以帮你完成更多计算机基本功能。
本文所使用的 AOSP 是基于 Android 8.1。阅读文本需要对 Android 的架构、编译系统、AOSP工程和 SeAndroid 有基本认
识。
创建守护进程创建守护进程
创建目录编写代码创建目录编写代码
创建目录创建目录
我们在 Android 系统通用守护进程目录下创建我们的守护进程,当然你也可以在其它目录下放置你的守护进程。
/system/core/
在上面的目录下,创建守护进程的文件夹 nativeservice,那么,我们的守护进程就存在如下目录,下文中称简称目录代表如
下目录。
/system/core/nativeservice/
编写代码编写代码
在目录中创建主代码文件 native_main.cpp。另外,我们需要编译,那么就需要 mk 文件,创建一个 Android.mk 文件。这时,
目录架构就是如下这个样子
编写编写Android.mk
我在代码中尽可能的注释清楚重要语句的作用,读者如果对 Android AOSP 编译不了解的,可以查阅更多 mk 语法的资料学
习。
# Copyright 2013 The Android Open Source Project
# 当前路径
LOCAL_PATH := $(call my-dir)
#清除历史变量
include $(CLEAR_VARS)
### nativeservice ###
#待编译的源码文件
LOCAL_SRC_FILES := \
native_main.cpp \
common_c_includes := \
bionic \
system/core/include/sysutils \
#引用一些函数库
common_shared_libraries := \
libsysutils \
libcutils \
liblog \
libutils \
libbinder \
libbase
LOCAL_C_INCLUDES := \
$(common_c_includes)