感じ
この世界には、さまざまな場所で機能する「ツーエイト原則」があり、Android開発でも同様に役立つと思います。Androidの開発を行うには、Androidの開発知識の20%しか使用できない可能性があり、それを習得した場合、その80%は役に立たない可能性があります。
同じことがインタビュアーにも当てはまります。彼は知識の20%しか持っていない可能性があり、インタビューにはすべての知識を示すのに十分な時間がありませんが、開発で最も頻繁に遭遇する20%にのみ注意を払うことがよくあります。現時点では、これらの問題についての理解の深さが特に重要です。10の質問に回答しましたが、各質問は単純な分析にすぎません。面接官は、徹底的で包括的な質問をせずにポイントを追加することをお勧めします。
1. Javaseの基本
1)Javaの基本的なデータ型と式、分岐とループ。
2)。StringおよびStringBuffer、正規表現の使用。
3)オブジェクト指向の抽象化、カプセル化、継承、ポリモーフィズム、クラスとオブジェクト、オブジェクトの初期化と回復、コンストラクター、このキーワード、メソッドとメソッドのパラメーター転送プロセス、静的キーワード、内部クラス。
4)オブジェクトのインスタンス化プロセス、メソッドカバレッジ、finalキーワード、抽象クラス、インターフェイス、継承の長所と短所の分析、オブジェクトのポリモーフィズム:サブクラスと親クラス間の変換、抽象クラスとインターフェイスは、州内の多くのアプリケーションであり、ポリモーフィズムの利点です。
5)Java例外処理、例外のメカニズム。
6)一般的に使用されるデザインパターン:シングルトン、テンプレート、戦略パターン。
7)。JavaAPIの紹介:一種の基本的なデータ型パッケージングクラス、SystemおよびRuntimeクラス、DateおよびDateFomatクラスなど。
8)。Javaコレクションの概要:Collection、Set、List、ArrayList、LinkedList、Hashset、Map、HashMap、Iterator、およびその他の一般的に使用されるコレクションAPI。
9).JavaI / O入力および出力ストリーム:FileおよびFileRandomAccessクラス、バイトストリームInputStreamおよびOutputStream、文字ストリームReaderおよびWriter、および対応する実装クラス、IOパフォーマンス分析、バイトおよび文字変換ストリーム、およびパッケージ化ストリームの概念、そして、一般的に使用されるパッケージング、コンピューターコーディング。
10)。Javaの高度な機能:リフレクションとジェネリック。
11)。マルチスレッドの原則:プログラムでマルチスレッド(スレッド、実行可能)を作成する方法、スレッドの安全性の問題、スレッドの同期、スレッド間の通信、デッドロック。
2. AndroidUIプログラミング
1)Android開発環境の構築:Androidの紹介、Android開発環境の構築、最初のAndroidアプリケーション、Androidアプリケーションのディレクトリ構造。
2)Androidプライマリコントロールの使用:
TextViewコントロールの使用方法
Buttonコントロールの使用方法
EditTextコントロールの使用
方法ImageViewの使用
方法RadioButtonの使用
方法チェックボックスの使用方法
メニューの使用方法
3)Androidの高度なコントロールの使用:
使用するリストビュー方法を使用する方法
に使用するGridViewの方法を
使用するアダプタ方法を
使用するようにスピナー方法を
使用するGALLARY方法を
ScrollView
RecyclerViewを
4.ダイアログボックスとメニューの使用:
ダイアログの基本概念
BlockquoteAlertDialogの使用
方法DatePickerDialogの使用
方法メニューの使用方法
メニューのカスタマイズ方法
5.コントロールのレイアウト方法:
線形レイアウトの使用方法
相対レイアウトの使用方法
6.マルチアクティビティ管理:
AndroidManifest.xmlファイルの役割Intent
を
使用する方法Intentを使用してデータを送信する方法
Activityを開始する方法
IntentFilterを使用する方法
ActivityGroupを使用する方法
7.カスタム制御の実装方法:
カスタムListViewを実装する
方法折りたたみ可能なListViewを使用する方法
カスタムアダプタを実装する
方法カスタムビューを実装
する方法動的制御レイアウトを実装する方法
プルアップして更新するプルダウンしてさらにロードする
3.Androidネットワークプログラミングとデータストレージ
1)Androidプラットフォームに基づくHTTP通信:
Httpプロトコルのレビュー
Getメソッドを使用
してサーバーにデータを送信する方法POSTメソッドを
使用してサーバーにデータを送信する方法Httpプロトコルを使用してマルチスレッドダウンロード
を実現するHttpプロトコルを使用して再開可能な送信を実現する
2).Androidデータストレージテクノロジー:
SQLite3データベースの紹介
SQLステートメントのレビュー
SQLite3プログラミングインターフェイスの紹介
SQLite3トランザクション管理
SQLite3カーソルの使用法
SQLite3パフォーマンス分析
メソッドによるSDCardメソッドへの
アクセスSharedPreferencesへのアクセス
ジュニアエンジニア
スキル要件:
4つの主要コンポーネントの使用方法、サービスの作成方法、レイアウト方法、シンプルなカスタムビュー、アニメーション、その他の一般的なテクノロジーなどの基本的な知識ポイント- おすすめの本
「FirstLineof Code Android」、「CrazyAndroid」
中堅エンジニア
スキル要件:
-
やや詳細な知識ポイント
AIDL、メッセンジャー、バインダー、マルチプロセス、アニメーション、スライディングコンフリクト、カスタムビュー、メッセージキューなど。 -
おすすめの本
「AndroidDevelopmentArt Exploration」、「AndroidHeroes」 -
AIDL:AIDLに精通し、その動作原理を理解し、transactとonTransactの違いを理解します。
-
バインダー:Javaレイヤーからバインダーの動作原理を理解し、Parcelオブジェクトの使用法を理解します。
-
マルチプロセス:マルチプロセスの操作メカニズムを習得し、メッセンジャー、ソケットなどを理解します。
-
イベントの分布:弾性スライディング、スライディングコンフリクトなど。
-
ビューで遊ぶ:ビューの描画原理、さまざまなカスタムビュー。
-
アニメーションシリーズ:ビューアニメーションと属性アニメーションの違いに精通し、属性アニメーションの動作原理を理解している。
-
マットやその他のツールに精通した、パフォーマンスの最適化を理解する
-
いくつかの一般的なデザインパターンを知っている
-
ビューのスライド原理を理解する
-
弾性スライドを実現する方法を理解する
-
ビューのスライドの競合を理解する
-
測度、レイアウト、およびビューの描画を理解する
-
次に、既存のカスタムビューのいくつかの例を学びます
-
最後に、カスタムビュー、いわゆる一定の変更を取得できます
シニアエンジニア
スキル要件:
-
もう少し深い知識
-
システムコアメカニズム
-
基本的な知識ポイントの詳細
-
デザインパターンとアーキテクチャ
-
おすすめの本:
「Android開発アートの探求」、「Androidソースコードデザインパターンの分析と実際の戦い」、「Androidカーネルの分析」 -
「やや深い知識のポイント」で定義されている内容の理解を深め続ける
-
システムのコアメカニズムを理解します。
- SystemServerの起動プロセスを理解する
- メインスレッドのメッセージループモデルを理解する
- AMSとPMSの動作原理を理解する
- 「アプリケーションにはいくつのウィンドウが存在しますか?」という質問に答えることができます。
- 4つの主要コンポーネントの一般的なワークフローを理解する
- …
- 基本的な知識ポイントの詳細
- アクティビティの起動モードと異常な状態でのさまざまなアクティビティのパフォーマンス
- サービスのonBindとonReBindの関連付け
- onServiceDisconnected(ComponentName className)とbinderDied()の違い
- さまざまなバージョンでのAsyncTaskパフォーマンスの詳細
- スレッドプールの詳細とパラメーター構成
- …
- デザインパターンに精通し、建築意識の学習方法を持っている
上記は、高度なAndroid開発を整理して共有するための学習ルートです。
やっと
多くのジュニアおよび中級のAndroidエンジニアにとって、スキルを向上させたい場合、彼らはしばしば自分で成長します。非体系的な学習効果は非効率的で、長く、無力です。長い期間を経て、期待する効果が見られずに多大な時間と労力を費やして落胆するのは普通のことです。
したがって、勉強するのに最適な方法を見つけ、考え方を持っている必要があります。そうしないと、時間を無駄にするだけでなく、一緒に将来の開発を遅らせることになります。
学習リソースの不足というボトルネックに陥っている場合は、ちょうど間に合うようにお手伝いします。上記のナレッジノートはすべて無料で共有できます。ナレッジノートを取得する必要がある場合は、GitHubをクリックして無料で入手できます。