1.どのようなアプリケーションのこと?
プログラムの起動時にアプリケーションとアクティビティは、サービスとして、システムコンポーネントAndroidのフレームワークであり、システムは、Androidアプリケーションオブジェクトを作成します
情報記憶システムのいくつかのために。通常、我々は、システムが自動的に私たちが作成するのに役立ちます、アプリケーションを指定する必要はありません
独自のアプリケーションを作成する必要がある場合は、アプリケーションを継承するクラスを作成することも非常に簡単で、登録申請ラベルがマニフェスト
(アプリケーションラベルは、単に与えられた名前に自分のアプリケーションを高めるためにname属性を与えます)。
各プログラムオブジェクトクラス用に作成されたAndroidオペレーティングシステム、及び唯一のクラスは、シングルモードの実施例として理解することができるアプリケーションを作成します。
それがグローバルシングルトンであるため、そのライフサイクルは、そのオブジェクト内の別の活動とサービスで取得するには、プログラム全体の最長実行されています。
典型的には、いくつかのデータ転送、データキャッシュ操作を使用するアプリケーション。
2、アプリケーションのライフサイクル
アプリケーションが含まれている5つのに開示された方法
。1)ボイドonConfigurationChanged(構成newconfigに保存する)
2) )(のonCreateを失う
。3)空隙onLowMemory()
。4)空隙OnTerminate()
。5)ボイドonTrimMemory()
第一は、構成が変更されたときにトリガーされ
そして第二が作成されたプログラムを作成する際に
第3のトリガメモリが十分でない
場合に第四のプログラムを終了するために呼び出すことなく呼び出すことを保証できない
メモリスクラブときにトリガーされる第五の
図3に示すように、例えばショー
1 / ** 2 * @author ljcheng 3 * @date 2019年6月29日 4 * / 5 パブリック クラス MyApplicationをが延びアプリケーション{ 6 7 プライベート 静的文字列タグ= "MyApplicationをします" 。 8 9 @Override 10 公共 ボイドのonCreate(){ 11 // 程序创建的时候执行 12 KLog.d(TAG、 "のonCreate" )。 13 スーパー.onCreate()。 14 } 15 16 @Override 17 公共 のボイドOnTerminate(){ 18 // プログラムが実行終了 19 // アプリケーションオブジェクトの終了は、その後、プログラムは、他のアプリケーションのためのリソースを解放するために、カーネルによって終了されたときに呼び出されることが保証されていないときに呼び出され 20 //をそれは思い出されず、onTerminate方法は、直接処理を終了アプリケーションオブジェクトを呼び出さない 21 KLog.d(TAG、 "onTerminate" ); 22 スーパー.onTerminate(); 23 } 24 25 @Override 26 公共 ボイドonLowMemory( ){ 27 // デーモンは、リソースの不足を終了したにもこのメソッドを呼び出します。良いアプリケーションは、典型的には、この方法のいくつかリリースする必要はありません 28の // リソースはメモリが十分でない場合、デーモンは、フォアグラウンドアプリケーションを終了した状況に対処するために使用されることを。 29 KLog.d(TAG、 "onLowMemory"); 30 スーパー.onLowMemory(); 31である } 32 33である @Override 34である 公共 ボイド onTrimMemory(INTのレベル){ 35 // ときに、メモリクリーンアッププログラムを実行する 36 KLog.d(TAG、 "onTrimMemory" ); 37 [ スーパー.onTrimMemory (レベル) 38である } 39 40 @Override 41れる // 構成変更の方法トリガー 42である 公共 ボイドonConfigurationChanged(構成newconfigに保存){ 43が KLog.d(TAG、 "onConfigurationChanged" ;) 44れます スーパー.onConfigurationChanged(newconfigに保存)。 45 } 46 47 }
第四に、総括します
アプリケーションのライフサイクル全体の間に1.Applicationは最も長く続いているあります
上記のコードでは、状況に殺さ2.特定のApplicatiomは、以下の引用文で、いくつかの例を反映してきた他の人の概要
注意:アプリケーションの例は、分析を殺した:
低メモリで時間を殺すためにどのプロセスを決定するために、Androidのは、重要な「重要度」に、これらのプロセスの過程でコンポーネントとその状態に応じて実行されます。次の規則に従って並べ替え:
1:フロントエンド・プロセスは、画面の最前線を保持し、活動のユーザー(onResumeメソッドが呼び出される)との相互作用のプロセスで実行することができ、またIntentReceiver開催することができます(つまり、彼は彼のonReceiveIntentを実行していると言うことです実行しています法)のプロセス。システムでは、このようなプロセスのほんの数、およびメモリは、そうでない場合は、システムがこれらのプロセスを殺すためのイニシアチブを取ることはありません、これらのプロセスを実行するのに十分な低されている場合を除きます。この場合、デバイスは、一般的に必要なメモリの統合に達しています状態なので、応答を停止するためのユーザインタフェースを維持するために、これらのプロセスを殺します。
2:視覚化プロセスが見えるようにユーザによって保持され、しかし、このプロセスは、通常、フロントエンド活性の発生(onPauseメソッドが呼び出されたとき)の例の最前線を示さないの処理アクティビティは、ダイアログに表示されています。 。このプロセス・システムは非常に重要であると考えられ、通常は正常な動作を維持するために、すべてのフロントエンドプロセスがない限り殺されることはありません時にフロントリテーナ活動見える目に見えるこれらのプロセスを殺すために持っています。
3:サービスプロセスは、プロセスのサービスを保持することで、ユーザが直接、これらのプロセスを見ることができないが、サービスは、STARTSERVICE()メソッドによって開始されますが、通常、彼らが行う作業は、ユーザーにとって大きな懸念である(例えば、バックグラウンドmp3で再生)バックグラウンドでファイルをダウンロードまたはアップロードし、実行中のプロセスを維持し、可視化するために、すべてのフロントエンドプロセスない限り、システムは、サービスプロセスを殺すつもりされていません。
4:ユーザーのプロセス(onStop()メソッドが呼び出されたとき)、プロセスアクティビティを保持しているが、もはやそれらのプロセスに表示され、直接、これらのプロセスは、彼自身の人生の完全な、正しい完了を持って参加するユーザーエクスペリエンスに影響を与えません。期間(詳細は活動を訪問)、それはこれらのバックグラウンド・プロセスの最初の3のためにメモリを解放する過程でいつでも殺される通常実行中のバックグラウンド・プロセスの多くを持っているので、これらのプロセスはにLRUリストに格納されていますユーザーが最近、プロセスが最終的に殺される見ていると、低メモリを確保
5:空のプロセスは、すべてのアクティブなアプリケーションコンポーネントにこのプロセスを維持する唯一の理由を保持していないプロセスであるシステムを殺すために、彼の次の実行、独自のアプリケーションの起動時間を短縮するために、キャッシュ機構を提供することです。これらのスワップ処理の目的は、これらの空のキャッシュされたプロセスとその下にあるコアとの間に全体的なシステムリソースのバランスをとることです
新しい研究で、そうでない場合は、適切な場所でも大歓迎のコメントという問題、あなたは理解してほしいです。