6

Ice Cream Sandwich の init.*.rc の動作が変更されたようです。以前は、次のようなエントリで起動時にサービスを開始できました。

service my_kool_service /system/bin/my_kool_service

私はこの投稿を見つけました。これは、次のように変更するヒントを与えました:

service my_kool_service /system/bin/my_kool_service
    class main

では、 とは何でclass main、なぜ必要なのですか?

このドキュメントではclassオプション」について説明していますが、デフォルトの動作や観察された変更については詳しく説明していません。

現在の ICS の init rc 言語は、公式または別の場所に文書化されていますか?

ありがとうございました。

4

3 に答える 3

4

すでに述べたように、この readme にinit.rc記載されています。service オプションは、サービスをグループ化し、コマンドおよび でそれぞれ一緒に開始および停止するために使用されます。classclass_startclass_stop

具体的には クラスとcoreは、Android 3.0 以降で暗号化のために使用されます (Android 3.0での暗号化の実装に関する注意事項の「Android 暗号化のしくみ」セクションを参照してください)。特に、その文書を引用すると:mainlate_start

コア サービスは、起動後にシャットダウンされることはありません。メイン サービスはシャットダウンされ、ディスク パスワードの入力後に再起動されます。/data が復号化されてマウントされるまで、late_start サービスは開始されません。

于 2013-10-17T09:57:32.357 に答える
3

特定のクラスにサービスを追加すると、 start_class を呼び出してサービスを開始できます。たとえば、クラス test の下に 10 個のサービスがある場合、start_class test を呼び出すことで、クラス test の下にある 10 個のサービスをすべて開始できます (それらがまだ実行されていない場合)。すべてのサービスを停止する場合にも同じことが当てはまります...

init.rc 言語の詳細については、次のリンクを参照して ください https://github.com/android/platform_system_core/blob/master/init/readme.txt

私はそれが役立つことを願っています..:)

于 2012-06-29T07:05:41.560 に答える
1

class core - 常に最初に開始され、ほとんどの場合、重大な結果を伴わずにシャットダウンすることはできません 。 class main - サービスを担当します。再起動できますが、絶対に必要な クラスの遅延開始の場合のみ- 完全なシステムが起動し、ユーザーが利用できるようになる直前に発生します。

于 2016-02-17T11:24:08.653 に答える