起動時にAndroidを高速化する方法は?


13

私は組み込みデバイスでのAndroidの起動時間を調べており、どこで時間を節約できるかを理解しようとしています。

1)起動時間を短縮するために実際に行ったことは何ですか?

ここまでは、ブートアップアニメーションの時間を見ました。ブートアップアニメーションをすべて削除すると、約6秒節約されました。次に、ブートアップアニメーションを、ブートアップアニメーションの期間中に表示され、以前の時間の節約を失った1つの画像のみに置き換えました。しかし、実際のブートアップアニメーションプロセスは、実行に約1秒しかかかりませんでした。(Bootchartで生成された画像を添付しました。今のところはエミュレータ上でのみ)

2)Androidの起動アニメーションの時間を見る価値はありますか?起動アニメーションプロセスが起動時間にそれほど奇妙な影響を与える理由についての手がかりはありますか?

お時間をいただきありがとうございます。

ブートアップアニメーションとして1つの画像を使用したブートチャートブートアップ時間の視覚化

回答:


2

Linuxカーネルの起動を高速化する2つの手順:

  1. デバイスドライバーの最小限のセットでLinuxカーネルを構成します。つまり、ドライバーだけがブートしてルートファイルシステムをロードする必要があります。モジュールとして構築できるすべてのドライバー、ファイルシステム、またはサブシステム(カーネルでは必要ですが、ブート中は使用しない)は、静的にリンクするのではなく、モジュールとして構成する必要があります。

    ブート中のドライバーのロードに使用される時間を確認するには、オプション"initcall_debug"を使用してカーネルコマンドラインを変更する必要があります。これにより、各initcallのタイミング情報がコンソールに出力されます。initcallsは、静的にリンクされたカーネルドライバーとサブシステムを初期化し、Linuxブートプロセスにかなりの時間を費やすために使用されます。不要なドライバーをロード可能なモジュールに再構成すると、カーネルの起動時間からそのinitcall時間が差し引かれます。

  2. オプション"quiet"を使用してカーネルコマンドラインを変更します。これにより、コンソールへのログメッセージのほとんどの出力が無効になります。もちろん、これは安定したカーネルができた後にのみ行うべきです。

その他のテクニックはこちら

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.