有些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系統源碼。



稳赢平特肖