欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android 源码中添加一个最简单的自启动的本地服务

程序员文章站 2023-01-06 09:06:28
native service 创建过程学习笔记 a. 在vendor/ /common/目录下创建文件夹native_service b. 在此文件目录下创建.cpp 文件,并编写程序代码: #...

native service 创建过程学习笔记

a. 在vendor/ /common/目录下创建文件夹native_service
b. 在此文件目录下创建.cpp 文件,并编写程序代码:

#include 
#include 
#include 
#define log_ndebug 0
#define log_tag "hello_world"
#include 
int main (int argc ,int *argv )
{
        alogd("hello world");
        return 0;
}

c. 在此目录下创建.mk文件,编写android makefile 程序代码:

local_path:= $(call my-dir)
include $(clear_vars)  
local_module_tags := optional
local_src_files := helloworld.cpp  
local_static_libraries := libcutils liblog 
local_module := helloworld  
include $(build_executable)

d . 在中编译所写服务:

cd android_1008m/
source build/envsetup.sh
lunch 
mmm  /vendor/ /common/native_services

e. 编译成功后, 将服务打包到项目中,打开products.mk文件
找到如下代码位置:

###############################################################
###################   target for common   #####################
###############################################################
product_packages += \
        amapnetworklocation \
        irremote \
        sougou_input \
        zigbeeserianlporttest \
        market \
        sixlowpanupgrade \
        smarthome \
        bugreport \
        ucbrowser \
        helloworld  //在其后面添加自己写的服务helloworld (小写)。

f. 增加.rc文件:在init.target.rc文件中添加service:

# hello world 
service helloworld /system/bin/helloworld
    class late_start 
    user system
    grop system

g. 重新编译整个源码文件,将所写服务加到源码中,并将所得的烧到手机中:

source bulid/envsetup.sh
lunch
make –j32

h . 查看自己所写的服务 :

打开cmd,输入命令 adb logcat –s hello_world