アンドロイドの見通しにはA.
見込みがあるかどうかを絶えず私は、Android、丘の上にAndroidの開発は、見つけるのは難しいのAndroid作業は、実際にはこれらのために、私の見解は非常に簡単であるか、それはAndroidの開発者がいない持っていると言うことは本当にないの話を多くの人々を聞きましたもちろん、私はどのように未来を予測することはできません、ポイントに行く方法。
今、大手企業が実際に(シニア)Androidの開発が欠落している、常に雇用、それは人々をインタビューするどころか、フロントラインのインターネットの多くを取った、あなたはあまりにも多くの履歴書を取得することはできません、それは多くの時間を要し履歴書を見つけます。
そのため、学生は、Androidの開発経験を持って、あなたは関係なく変更するにはどの方向ではなく、方向を変えることを考えるよりも、より深く探索する方法を考えるべきではない、シニア専門家にその後、初心者から上級者までの時間のポイントに直面してます。だから私は、右のキャリアプランニングはピラミッド型であるべきだと思うのコアコンピタンスは強くなければなりません!
II。詳細な知識ポイントリスト
今のところ、Androidとモバイルインターネットは、私たちは、私がリストを作った、技術を習得する必要があります。
一般的な原理ディアンディアンJava仮想マシンの反射の原理原則主義ディアンディアンコメントスレッドプール原理ディアンシリアル化された
活動の知識(例えばディアンサービスとしてディアンディアンフラグメントソースを表示カーネル関連の原則のタスクスタックディアンディアン活動活動の起動モードの活動のライフサイクル)
ソースフレームワーク構造最適化(データ構造淀ソートアルゴリズム淀設計モード)
APPのパフォーマンスの最適化(ユーザエクスペリエンスの最適化淀)がチューニング淀符号適合
ホットフィックス淀熱アップグレード淀フック技術淀IOCアーキテクチャ
NDK(Cプログラミング淀C ++淀JNIをディアンLINUX)
開発効率を向上させるためにどのように?
MVC MVPディアンディアンMVVM
マイクロ手紙アプレット
ハイブリッド
フラッター
水や分析の知識、なぜ学びます
1.データ構造とアルゴリズム
実際には、データ構造とアルゴリズムは、別々のものです、我々は実際にはより深いアルゴリズム、データ構造とアルゴリズムを行って、データ構造の多様性を習得する必要が財団に属しているが、それは今より重要であるので、私は別の用語を思い付きました。
私はまた、あなたが清華大学を見てお勧めしますどのように深く同じデータ構造、浙江大学、または「データ構造」オープンクラス、特に清華大学は、それが繰り返される研究の価値があります。
アルゴリズムについては、まず最初に行うには、ハンズオン、あるLeetCodeに直接ドライ!
第二段階は、など、これらの再帰的なアルゴリズムとして、動的なプログラミングを様々なアルゴリズムの考えやルーチンを要約することで、すべてのルーチンですが、またLeetCodeフィルター上のデータ構造とアルゴリズムを分類することによって、我々はできるエクササイズや要約をターゲットに。
もちろん、Androidのプログラマのために、質問LeetCodeブラシで毎日行うことができる非常に良いですが、そうに密着するようにしてください、とあなたは、特定の時間に固執する、あなたは今、より使いやすさであなたを見つけるだろう、私は18年末からスタートトピックのLeetCodeブラシは、ブラシの200個の以上のチャンネルを持っている、キビのインタビューもアルゴリズムを重視するだけでなく、書くこと。
そして、アルゴリズムに特に重点を置いて会社のいくつかは、このアルゴリズムではなく、厳密には、非常に厳しい評価は、はい、それは厳しいです。
2.デザインパターン
デザインモードにのみ、この段階では十分ではありませんが、一般的なインタビューを聞かないで、最初の段階でのデザインパターンの23種類は、これらのデザインパターンを知っていると理解していることを、実際には、Androidの開発者のための設計原理を含んでいますあなたのデザインパターンの概念、そしてあなたは、具体的についてお話させますあなたの深い知識とデザインパターン、その長所と短所の特定の種類の使用、第二段階はしているので、それらを使用し、第二にAndroidのソースコードへどこ結合研究デザインモードに適用されます。
たとえば、作成するためのダイアログを使用するだけでなく、シングルトンで、Builderパターン、Andoirdなどアダプタモード、オブザーバ・モードでは、非常に一般的なデザインのAndroid内のパターンが、また、インタビューの中で高頻度の出現です。
3.語学学習言語発達
Androidアプリケーションは、SDKはJavaで書かれたJavaスピーチによって開発されているので、私たちは、Java言語を学ぶ必要があります。また、Kotlin言語も公式ホットプッシュのAndroidをしてきたが、しかし、KotlinはJava言語の実行にコンパイルされます。Androidの開発です。
限りKotlin書き換えなしSDKが存在しないとして、その後、Java言語で学ぶことです。そして、Android APKのバックグラウンド・サーバー・プログラムは、構築するために、高い確率Java言語なので、学習Javaが必要です。
Javaはその後、それらのものはそうでマルチスレッドジェネリックディアンディアンディアンJavaIO JVM反射ディアンディアンディアンノートのシーケンスなど、ほぼしきい値、もう少しのAndroidのJava Foundationの困難、我々は比較関連しています。
4.APP開発フレームワークの知識
この知識は、我々はAndroid2013-2016年的技术を呼び出し、今や最大のユーザーです。しかし、この技術は、多くの開発者がコードとコードを引き起こし、多くのオンラインコピーの習慣が毎日に精通し、使い慣れたなじみのないこの作品を使用することが多いので、彼らはコピーで毎日を扱う、奇妙けど毎日が扱います彼らはそれがこの知識を理解すると言うようにソースコードを学ぶために、ソースコードを模倣、そして、ソースを引っ掛け、一切の綿密な調査がありませんでした。
5.Appのパフォーマンスの最適化
アプリの悪いの良好なパフォーマンスは、我々は2つのレベルを分析する必要があります。
そのコードは、高可用性、高性能のコードであるように、書き込みの時に良好なパフォーマンスを得るためのコードを書くのプロセスを注意を払うために1、
すでにコードの問題を検出するツールのコードによって形成された2、チューニングと呼ばれる我々のコードのプルーニングプロセスを導くためにチェックすることによって質問
これは皆のためのアイデアを学習し、パフォーマンスの最適化を作成します。
そのそれ高性能なコードを書く方法?
私たちは、コードの深い知識持っている必要があり、コードの基本である、のような:データ構造は、GoogleがAndroidプラットフォーム用に開発などのアプリケーションシナリオによれば、現在のシーンの遵守を達成するための特殊な構造を記述することができまたSparseArrayの代わりに、HashMapを備え、一般的なアルゴリズムを使用していました。また、それは、独自のユニークな洞察力を持っています
6.NDKモジュールの開発
高品位オーディオおよびビデオディアンディアン大きな絵人工知能淀ビブラートと密接にユーザーに関連付けられているすべてのこれらの年他のライブ、私たちの生活に最も関連の技術は常にWindowsのシステムであるために使用される最終着陸プラットフォーム技術、探している、と今ではモバイルシステムです。モバイルシステムAndroidのが最大の割合です。だから、NDKが言うことができるだけでなく、学習に不可欠である、コーデックのオーディオおよびビデオのストリーミングプロトコル、ffmepeg、C、C ++、JNI、Linuxのオーディオとビデオの開発は必要不可欠なスキルです。そして、OpenCVの\は、これらの画像処理が必要であるOpenGI。
NDKモジュールの開発を学習について考えます:
7.どのように開発効率を向上させるには?
工欲善其事必先利其器は、開発効率を向上させる方法ではなく、Gradleの使用による開発で多くの開発者は、負荷コードは非常に時間がかかる、あなたの仕事のコストの無駄である原因となります。このツールは、誤動作が失われることはありません、コードを変更することを可能にしているためにも、私たちは私たちのコードを管理しやすくすることができますgitのを使用して、これは、非常に重要ですがあります。また、モバイル開発者は、我々は、少なくともネットワークパケットをクロールする方法を知っておく必要があります。最も一般的に使用されるstethoは、ネットワークパケットをキャプチャすることができ非常に便利なツールです。
ハイブリッドの開発
ミックスの開発フラッタは現在、徐々にによるアリの強い存在に加えて、複合用途開発フレームワークの主流となっている、とアリのリード会社は、将来に不可欠な自分の視野を広げるためにAndroidのエンジニアであるWeexハイブリッドアーキテクチャを使用しています基本的なスキル。
フラッターは、マインドマップを学びます:
IV。どのくらい私たちとダニエルの間の距離?
多くの人と同じように、私はプログラマーとして卒業し、彼らは懸命に働く場合は、少しの才能と、いくつかの結果を得ることができると思います。
いくつかの時間のために働いた後、自分自身や他の人々の理解は徐々にそれは長い時間のために私が落ち込んで作ることをプログラマと人間とサルの間のギャップよりもおそらく大きな間のギャップは、事実を受け入れることが判明し、また、より多くのはっきりしています。
時間が経つにつれて、彼は自身が客観的に自分の能力を評価することができ、また距離を意識した限り高速で実行する方法を見つけるよう、十分であろうそれほど重要ではありません。
最後に書かれたV.
どんな困難が、私たちはあきらめする理由もないではないはずです!
時間やボトルネックに直面してこの業界に新しい多くの人々は、常に、このような時間の期間を学ぶとして、いくつかの問題を、そこに遭遇する方向音痴を感じない、個人的には2〜3年後のAndroid開発者がいるように見えると思います。現象と基本的に同じ理由を次のよう:
- 貧困層の経済的ニーズを削減
- オープンソースライブラリが豊富なリードが徐々に開発のしきい値を減らし、
- 例えば、古い2.3と互換性などの経験になりました完全に役に立ちません
- Androidの互換性の問題に起因時間は、iOSレートよりも彩度のしきい値があるだろうプラス比IOSが遅れるなど、インテリジェントホームのフレームワークの開発、があります
しかし、我々は上記の勧告を参照する、またはオーディオやビデオ、先進的なAndroidの開発エンジニアを取るか、バックフロントエンドの開発を回すことができ、進化の時代には、私たちは私たちの未来のための計画を立てて、次の詳細を考える必要があります!
Androidのビデオ学習PDF +アーキテクチャ+ +ソースコードのドキュメントインタビューノート
忍耐と能力、ラ・マイルの長ったらしい私の記事を読んでいただきありがとうございます。
私たちは、学習と共通の進捗状況の仲間の相互交流のAndroidの開発位置であなたに固執して喜んでいます!
ここで私はまた、仕上げのあなたのコレクションのコピーを共有アーキテクチャPDF +動画+インタビュー+ドキュメント・ソース・ノート勉強アンドロイドを、だけでなく、高度な技術アーキテクチャ高度な脳マッピング、テーマの開発とAndroidのインタビューを、高度な材料は、建築を進めてあなたが高度な学習を強化します、だけでなく、学ぶために、情報の検索にオンラインみんなの時間を節約し、あなたはまた、親しい友人が一緒に勉強して共有することができます
あなたが必要としている場合は、あなたがすることができます+コメントのように指して、私を懸念