Androidの起動時にコードが自動的に実行されるようにしたい.そして、Androidの起動時にinit.rc srciptが実行されることを知っているので、コードの情報をinit.rcのサービス項目として追加することにしました.しかし、残念ながら、それは失敗します。以下は、私が使用した手順です。
#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 の末尾に次の行を追加します。
service socketserver /data/server ワンショット
Androidデバイスを再起動します
命令を使って
cat /data/server.log
ログを確認しましたが、server.log には何もありません。サーバーを直接実行します。すべてが正常に実行されます。ログとコンソールの両方で、必要なものが表示されます!
結論として、init.rc は私が構築したサーバーを起動しないと思います。私の手順は正しいですか?何か案は?事前に助けてくれてありがとう!