Android 面試要點

從網上轉的一篇文章,感覺這份確實算不錯,就保存這裏(請點擊到原文查看
作者08,目前作爲某創業公司Android負責人,在羣裏自己整理面試題裝逼的時候被我發現,私下找他要了一份,當然他也非常願意分享~

整個面試題分爲三個部分:Java、Android和項目經驗。
1
Java技術
1.1 Java基礎

對抽象、繼承、多態的理解
泛型的作用及使用場景
枚舉的特點及使用場景
線程sleep和wait的區別
JAVA反射機制
weak/soft/strong引用的區別
Object的hashCode()與equals()的區別和作用

1.2 集合類

JAVA常用集合類功能、區別和性能
併發相關的集合類
部分常用集合類的內部實現方式

1.3 多線程相關

Thread、Runnable、Callable、Futrue類關係與區別
JDK中默認提供了哪些線程池,有何區別
線程同步有幾種方式,分別闡述在項目中的用法
在理解默認線程池的前提下,自己實現線程池

1.4 字符

String的不可變性
StringBuilder和StringBuffer的區別
字符集的理解:Unicode、UTF-8、GB2312等
正則表達式相關問題

1.5 註解

註解的使用
註解的級別及意義
如何自定義註解

2
Android技術
2.1 Android基礎

四大組件的意義及使用,生命週期回調及意義
AsyncTask、Handler的使用
Android系統層次框架結構
AsyncTask的實現方式
AsyncTask使用的時候應該注意什麼
Android常見的存儲方式
Looper、Handler和MessageQueue的關係
Activity的啓動流程(考察對Framwork的熟悉程度)
多進程開發的注意事項(Application類區分進程,進程間內存不可見、進程間通訊方式)

2.2 Resource相關

.9圖片的意義
style和theme的作用及用法
dpi、sp、px的區別以及轉換關係
raw和assets文件夾的作用,二者有何區別
Android系統如何在多個資源文件夾下查找匹配最合適的資源

2.3 虛擬機

Java內存模型
Android虛擬機的特點
Dalvik和Art的區別
熟悉垃圾回收的實現機制,瞭解虛擬機的GC類型

2.4 View相關

常用組件的使用:ListView、RecyclerView及Adapter的使用
View之間的繼承關係
Invalidate與postInvalidate的區別
自定義View的實現方式(根據項目經驗詢問相關組件)。
onMeasure/onLayout/onDraw的作用
Paint、Matrix、Shader等繪製相關類的方法作用
詳細描述事件分發機制

2.5 動畫

Android有哪些動畫的實現方式
Interpolator類的意義和常用的Interpolator
ViewAnimation與屬性動畫有什麼區別
如何自定義ViewAnimation
屬性動畫的實現原理

2.6 圖片處理

一般項目中如何加載大圖
圖片壓縮的方式
如何不壓縮圖片加載高清圖
圖片加載過程中,一般會使用緩存,這個緩存的主要作用是什麼
談談自己熟悉的圖片加載框架

3
項目經驗
3.1 開發工具

代碼管理工具:SVN、Git
常用的調試工具:Hierarchy Viewer、DDMS等
CI工具:Lint檢查,FindBugs、Jenkins
內存分析工具:dumpsys、memoinfo、MAT

3.2 項目工程

APP更新策略:推送或者拉取?
如何統一處理錯誤崩潰
如何進行用戶行爲收集
日誌管理有哪些要點?(Debug包開放,release包關閉,錯誤日誌反饋)
打包方式Ant、Maven、Gradle
機型適配情況

3.3 開放平臺

是否使用過第三方平臺
常用開放平臺的熟悉度(微信、QQ、微博、支付寶等常用的支付和分享)
是否進行過對第三方平臺的統一封裝?
是否自己開發過SDK?

3.4 設計相關

有哪些常用的設計模式、設計原則
設計模式在Android源碼中的應用
設計模式在項目中的應用
項目中的分包方式
MVC在android中的應用,利弊
android項目中的常見層次結構,包劃分
有沒有設計過項目中的層級結構、包劃分

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章