Android開発者への需要は現在非常に高くなっています。 このプラットフォームで各開発者が知っておくべきことのリストを作成することにしました。 これは、会議で求められる可能性があるだけでなく、仕事に役立つ可能性が最も高いすべての知識です。 ボーナスは、プラットフォームに関するいくつかの興味深い質問です。
Androidプラットフォーム:
AndroidManifest.xmlファイル:必要な理由、必要なパラメーター、セクション。 ここでは、 <manifest>および<application>タグについて、packageNameパラメーターについて、<uses-feature>および<uses-permission>について、示されているアプリケーションコンポーネントについて説明する必要があります。- プロジェクト構造:アセット、res、src、gen、libs。 各フォルダーにあるもの、バージョン管理下にあるべきもの、そうでないもの(genフォルダーはVCSに置かれません)。 したがって、アセット、リソース(画像、音楽、レイアウト)、Javaコード、生成されたコード、ライブラリ。
- アプリケーションコンポーネント
Activity 、 Service 、 BroadcastReceiver 、 ContentProvider 。 全員が必要な理由、作業の実行方法、各コンポーネントのライフサイクル。 - 機能は、
ActivityとService起動しService 。 Task 、 Activity Stackとは何ですか。 Serviceプロセスを開始する決定はどのように行われますか? ContentProvider 、なぜ必要なのか、どのように使用されるのか。 ContentResolverアクセスと使用。 カーソルを操作します。 管理カーソルについて覚えておいてください。BroadcastReceiver :静的および動的、呼び出しメカニズム、ライフサイクル。- プロセス間通信。
Intent必要な理由とその理由、それを使用して情報を転送する方法、 BundleとはParcelable必要な理由。 IntentFilterとその用途。 ActivityとService間のやり取りの方法(開始、バインド)。 AIDL(Androidインターフェース定義言語)。 - UIアプリケーションの構築。
LayoutとViewとは何ですか、 Layoutのタイプは何ですか(4個)、なぜ使用されていますか。 さまざまな画面サイズとピクセル密度のUI最適化(dpを使用)。 - プラットフォームでのデータの保存:4種類。 内部、外部ストレージ、DB、SharedPreferences。 使用オプション、違い。
- ローカリゼーション ローカライズ用の組み込みプラットフォームツール、ロケール選択の瞬間。
- ウィジェット。 ウィジェットを作成するためのメカニズム、利用可能なUIツール。
AppWidgetProviderとは何ですか。 - バックグラウンドで動作します。
AsyncTaskときにServiceを使用する場合。 AsyncTaskとは、UIとの関係です。 IntentServiceの本質は、 IntentService機能とその有用性です。 - Androidのセキュリティモデル。 許可。
- 電話設備の使用:センサー、振動、GPS。
- プラットフォームの
Loaders : Loaders 、 Fragments 、アプリ内課金。 - プラットフォームパフォーマンス:ベストプラクティス。 2.2より前の列挙型を使用せず、finalなどを使用します。 モバイルでの作業の特徴:メモリとプロセッサの制限。
- プラットフォームの古いバージョンのサポート:Reflectionを介した機能へのアクセス。
- ネイティブビュー:レンダリングメカニズム、Canvas。
- コンポーネントの状態:状態を保存できるシステムコンポーネント(アクティビティとビュー)、状態を保存および復元する方法、アクティビティとビューのメカニズムの違い。
ボーナスとして、知っておくと便利です:
- Androidマーケットで公開するためのアプリケーション署名メカニズム。
- Android NDK:ネイティブコードの呼び出し
- さまざまなモバイルOSの開発フレームワーク:Titanium、PhoneGapなど。
コアjava。 通常のJava開発者が必要とするすべて。
- Java、インターフェース、抽象クラス、クラス、内部および匿名の継承。 適用時の複数のインターフェイスの継承。 短絡。
- Javaの修飾子:アクセス、同期、その他(静的および最終)。 パフォーマンスへの最終的な影響。
- コレクション:コレクションの種類(
List 、 Set 、 Map )。 さまざまな実装、特定の場合のコレクションの適用可能性。 さまざまな実装での挿入、読み取り、検索の複雑さ。 - マルチスレッド:スレッド、同期メソッド、待機および通知メソッド。 キーワードは使用時に
synchronizedされます。つまり、 synchronizedされます。 - Java SEクラスライブラリとAndroidプラットフォームの違い。
プラットフォームに関するいくつかの興味深い質問:
1.タスク1、タスク2があります。最初のアクティビティAが一番上にあります-アクティビティB。タスク2から、アクティビティAを起動するためのインテントが送信されます。 タスク1はどうなりますか? タスク1のアクティビティスタックはどのようになりますか? 戻るボタンを数回クリックするとどうなりますか?
2.アクティビティとのバインドを通じて起動されたサービスがあります。 ユーザーが対応するアクティビティを離れると、サービスはどうなりますか? この動作を変更するには何をする必要がありますか?
3.アクティビティ内で、
BroadcastReceiver非静的内部クラスとして定義されます。 そのような受信機はインテントを受信できますか? なんで?
質問への回答はコメント欄に記載されます。
準備のための材料:
AndroidデベロッパーガイドPSこのリストを拡大できて嬉しいです。