- Android性能優化入門與實戰
- 張世欣
- 1232字
- 2024-04-24 17:47:43
1.4 性能技術專家需要具備的能力
資深開發者再進一步發展,主要有兩個方向,即技術經理和技術專家,分別對應業務方向和技術方向。
技術經理需要有技術廣度,除了Android技術過硬,對其他技術也要有所了解,同時商業思維和項目管理能力等也要很強,最重要的是具備團隊建設能力,負責的團隊能夠以較高的速度、質量和滿意度落實規劃;技術專家需要有技術深度,對Android的某個領域有非常深入的理解,可以牽頭完成復雜技術攻關,可以從領域的視角出發為產品提供發展建議。
在規模較大的企業內,技術專家一般分多個方向,常見的有音視頻、跨平臺、圖像處理、性能優化、DevOps、端智能等。每個方向涉及的知識點都非常多,因為它們是與平臺無關的通用技術,無論是Android、iOS,還是前端、后端,這些方向都會涉及到,所以開發者可以將其作為個人技術特長深入學習。
限于篇幅和筆者的個人經驗,本書主要介紹的是Android性能技術專家需要掌握的相關知識,本節先介紹性能技術專家需要具備的能力。
性能技術專家一般指在性能優化相關領域有深入實踐的開發者。除了業務手段,性能技術專家更要能從系統底層出發,根據系統運行機制,提出針對業務的優化思路和方法。
性能技術專家的判斷標準如下。
● 具備獨到的技術深度,在部門內技術影響力強。
● 能夠發現產品存在的體驗問題,提出系統的優化方案并取得收益。
● 能夠根據技術領域的發展趨勢,為產品提供優化方向。
● 不限于技術方向,可以從多維技術角度思考,為業務提供技術價值。
● 對團隊的整體技術提升負責,在技術分享、技術規范、代碼審查等方面有比較多的經驗。
性能技術專家需要具備如下技術能力。
● 熟悉Android NDK開發,掌握常用的NDK的使用場景。
● 掌握Linux系統編程,能夠從Linux系統角度思考優化方案。
● 熟悉Android虛擬機核心模塊,能夠根據問題快速了解具體技術細節。
● 熟悉Android啟動、內存、卡頓、功耗、包大小等的底層原理,具備相關優化能力。
● 掌握Android ANR(Application Not Responding,應用無響應)、OOM(Out Of Memory,內存不足)、崩潰等穩定性問題的解決思路、方法和工具。
● 熟悉Android App構建過程,能夠對編譯速度進行優化。
性能技術專家一般是公司中性能方向的“權威”,能夠結合Android系統的運行機制,為產品提供性能診斷、優化建議和分析工具。要達到這個階段,開發者需要有全面的知識體系,同時在實踐中通過解決大量的問題,沉淀分析經驗和理論,從而對Android系統架構從下到上有深入的理解。
一般公司在招聘這個階段的開發者時,在技術方面會考察得比較深入,可能會從Linux進程管理、內存管理、CPU(Central Processing Unit,中央處理器)調度,一路問到Android虛擬機的AOT(Ahead Of Time,預編譯)、類加載、代碼執行,然后問到上層的界面渲染、內存申請等細節。當然,不會要求面試者對所有細節都非常熟悉,只要能打通某個線,具備相關基礎知識即可,這樣再學習其他知識也很容易。
本書的主要目的,就是為讀者提供成為Android性能技術專家的學習指引,解決普通App開發者不了解、不知道Linux和Android虛擬機的使用場景的問題。無論你現在做什么業務,性能優化都可以派上用場,相信讀完本書,你可以對性能優化和成為性能技術專家有更深刻的認識。