我希望我的代码会在android启动时自动运行。而且,我知道当android启动时会运行init.rc srcipt。所以,我决定将我的代码信息作为服务项添加到init.rc.But不幸的是,它失败了。 以下是我使用的步骤: 1.我通过ndk的交叉编译器构建server.c: server.c:
#include <stdio.h>
#include <sys/un.h>
#include <unistd.h>
#include <stdlib.h>
void sys_log(char* msg) {
FILE *fp;
time_t t;
if((fp=fopen("/data/server.log","a")) >=0)
{
t=time(0);
fprintf(fp,"%s at time: %s\n", msg, asctime(localtime(&t)) );
}
fclose(fp);
}
int main() {
printf("server begin!");
sys_log("server begin!");
)
我将以下行添加到/init.rc的末尾:
服务socketserver / data / server 单稳
我重启了android设备
我使用指令cat /data/server.log
检查日志,但server.log中没有任何内容!
我直接运行服务器。一切都运行正常。日志和控制台都会提示我想要的东西!
总而言之,我认为init.rc不会启动我构建的服务器。 我的步骤是否正确?有任何想法吗?感谢您的帮助!