最近マイマイに行ってみたら、そんな投稿を見て気になりました。ホストは4年の開発経験があり、月給は15K未満で無力に満ちています!
一部のネチズンは不満を述べました:
選挙後、前選挙なし、後-前なし、アルゴリズムも甘い、条件が許す、頭脳のバックエンドなし、有望な未来、予定された幹部、それに続くフロントエンド、頻繁な需要、十分な食料と衣類、善良な人々難易度、アルゴリズムデータ、かなりの収入、最高のマスターと博士号、ハイエンドの仕事、テストと開発だけでなく、戦い、カジュアル、月収10,000以上、必死、家に帰る農場、日の出と日の入り、幸せな生活、幽霊、クライアントに来て、表面は繁栄していますが、実際には内側にスクロールしています、仕事はアイドルです、ロケットにインタビューします、3年未満、すべて終了しました、後ろに65、緑目の前の帽子、心のこもった、金色で良い言葉、アドバイス、目を明るくする、持っているなら、それを変える、何もしぶしぶ。
Android開発についても同様です。近年、モバイル開発市場は楽観的ではないようです。小さなプログラムや高速アプリケーションの台頭により、多くのアプリ、
特にAndroid開発の成長がボトルネックになっています。
ボーナス期間が過ぎた今、サポートとしてより洗練されたテクノロジーが必要です。現在の中から高レベルの採用要件のように、教育要件と
Androidの基盤に加えて、JNI / NDK /フレームワーク、さらにはJSとサーバー-サイド開発も改善点として使用されます。、
フルスタック方向のプロトタイプです。
実際、アンドリュースの開発実務家は、大手企業がハイエンドの仕事で大幅に増加していることに気付くでしょう。これは、Android開発者が
テクノロジー対応のビジネス時代に入ったことを意味し、個人、つまりAndroidの競争力を強化します。必要な開発機能。
私自身は小さな工場に行ったことがありますが、HuaweiやOPPOなどの大きな工場にも行ったことがあります。19年5月にByteDanceに参加しました。
それでは、Android開発者の開発の方向性を要約しましょう。
最初:水平方向の改善
フルスタック開発のトレンドに基づいて、専門分野を掘り下げながら水平方向に拡大する必要があります。
そして、ここで言及されている水平方向の改善は、フロントエンドへの変換です。APPでのハイブリッド開発(Web、ネイティブ、フロントエンド
インタラクション、ハードウェアインタラクション)に加えて、Web開発、WeChatアプレット、およびH5も必要です。
たとえば、サーバー側の開発では、Android開発者に多くの時間を費やしています。インターフェースに依存してデータをサーバーに返す
場合は、少なくとも構造理論サーバーの場合は、独自にビルドしてみて、サービス間の通信を提供できます。 、重合はどのようなプロセスであるかを
聞く必要があります。
2番目:垂直方向の形状変更
Androidの開発については、常に2つのことわざがあります。アプリケーション開発の
場合は、アプリケーションアーキテクチャの方向に開発する方が適切です。システムレベルの開発の場合は、基盤となるドライバーの方が適切なことがよくあります。
具体的に何を学ぶべきですか?
1.モバイルアーキテクチャ
アーキテクチャ表示層-MVC、MVP、MVVM、クリーン、フラックス、AndroidArchitectureComponents;
アーキテクチャ層modularization-> componentization-> pluginization-例えば、各ドッカーと同様デュアルオープン微信、として>サンドボックス/デュアルオープン技術、
各pageはプラグインであり、Vue.jsの各ページがコンポーネントであるのと同様です。
2.基本高度
この方向性は、ビュー、Androidアニメーションメカニズム、4つの主要コンポーネントの動作原理、マルチメディアテクノロジーなど、より多くの可能性があります。
私たちの仕事で通常遭遇するビューのスライドの競合の問題は、ビューの動作メカニズムとAndroidのタッチ
タイムシステムを習得することで簡単に解決できます。
また、ゴージャスなアニメーションエフェクトを開発する必要がある場合は、ビューアニメーションと属性アニメーションのいくつかの機能をある程度理解している必要があります。
Androidの4つの主要コンポーネントの動作メカニズムは、実際にはバインダーメカニズムです。
バインダーについて学習するために、AIdLインターフェイスを送信することもできます。
JNIとNDKの開発も比較的一般的であり、特に一部のNDKプロジェクトでは、この開発プロセスも
習得する必要があります。
NDK開発は、使用人が応募者を区別するために使用する方法の1つでもあり、企業はそれらを使用する必要はありませんが、
NDKを習得することで才能を選択できます。
3.言語学習と開発言語
ここでは、学習言語が業界を超えていないことを修正する必要があります。たとえば、KotlinはAndroidの世界の第一級市民であり、
場合によってはより人気のあるPythonやGOであると言えます。そして、低レベルのC / C +++が不可欠です。
4、ソース
要件は、ソースコード(いくつかのサードパーティライブラリを独自に選択することもできます)を理解して理解し、元のソースコードとその実装
管理に精通し、2番目のパッケージを使用できるようにすることができます。独自の(または三者ライブラリへの独自の貢献)サードパーティライブラリを実行する。
このようにして、徐々にメンテナンスのこの技術ブロックの専門家になります。出力を強制的に入力することは、
学ぶための良い方法だと思います。
ソースコードの読み方は?
1. WeChat MMKVソースコードの詳細な分析
MMKV は、2018年9月20日にWeChatによってオープンソース化されたKVリポジトリです。SharedPreferencesに似ていますが、効率が高いため、プロセス間の読み取りと書き込みをサポートしないという欠点が解決されます。 。
2.Alibabaルーティングフレームワークの詳細な分析ARouterソースコード
コンポーネント化はますます多くのAndroidプロジェクトで採用されており、コンポーネント化の基礎としてルーティングも最優先事項です。したがって、AlibabaのオープンソースルーティングフレームワークARouterの詳細な分析。スムーズに使用できるように、なぜこのように使用するのか、ソースコードの観点から避けるべきことを説明してください。
3. AsyncTaskソースコード(
Androidに組み込まれている非同期タスク実行ライブラリ)の詳細な分析AsyncTaskは、Android SDKで提供される非同期タスクを実行するためのフレームワークであり、Androidの台頭の初期に広く使用されていました。 、しかし今ではRxJavaやcoroutines、その他の新しいフレームワークで使用されています。いくつかの欠点がありますが、実装の原則と既存の欠点を理解することはできます。
4. Volleyソースコードの詳細な分析(Googleが立ち上げたWebリクエストフレームワーク)
Volleyは、Googleが開発したWebリクエストフレームワークであり、更新を停止しています。誰もがRetrofitやOkHttpなどのサードパーティのネットワークリクエストフレームワークに焦点を当てており、これら2つのフレームワークはチームのプロジェクトでも使用されていますが、Volleyにはまだ多くの優れた設計アイデアがあります。
5. Retrofitソースコードの詳細な分析
Android開発では、ネットワークリクエストが非常に一般的であり、Androidネットワークリクエストライブラリでは、Retrofitが現在最もホットなネットワークリクエストライブラリです。
❤️スペースには限りがあります。詳細なコンテンツについては、私をクリックしてフルバージョンのPDFを表示してください❤️
6. OkHttpソースコードの詳細な分析
OkHttpは、ネットワークリクエストを処理するためのオープンソースプロジェクトです。Android側で最も人気のある軽量フレームワークです。HttpUrlConnectionとApacheHttpClientに代わるモバイル決済Squareによって提供されています。OkHttpが成熟し続けるにつれて、ますます多くのAndroid開発者がOkHttpをネットワークフレームワークとして使用しています。
7.詳細な分析ButterKnifeのソースコード
Android開発者として、誰もが有名なバターナイフを知っている必要があります。開発効率が大幅に向上します。昔から誰もが使い始めていますが、アノテーションで実現していることはわかっているだけで、次の大牛のコードを注意深く研究していません。したがって、バターナイフの実現原理を体系的に分析する必要があります。
8. Okioソースコードの詳細な分析(簡潔で効率的なI / Oライブラリのセット)
Okioには、SinkとSourceの2つの非常に重要なインターフェイスがあり、どちらもCloseableを継承します。その中で、SinkはOutputStreamに対応します。最初に使用され、Sourceは最初に使用したInputStreamに対応します。
Okioの入り口はファクトリクラスであるOkioクラスであり、SinkやSourceなどのオブジェクトはその内部静的メソッドのいくつかを介して作成できます。
9. SharedPreferencesソースコードの詳細な分析
SharedPreferenceは、Android開発に付属するKVリポジトリであり、軽量データの保存に適しています。XMLを使用してデータを保存します。たとえば、ユーザーなどの軽量データを保存するためによく使用します。ログイン情報。レベルデータ。
10. EventBusソースコードの詳細な分析
EventBusは、Androidイベントのパブリッシュ/サブスクライブフレームワークです。
従来のイベント配信方法には、ハンドラー(メッセージ処理メカニズム、一般的にUIの更新に使用)、BroadCastReceiver(ブロードキャストレシーバー)、インターフェイスコールバックが含まれます。
EventBusの利点:
- Activity、Fragment、Service、およびスレッド間の通信は非常に一般的です。EventBusは、いくつかのスレッドスイッチングの問題を保護し、パブリッシュおよびサブスクライブ機能を実装するだけです。
- コードは簡潔で使いやすく、イベントの公開とサブスクリプションを完全に切り離しています。
11. Androidカスタムアノテーションの予備調査
GreenDao、EventBus、ButterKnife、ARouterなど、以前に使用された多くのオープンソースフレームワークはカスタムアノテーションを使用するため、カスタムアノテーションを研究する必要があります。
12.ビューの動作メカニズムのソースコード分析
13.13。Androidタッチイベント配信メカニズムのソースコード分析
14.14。Androidのキーイベント配布メカニズムのソースコード分析
15.ハンドラーソースコードの詳細な分析
Androidのメッセージメカニズムは、ハンドラーに基づいて実装されています。多くの人は、Handler、Looper、MessageQueueを知っていれば、Handlerの原理を理解していると思います。しかし実際には、ソースコードを見ると、ハンドラーのコンテンツがこれ以上のものであることがゆっくりとわかります。同期バリア、ハンドラーのネイティブレイヤーのブロックおよびウェイクアップメカニズムなどの知識はまだありません。以前に明確に理解されました。
16.バインダーのソースコードの詳細な分析
バインダーは、Androidの武道のチートでは「易筋経」と呼ばれ、初心者とベテランの両方がそれに魅了されています。バインダーアーキテクチャは、プロセス間の通信で最も一般的に使用される手段です.4つの主要コンポーネントの基本機能は、バインダーに依存することによってのみ実現できます。
開発者がバインダー通信にjavaとcppを使用するために、バインダーの設計はフレームワーク、ネイティブ、カーネルレイヤーを介して実行されます。開発者は、上位層のバインダーを簡単に使用して、他のプロセスへのデータ通信を開始できます。
17.JNIソースコードの詳細な分析AndroidNDKの
開発中、効率と安全性の理由から、c / cpp操作のためにネイティブ環境を呼び出すためにJNIメカニズムを使用する必要があることがよくあります。
18. Glideソースコードの詳細な分析
Glideには、豊富な機能、3レベルの画像キャッシュ、詳細なカスタマイズ(AppGlideModule、LibraryGlideModuleを継承してその他の機能を提供)、ネットワークリクエストライブラリの変更、複数の入力リソースと出力リソースの変換のサポートがあります。 (入力ストリーム、出力ビットマップなど)、ライフサイクル管理。したがって、ソースコードを詳細に分析する必要があります
19. RxJavaの原理と、RxJavaの使用をパッケージ化する方法は
、Android開発者にとって不可欠なスキルとして説明できます。
20. LeakCanaryのコア原則ソースコード分析
LeakCanaryは、Androidのメモリリークのフレームワークであり、「インタビューでよくある質問」として、学ぶ価値のあるものが必要です。
21.プラグインアーキテクチャの定義とプラグインアーキテクチャの実用的なアイデアは、
babelプラグイン、webpackプラグイン、vue-cliプラグインを分析します。なぜこれほど多くの優れたフレームワークがプラグインシステムを使用するのでしょうか。 ?プラグインアーキテクチャとは何ですか?メリットは何ですか?どのようなシナリオに適用できますか?
22.ホットリペア設計のホットリペアの原則
ホットリペアテクノロジーは、現在のAndroid開発において比較的高度で人気のある知識ポイントであり、高度な開発につながるときに中級開発者が習得しなければならないスキルです。同時に、Android業界では、ホットリペア技術が開花しており、大手メーカーが独自のホットリペアソリューションを立ち上げています。したがって、熱間修理の原理を理解し、学ぶことも必要です。
❤️スペースには限りがあります。詳細なコンテンツについては、私をクリックしてフルバージョンのPDFを表示してください❤️
BATJファクトリーなどに入る(準備)!最近はインターネットが寒いと言われていますが、実は間違った車に乗って身につける(スキル)が少ないだけです。正しい車に乗って自分の技術力が十分にあれば、会社の代わりになります。コストが高くなります。エンドビジネスカードを排除するだけです!現在、市場にはジュニアプログラマーが殺到しています。ソースコードの学習は、1〜6歳のAndroid開発エンジニアを対象としています。彼らはボトルネックの時期にあります。来年の昇給を突破したい人、高度なAndroid中級および上級、アーキテクトはあなたにとってさらに快適です、すぐに入手してください!