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也算是比較火的語言