1. 程式人生 > >Android工程師從初級到資深所應具備的技術棧(不斷補充中)

Android工程師從初級到資深所應具備的技術棧(不斷補充中)

在Android開發上也做了有些年頭了,對Android開關相關的技術有了一定的積累,不敢說有多深,總是一些經驗與體會,一個開發人員,在完成工作的同時,應該不斷完善自身,這樣才能長期保持競爭力。在技術領域,有兩個特點,一為更新極快,二為多年不變。都是對的,新技術更新很快,而一些原理,底層技術卻是多年不變的。技術人員在積累技術時,要多關注底層原理,而不要把主要經力放在追逐新技術上。所謂萬變不離其中,原理是相同的,明白了原理,上手新技術是相多快的。好,進入正文,以下是我自己經驗總結的Android從事者所應積累的技術棧方向(因為我自身是做音視訊相關,也寫有部分音視訊的內容):

1.Android原始碼方向:HAL、IPC、AMS、WMS、ViewRoot、Surface
    初級:系統API的使用,四大元件,View特性,Handler使用
    中級:自定義View,自定義事件處理,JNI,AIDL,Handler原理
    高階:冷啟動,外掛化元件化,平臺架構
    資深:系統原始碼,OAT虛擬機器
2.C/C++語法
3.計算機作業系統:Linux
4.程式碼的編譯、連結、執行,虛擬機器的編譯期與執行期、Java位元組碼、dex檔案格式、oat檔案格式、.a、.o、elf檔案、.mk檔案
5.多媒體技術:錄製、播放、編解碼、音視訊、圖片、mp4、H264、amr
    初級:系統API特性及使用,圖片格式特性
    中級:錄製編輯等機型適配,FFMPEG,圖片壓縮原理,SurfaceView特性
    高階:開源播放器原理,mp4格式內容,音訊編解碼原理,H264原理
6.網路協議:TCP、UDP、HTTP、RTSP、HTTPS
    初級:HTTP使用,okhttp呼叫,retrofit使用,RxJava使用
    中級:HTTP各版本特性,TCP三次握手,Https原理及抓包原理,okHttp框架原理,Retrofit原始碼
    高階:okHttp各攔截鏈實現原理,TCP/IP協議原理,Socket特性,流媒體協議,HTTP2.0原理
7.設計模式:代理、命令、Builder、裝飾
    初級:單例,工廠,Builder,裝飾
    中級:觀察者,命令,生產者消費者,面向介面程式設計
    高階:MVP,複雜架構,EventBus原始碼
8.演算法:紅黑樹、儲存結構--Hash、圖論、SHA-256
    初級:排序、二手查詢,時間複雜度演算法,空間複雜度演算法,遞迴
    中級:演算法歸類,減分法,分治法、雜湊,二叉樹遍歷,常用資料結構
    高階:圖遍歷,複雜資料結構
    資深:加密演算法,壓縮演算法
9.文件:MD文件、UML圖
10.構建與版本控制:ant、maven、gradle、svn、git
11.Java:泛型、註解、反射、GC、虛擬機器、執行緒同步、阻塞佇列
    初級:基本性性,static,final,OOP,異常捕獲
    中級:泛型,反射,列舉,併發應用,阻塞佇列,集合特性
    高階:併發原理,虛擬機器特性,位元組碼,ClassLoader,集合實現原理
    資深:JVM調優,AOP,IOC,SPI
12.資料庫:關係庫、SQL、sqlite、GreenDao
    初級:建表原則,關係模型,1、n對映
    中級:SQL,索引,表聯查,GreenDao,ORM
    高階:資料庫鎖,事務,多程序資料庫