0

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!");
    )
  1. /init.rc の末尾に次の行を追加します。

    service socketserver /data/server ワンショット

  2. Androidデバイスを再起動します

  3. 命令を使ってcat /data/server.logログを確認しましたが、server.log には何もありません。

  4. サーバーを直接実行します。すべてが正常に実行されます。ログとコンソールの両方で、必要なものが表示されます!

結論として、init.rc は私が構築したサーバーを起動しないと思います。私の手順は正しいですか?何か案は?事前に助けてくれてありがとう!

4

0 に答える 0