學習安卓應該具備的知識技能

一,語言

此塊內容是工作中必須使用到的技術,一方面需要在工作中總結,另一方面更需要自己下班後找時間自學,推薦看書看博客和動手,這方面的知識不算龐雜,也比較容易描述,最好自己總結到博客中

  • Java 
    • class, method, interface, enum, annotation的基本與使用 
    • class的繼承與方法覆寫,靜態內部類,非靜態內部類,匿名內部類 
    • 引用的概念,值傳遞,引用傳遞 
    • 引用類型:強引用/弱引用/虛引用/軟引用,各自的使用場景
    • 原始數據類型,自動裝箱機制 
    • public/protected/private package的概念 
    • static的使用 static field的特點,初始化 
    • final的使用 
    • 異常,受檢異常,非受檢異常,異常輸出棧的分析 
    • 內存 
      • 堆 vs 棧 GC,與C的內存管理做比較
      • gc的原理 
    • Java泛型,泛型的實現 
    • 常見容器類的適用場景和實現原理: ArrayList, LinkedList, HashMap, HashSet 
    • 常見設計模式的實現和適用場景: 
      • singleton, 各種各樣的實現方式,需要理解volatile的概念 
      • factory method, 與構造器之間的區別
      • builder, 解決什麼問題 
      • observer 
    • 線程 Thread的基本使用 線程安全,線程同步,鎖的概念,synchronized的使用 volatile的概念 Executors庫的基本使用 
    • 反射,作用,幾個常用的API 
    • classloader的概念和作用
  • C/C++
    • 面向對象 vs 面向過程 
    • 內存相關:堆 vs 棧 引用,值,指針,sizeof的計算
    • C++ class相關

二,Android 

此塊內容與Java相同,該部分內容非常多,需要動手寫demo,關鍵問題需要反覆實踐,最好針對重要問題理透之後,通過博客做記錄,也方便麪試之前回顧

基礎方面,先跟着google的教程快速的走一編,動手搭建起項目,然後按照制定的計劃,較爲詳細的研究每個課題,然後在博客中給出自己的總結

基礎

  • 組件 
    • Activity 
      • 用途,使用方法 
      • 生命週期 
      • launch_mode 
    • Service 
      • startService/bindService 
      • 基本生命週期 
      • IntentService 
    • BroadcastReceiver 
      • 兩種使用方式,靜態 vs 動態 
      • 基本生命週期 
    • ContentProvider 使用方式 
  • Handler/Looper/MessageQueue,理解這套框架的工作機制 
  • 線程的劃分,主線程/UI線程,AsyncTask 
  • View 
    • 基礎View的使用,TextView, Button, ImageView, LinearLayout, RelativeLayout, FrameLayout 
    • 理解View的加載流程,attr, style的概念(進階) 
    • 整個展示流程,measure, layout, draw(進階) 
    • touch event的分發流程(進階)
  • Context/ContextImpl/Application 
    • 系統中有哪些類型的Context, activity, service, application 
    • 每種context都有什麼特點 
  • Fragment 
    • 使用方式,code/xml 
    • 與Activity的關係 
    • vs Custom View(進階) 
  • Preference體系 
  • 編譯的過程,代碼,資源,proguard

進階

  • Binder IPC 
    • 基本調用模型和概念 
    • aidl,  binder proxy, binder native,  Parcel,  FLAG_ONEWAY等重要概念
    • binder thread的概念 
    • ServiceManager的角色 
  • ANR
    • 基本概念,系統檢測ANR的原理
    • 分析套路
    • trace的概念 
  • 內存優化
    • 各種內存概念的定義 
    • 內存泄漏 
    • JVM GC的原理 
    • gc root的概念和類型 
    • Android中內存泄漏的原理和常見類型 
    • LeakCanary的原理和MAT的使用 
  • 重要進程,瞭解每個進程的作用和生命週期 
    • init進程 
    • zygote進程 
    • system_server進程 
    • {app}進程
    • 重要的系統服務 
      • AMS,該服務承擔的職責,activity stack, task的概念 
      • WMS,該服務承擔的職責,ViewRootImpl的作用,與WMS的交互 
      • PMS,該服務承擔的職責

三,工具

此塊屬於工作必備,需要自己會配置,熟練使用

四,計算機基礎知識

需要自己找時間積累,推薦看書和看博客,面試之前也推薦看一看面試寶典

  • 數據結構與算法
  • 操作系統
    • Linux爲主
    • 進程,線程 
    • 進程/線程同步的概念 
    • 內存管理 
    • 文件系統 
    • I/O 
    • 中斷,信號
  • 網絡相關
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章