
在我們的身邊,存在一個普遍現象:很多人從事Android開發作業多年,走過的彎和坎,不計其數,經歷的心酸難與外人道也,可是技術確難以提升、止步不前,薪資也只能看著別人水漲船高,自己卻沒有什么起色,
雖然在公司里屬于不可缺少的一員,但是同時又擔心離開了這家公司就找不到更好的作業了,
有這種焦慮的朋友或許應該思考一下這個問題:如何提升自己在 Android 市場上的競爭力?
首先我們要解決一個問題:為什么很多人會一直停留在兩三年的水平上,而后一直在重復以往的經驗?
我認為最主要的一點就是主觀能動性,或者說興趣,如果你對Android開發沒有太大的興趣,那么還是盡早換方向吧,有了興趣,然后就是要有一個比較正確的鉆研路線,不要這也搞那也抓,最后什么都沒精通又好像什么知道,
第一階段
在面試中,很多面試者以用過很多庫為榮,你真的去了解過這些庫么?研究過原始碼嗎?沒有怎么改善?
對于Android原始碼和第三方庫原始碼閱讀,可以根據自己感興趣的型別,選擇相應的原始碼庫或模塊,給自己約定一個時間點,看完之后最后有個流程圖,哪些是核心類,類與類之間都有什么關系,這些開源代碼實作的機制是什么,用到哪些解決思想,這些要點最終可以通過文章輸出,我覺得輸出倒逼輸入是一種很不錯的學習方式,
提升通用技術能力,一來通用技術如資料結構和演算法、計算機網路、作業系統、計算機系統結構等,對技術的深層理解有很大的幫助,二來這類技術在不同的語言和技術方向上切換時是共通的,
第二個階段
我覺得可以嘗試去了解Android Framework比較細節的一些東西,比如activity啟動流程,順便分析清除Activity stack的管理,比如了解Android的資源加載機制,順便了解aapt是如何打包Android資源的;又比如Java的類加載機制,這里配合資源的加載機制,很自然的就可以去了解Android的hotpatch機制,插件化的實作,開一些這方便的開源庫或者自己擼一個也就自然而然,
第三個階段
現在去很多公司面試,除了你具備基本的能夠寫一個高性能app的能力后,一般都會在自己的app里面加一些現有的相對較牛掰的技術,這些技術我們稱之為前沿技術,
他們一般包含熱升級,熱修復,App Instant,強制更新,組件化路由架構Arouter,RxJava,IOC架構方法,Hook技術等等,當然,這些技術你不能只會用,你需要知道他的原理,有時候,你還需要知道如何對這些架構進行改進,
另外,非常重要的一點,Android開發者不愿意接受新知識,所以對于現在Google推出的新的技術方案毫無感覺,這些都是被 control C 和control V所毒害,開源讓開發者失去了自我,失去了基本的編碼能力,失去了深入學習的信心和毅力,所以對于很多google推出的新技術好組件(Google I/O 大會新技術),好框架已經很多人不愿意去學習了,這是不應該的,我們需要好好學習啊,
第四個階段
提升軟實力,軟實力實際上也是一項通用的技能,甚至比第一條更加通用,
良好的溝通可以縮短開會的時長、節省相互之間的溝通成本,也使得團隊合作更加愉快,不錯的檔案表達能力可以省去不少的重復溝通,
懂得規劃自己的時間,上班時能更有條不紊地完成任務,下班也能高效地規劃業余時間的學習,
懂得反思:為什么這個任務預計五小時能完成,卻變成了三天;為什么這個需求要這樣做,這么做是最合理的嗎,還有更好的方式嗎?
對問題、業務和自身的更多思考有助于更好地發揮和展現你的技術實力,
最后
在這里,我想給想進階的朋友們一點建議:很多時候,很多事情,并不像你想象中的那么簡單,千萬不要自認為簡單而不愿意去做,很多東西只有你親手去做了之后,才會發現事情并不像你最初想的那么簡單,
做為一名Android開發者,我想分享一下這些年來,我對于技術一些歸納和總結,希望能幫助到有心在技術這條道路上一路走到黑的朋友!
1.高級UI,自定義View
UI這塊知識是現今使用者最多的,當年火爆一時的Android入門培訓,學會這小塊知識就能隨便找到不錯的作業了,
不過很顯然現在遠遠不夠了,拒絕無休止的CV,親自去專案實戰,讀原始碼,研究原理吧!


2.NDK模塊開發
時至今日,短視頻App可謂是如日中天,一片興興向榮,隨著短視頻的興起,音視頻開發也越來越受到重視,而且薪資水漲船高,以一線城市為例,音視頻工程開發的薪資比Android應用層開發高出40%,
內容主要涉及以下幾個方面:
- NDK 模塊開發
- JNI 模塊
- Native 開發工具
- Linux 編程
- 底層圖片處理
- 音視頻開發
- 機器學習


3.資料結構與演算法
為什么要研究資料結構?
這是因為所有的程式本質上是對資料進行處理,如何高效的處理資料,這依賴于資料本身的結構(如型別(整型、浮點型等)、維數、是否為復雜型別(結構體型別、型別別)等)以及資料之間的邏輯關系(線性、非線性等),
資料結構離不開演算法,設計好的資料結構就是為了讓演算法順利方便的實施,

4.Java進階與內核原理
內容主要涉及以下幾個方面:
- HashMap
- ArrayList
- LinkedList
- Hashset原始碼分析
- 記憶體模型
- 垃圾回收演算法( JVM )
- 垃圾回識訓制和呼叫 System.gc()的區別
- 類加載程序
- 反射
- 多執行緒和執行緒池
- 設計模式
- Java的泛型
等等…

5.Flutter技術進階
本篇知識要點:
1、Flutter跨平臺開發概述
2、Windows中Flutter開發環境搭建
3、撰寫你的第一個Flutter APP
4、Flutter Dart語言系統入門


6.360度全方面性能調優
隨著產品內容迭代,功能越來越復雜,UI頁面也越來越豐富,也成為流暢運行的一種阻礙,綜上所述,對APP進行性能優化已成為開發者該有的一種綜合素質,也是開發者能夠完成高質量應用程式作品的保證,
1、設計思想與代碼質量優化
2、程式性能優化
- 啟動速度與執行效率優化
- 布局檢測與優化
- 記憶體優化
- 耗電優化
- 網路傳輸與資料儲存優化
- APK大小優化
3、開發效率優化
- 分布式版本控制系統Git
- 自動化構建系統Gradle
4、專案實戰
- 啟動速度
- 流暢度
- 抖音在APK包大小資源優化的實踐
- 優酷回應式布局技術全決議
- 網路優化
- 手機淘寶雙十一性能優化專案揭秘
- 高德APP全鏈路原始碼依賴分析
- 徹底干掉OOM的實戰經驗分享
- 微信Android終端記憶體優化實踐


7.Framework精編內核決議
主要內容包含:
- 深入決議Binder
- 深入決議Handler
- Dalvik VM 行程系統
- 深入決議 WMS
- PackagerManagerService

8.Jetpack架構組件從入門到精通
- Android Jetpack - Navigation
- Android Jetpack - Data Binding
- Android Jetpack - ViewModel & LiveData
- Android Jetpack - Room
- Android Jetpack - Paging
- Android Jetpack - WorkManger
- Android Jetpack架構組件之Lifecycle
- Android Jetpack Compose 最全上手指南

想進階Android高級工程師和需要PDF檔案的朋友都可以加入這邊的交流qun,前面:1102,,中間:405,,最后:044
裙里從學生到大佬都有,資源免費分享,不見不散哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/278897.html
標籤:其他
