プログラマーはどのように技術的にパドルし、いくつかの重要なAndroid知識を整理し、フルバージョンはダウンロード可能です

キャリアプラン

Android系统的市场地位
Android程序开发的技能成长经验
Android程序员为什么需要学习Html5
Android软件工程师为什么不会被前端替代
为什么小程序无法替代原生开发
为什么Html5无法取代NativeAPP
Html5在Android中的应用场景
如何成为一名合格的高级Android程序员

インタビュアーが質問をしました。A、B、Cの3人の生徒のパフォーマンスを見てみましょう。

A

インタビュアー:アプリケーションの役割について話します。

A:アプリケーションは、アプリケーションプロセスの作成後に作成されるシステムコンポーネントであるため、いくつかの初期化操作を実行するために使用できます。アプリケーションのライフサイクルはアプリケーションプロセスと同じであるため、コンテキストを提供するために使用できます。クラスライブラリ。すべてのコンテキストを取得できるため、アプリケーションを使用してグローバル変数を保存および転送できます。

インタビュアー:通常、グローバル変数をアプリケーションに配置しますか?アプリケーションがバックグラウンドでリサイクルされ、再度開いたときに値が失われた場合はどうなりますか?

A:はい、非常に便利です。フォールトトレランスを実行するだけです。

インタビュアー:わかりました、戻って通知を待ちます


B

インタビュアー:アプリケーションの理解について話します

B:役割:初期化を行い、コンテキストを提供します。さらに、ApplicationはContextWrapperを直接継承するContextです。このContextWrapperのメンバー変数mBaseを使用して、システムによって実装されたContextImplを格納できるため、ApplicationのContextメソッドを呼び出すと、最終的に次のメソッドが呼び出されます。静的プロキシを介したContextImpl。ContextWrapperのgetBaseContextメソッドを呼び出して、ContextImplのインスタンスを取得します

インタビュアー:通常、グローバル変数をアプリケーションに配置しますか?アプリケーションがバックグラウンドでリサイクルされ、再度開いたときに値が失われた場合はどうなりますか?

B:いいえ、静的変数を使用してグローバル変数を保存するか、シングルトンでより適切な場所にそれらを収集できます。
アプリケーションのリサイクル時のデータ損失を回避するために、ページでパラメーターを渡すことができる場合は、パラメーターをインテントに渡します。これにより、リサイクル後にパラメーターを開いてインテントから取得する価値があります。データ量が多い場合は、データの永続性を考慮することもできます。別の方法は、対応するデータをリサイクル時に保存し、onSaveInstanceStateおよびonRestoreInstanceStateを介して再度開いたときにデータを復元することです。

インタビュアー:アプリケーションのライフサイクルについて教えてください

B:アクティビティと比較して、アプリケーションのライフサイクルはそれほど単純ではありません。コンストラクターは、最初に作成されたときに呼び出されます。その後、システムは、attachBaseContext(Context)メソッドを介してContextImplをアプリケーションに挿入する準備が整い、最も使い慣れたonCreateメソッドを呼び出します。APIには、プロセスが強制終了されたときにコールバックするonTerminateメソッドもありますが、これはシミュレーターでのみ有効になるため、注意を払う必要はありません。

インタビュアー:アプリケーションの初期化プロセスについて話していただけますか?

B:基本的に上記のものですが、詳しくはわかりませんでした

インタビュアー:わかりました、戻って通知を待ちます


C

インタビュアー:アプリケーションの初期化プロセスについて話します

C:アプリケーションは、アプリケーションプロセスの作成後に初期化されます。

ActivityThreadは、
AMSのBinderオブジェクト(IActivityManager)のattachApplicationメソッドを呼び出します。リクエストを受信した後、AMSは
ActivityThreadのbindApplicationメソッドを呼び出します。ActivityThreadこちら側はリクエストを受信し、AppBindDataオブジェクトをアセンブルし、すべてのパラメーターをカプセル化して、に送信します。ハンドラーを介して実行するためのメインスレッド

メインスレッドはこのメッセージにループし、handleBindApplicationを呼び出して、初期化アプリケーションを実際に処理します

handleBindApplicationが「コンテキスト」について語ったとき、Activityの初期化は同様でした。要約:

ClassLoaderは、Applicationクラスをロードし、Application.attach(Context)メソッドを介し
てApplicactionを初期化するために使用されるContextImplをインスタンス化し
attachBaseContext(Context)を呼び出してContextImplをアプリケーションに挿入し、
最後にApplication.OnCreate()を呼び出します。

次に、アプリケーションが初期化されます

インタビュアー:プロセスの作成が完了しないのはなぜですか。handleBindApplicationを直接呼び出してアプリケーションを作成してから、AMSに移動してサークルを作成してください。

C:AMSのattachApplicationは、アプリケーションを作成するために呼び出されるだけでなく、プロセスを作成する前にアプリケーションの4つの主要コンポーネントを呼び出すこともできますが、開始することはできません。プロセスが作成されたので、アプリケーションを作成する必要があります。開始するこれらのコンポーネントを処理します。したがって、AMSを介した統一されたスケジューリングが必要です。アプリケーションの作成とonCreateコールバックに時間がかかる場合、開始されるこれらのコンポーネントの起動時間にも影響します。

インタビュアー:はい、他のことについて話しましょう。

やっと

最近はインターネットが寒いと言われていますが、実は間違った車に乗って身につける(スキル)が少ないだけです。正しい車に乗って自分の技術力が十分にあれば、会社の代わりになります。コストが高いのですが、どうやって解雇できますか?エンドビジネスのカードを排除するだけです!現在、市場にはジュニアプログラマーが殺到しています。このチュートリアルセットは、1〜6歳のAndroid開発エンジニアを対象としています。彼らはボトルネックの時期にあります。次の昇給を突破したい人は上級のAndroid中級および上級の年、アーキテクトはあなたにとってさらに重要です。水中の魚のように、すぐに入手してください。

上記の[HDテクニカルマインドマップ]と[SupportingArchitecture Technology PDF]をクリックしてください:Androidアーキテクチャビデオ+ BATインタビュートピックPDF +学習ノート、またはプライベートメッセージ返信[スキル向上]を入手してください!

何人かの人々がいつもあなたよりも優れているのはなぜですか。彼らはとても優秀で、より良くなるために一生懸命働いているからです。あなたはまだ現状に満足していますか?

Androidアーキテクトの道のりはとても長いので、一緒に励ましましょう!

おすすめ

転載: blog.csdn.net/dajie1213/article/details/112987184