有些andorid開發人員感覺很迷茫,接下來該去看系統源碼還是繼續做應用,但是感覺每天僅僅實在畫UI和調用MobileAPI處理JSON,沒有技術上升的空間。下面是包建強老師的《APP研發錄》當中列舉的20條需要精通的技能點看看你是否完全掌握:
1)Activity相關
App應用開發,以Activity使用最多,設計LaunchMode、onSaveInstanceState、生命周期等技術。
2)Fragment相關技術
用的人不少,明白是怎麼回事的人不多,推薦一本書《Creating Dynamic UI Android Fragments》
3)序列化技術
有Parcelable與Serializable兩種。前者是基于Service的,後者是基于Bundle的,二者實作原理不同,但是達到的效果近似。
4)ImageLoader的原理和使用
類似的,還可以學習Facebook新近開源的Fresco,它對圖檔的處理會更好一些。
5)fastJSON或GSON的使用
做App不會用實體自動比對JSON資料,相當于白做。
6)多線程相關
包括Handler、Looper、ExecutorService等。
7)Adapter和ListView
這兩個技術捆在一起,經常容易崩潰,尤其是分頁的時候,要仔細研究深刻領會。
8)使用者Cookie設計
需要把登陸機制徹底搞清楚,包括在HttpRequest頭中夾帶Cookie來進行使用者身份驗證的技術。
9)網絡請求封裝
使用AsyncTask的網絡底層封裝,使用Handler+Runnable的網絡底層封裝。
10)Android與HTML5的互動
包括Android調用HTML5的方法,以及HTML5調用Android的方法。
11)代碼混淆
沒有用過ProGuard,不知道keep相關文法,就仍是初級水準。
12)Android打包機制
涉及Android SDK中的若幹指令。對Android打包過程做的每一件事都很清楚。進一步是Android多項目以來的打包技術。Ant、Gradle或者Maven,掌握其中任何一種打包機制即可。
13)線上Crash分析并修複
要具備通過分析Crash資訊修複線上Crash的能力。
14)記憶體洩露
包括記憶體優化、Eclipse或Android Studio的調試功能。
15)調試工具
包括DDMS、Eclipse或Android Studio的調試功能。
16)Monkey機制
Android開發人員如何對一款App進行Monkey測試。附加技能~
17)單元測試
JUnit。對複雜的算法寫過單元測試以保證其沒有問題。
18)GIT的進階功能
包括Stage、Rebase、Revert、Stash、Cherry Pick和Sub Module等概念。如果項目中使用的是SVN,要掌握SVN的版本管理政策。
19)插件化程式設計
哪怕知道一點DexClassLoader的概念也好。這年頭,沒做過插件化程式設計,出門面試都不好意思說自己是Android開發的。
20)設計模式
對常見的設計模式如工廠、生成器、擴充卡、代理、政策模式耳熟能詳。
以上20點設計的技術完全掌握之前,并不用花太多精力去看Android系統源碼。