在Android 开机启动的时候会有一些后台进程跑起来,当然我么也可以定制
在vendor 的目录中放置 一个Android.mk文件还有一个server.cpp,头文件配置
makefile配置
# LOCAL_PATH变量。它用于在开发树中查找源文件 my-dir 编译系统提供
LOCAL_PATH := $(call my-dir)
# executable bin
#清除所有local变量除了LOCAL_PATH
include $(CLEAR_VARS)
#设置模块的名称
LOCAL_MODULE :=server
#基于arm处理器的arm指令
LOCAL_ARM_MODE := arm
LOCAL_PRELINK_MODULE := false
#包含的头文件
LOCAL_C_INCLUDES := \
$(LOCAL_PATH) \
$(LOCAL_PATH)/server/include \
$(TOP)/frameworks/xx/include
#静态 stl 库
LOCAL_STATIC_LIBRARIES := libgnustl_static
#静态 动态库 android 的
LOCAL_SHARED_LIBRARIES += libcutils \
libutils
h264fifo
# 单独进入模块mm 可以编译,但是make image 不会进入image 如果想编译进去在device.mk 中添加
# PRODUCT_PACKAGES += server
#LOCAL_MODULE_TAGS :=user eng tests optional
#user: 指该模块只在user版本下才编译
#eng: 指该模块只在eng版本下才编译
#tests: 指该模块只在tests版本下才编译
#optional:指该模块在所有版本下都编译
LOCAL_MODULE_TAGS := optional
#64位安卓系统中使用32位SO库
LOCAL_32_BIT_ONLY := true
LOCAL_CLANG := true
#编译的源码
LOCAL_SRC_FILES := \
$(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/server/*.c*))
# 表示编译成可执行文件 烧录在目录system/bin中
include $(BUILD_EXECUTABLE)
# 自己制作一个so文件配置
include $(CLEAR_VARS)
LOCAL_MODULE := libserver_use
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/server \
LOCAL_MODULE_TAGS := optional
LOCAL_SHARED_LIBRARIES += libcutils \
libutils
LOCAL_SRC_FILES := \
$(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/server/*.c*))
#表示编译 成一个so
include $(BUILD_SHARED_LIBRARY)
以上就是配置
server.cpp 函数写
int main(int argc, char *argv[]) {
// 写普通cpp函数 单独的linux 应用
}
##设置成开机启动
在init.rc 中配置
# 因为不是重要的进程 设置延迟启动 设置用户组权限 disable 表示不启动,延时启动 oneshot 表示马上启动
service rtsp_server /system/bin/server
class late_start
user root
group root
disabled
如果不设置上面的内容,和linux 一样adb shell进入 android 手动启动应用进程 ,android 所有的后台进程后是这么设置的