1. 程式人生 > >Android 提高技能需要了解的一些東西

Android 提高技能需要了解的一些東西

需要了解的一些東西,面試的時候也經常會被問到:

1)Activity相關,四大元件。App應用開發,涉及LaunchMode、onSaveInsatnce-State、生命週期等技術。

比如:推送訊息過來之後,訊息傳遞的流程,清楚程式的流程生命週期

2)Fragment相關技術。activity與fragment之間的訊息傳遞,相關技術可以參考官方文件

比如 有時候會遇到的問題,fragment not attached to activity 的問題,或者由於點選過快,重複創建出現的exception(這個有時候和機器有關) 

3)序列化技術。有Parcelable和Serializable兩種,經常面試的時候會被問到異同。

4)圖片載入技術。 Fresco,glide ,UIL等等一些,可以去查詢一下相關的優缺點,以後相關的快取技術。

圖片載入經常會出現OOM的問題,怎麼去解決相關問題,也會在面試的時候經常被問到。

5)fastJSON或GSON的使用。網路傳遞資料解析成物件的,這個不用說這個的重要性,也有通過XML,或者二進位制流傳遞資料的。

6)多執行緒相關。包括Handler、Looper、ExecutorService等。併發性等等。

7)Adapter和ListView,RecycleView,列表的寫法。

8)網路模組:Okttp,retrofit等等,RestFul風格。

      面試的時候有時候會被問到 HttpULConnection和HttpClient的異同。

      可以demo寫一個登入,瞭解這個。

      網路請求封裝。使用AsyncTask的網路底層封裝,使用Handler+Runnable的網路底層封裝。

9)Service receiver 的使用。 

10)Android與HTML5的互動。包括Android呼叫HTML5的方法,以及HTML5呼叫Android的方法。

11)程式碼混淆。ProGuard,不keep相關語法。

gradle中的常用的一些語法。

12)Android打包機制。涉及Android SDK中的若干命令。

        對Android打包過程做的每一件事都很瞭解。  進一步是Android多專案依賴的打包技術。Ant、Gradle或者Maven,掌握其中任何一種打包機制即可。

        多渠道打包的情況。

13)線上Crash分析並修復。要具備通過分析Crash資訊修復線上Crash。

14)記憶體洩漏。包括記憶體優化、記憶體洩漏的場景、MAT工具的使用。

15)除錯工具。包括DDMS、Eclipse或Android Studio的除錯功能。

16)Monkey機制。Android開發人員如何對一款App進行Monkey測試。

17)單元測試。這裡指的是JUnit。對複雜的演算法寫過單元測試以保證其沒有問題。

18)GIT的高階功能。包括 fetch,rebase,merge,Revert、Stash、Cherry Pick和Sub Module等相關常用的命令

      如果專案中使用的是SVN,那麼要掌握SVN的版本管理策略。

19)外掛化程式設計。哪怕知道一點DexClassLoader的概念也好

20)設計模式。對常見的設計模式如工廠、生成器、介面卡、代理、策略模式耳熟能詳。

21)常用的ADB命令

22)演算法,這個大公司的面試必備的。

23)可以拓展技能,學習一下其他種類的語言:比如:Python,Ruby等等

       Kotlin也算是比較火的語言