android面試知識(shí)點(diǎn)
Android面試相關(guān)知識(shí)點(diǎn)
1.1Java基礎(chǔ)
對(duì)抽象、繼承、多態(tài)的理解
泛型的作用及使用場(chǎng)景
枚舉的特點(diǎn)及使用場(chǎng)景
線程sleep和wait的區(qū)別
JAVA反射機(jī)制
weak/soft/strong引用的區(qū)別
Object的hashCode()與equals()的區(qū)別和作用
1.2集合類
JAVA常用集合類功能、區(qū)別和性能
并發(fā)相關(guān)的集合類
部分常用集合類的內(nèi)部實(shí)現(xiàn)方式
1.3多線程相關(guān)
Thread、Runnable、Callable、Futrue類關(guān)系與區(qū)別
JDK中默認(rèn)提供了哪些線程池,有何區(qū)別
線程同步有幾種方式,分別闡述在項(xiàng)目中的用法
在理解默認(rèn)線程池的前提下,自己實(shí)現(xiàn)線程池
1.4字符
String的不可變性
StringBuilder和StringBuffer的區(qū)別
字符集的理解:Unicode、UTF-8、GB2312等
正則表達(dá)式相關(guān)問題
1.5注解
注解的使用
注解的級(jí)別及意義
如何自定義注解
2、Android技術(shù)
2.1Android基礎(chǔ)
四大組件的意義及使用,生命周期回調(diào)及意義
AsyncTask、Handler的使用
Android系統(tǒng)層次框架結(jié)構(gòu)
AsyncTask的實(shí)現(xiàn)方式
AsyncTask使用的時(shí)候應(yīng)該注意什么
Android常見的存儲(chǔ)方式
Looper、Handler和MessageQueue的關(guān)系
Activity的啟動(dòng)流程(考察對(duì)Framwork的熟悉程度)
多進(jìn)程開發(fā)的注意事項(xiàng)(Application類區(qū)分進(jìn)程,進(jìn)程間內(nèi)存不可見、進(jìn)程間通訊方式)
2.2Resource相關(guān)
style和theme的作用及用法
dpi、sp、px的區(qū)別以及轉(zhuǎn)換關(guān)系
raw和assets文件夾的作用,二者有何區(qū)別
Android系統(tǒng)如何在多個(gè)資源文件夾下查找匹配最合適的資源
2.3虛擬機(jī)
Java內(nèi)存模型
Android虛擬機(jī)的特點(diǎn)
Dalvik和Art的區(qū)別
熟悉垃圾回收的實(shí)現(xiàn)機(jī)制,了解虛擬機(jī)的GC類型
2.4View相關(guān)
常用組件的使用:ListView、RecyclerView及Adapter的使用
View之間的繼承關(guān)系
Invalidate與postInvalidate的區(qū)別
自定義View的實(shí)現(xiàn)方式(根據(jù)項(xiàng)目經(jīng)驗(yàn)詢問相關(guān)組件)。
onMeasure/onLayout/onDraw的作用
Paint、Matrix、Shader等繪制相關(guān)類的方法作用
詳細(xì)描述事件分發(fā)機(jī)制
2.5動(dòng)畫
Android有哪些動(dòng)畫的實(shí)現(xiàn)方式
Interpolator類的意義和常用的Interpolator
ViewAnimation與屬性動(dòng)畫有什么區(qū)別
如何自定義ViewAnimation
屬性動(dòng)畫的實(shí)現(xiàn)原理
2.6圖片處理
一般項(xiàng)目中如何加載大圖
圖片壓縮的方式
如何不壓縮圖片加載高清圖
圖片加載過程中,一般會(huì)使用緩存,這個(gè)緩存的主要作用是什么
談?wù)勛约菏煜さ膱D片加載框架
3、項(xiàng)目經(jīng)驗(yàn)
3.1開發(fā)工具
代碼管理工具:SVN、Git
常用的調(diào)試工具:HierarchyViewer、DDMS等
CI工具:Lint檢查,F(xiàn)indBugs、Jenkins
內(nèi)存分析工具:dumpsys、memoinfo、MAT
3.2項(xiàng)目工程
APP更新策略:推送或者拉取?
如何統(tǒng)一處理錯(cuò)誤崩潰
如何進(jìn)行用戶行為收集
日志管理有哪些要點(diǎn)?(Debug包開放,release包關(guān)閉,錯(cuò)誤日志反饋)
打包方式Ant、Maven、Gradle
機(jī)型適配情況
3.3開放平臺(tái)
是否使用過第三方平臺(tái)
常用開放平臺(tái)的熟悉度(微信、QQ、微博、支付寶等常用的支付和分享)
是否進(jìn)行過對(duì)第三方平臺(tái)的統(tǒng)一封裝?
是否自己開發(fā)過SDK?
3.4設(shè)計(jì)相關(guān)
有哪些常用的設(shè)計(jì)模式、設(shè)計(jì)原則
設(shè)計(jì)模式在Android源碼中的應(yīng)用
設(shè)計(jì)模式在項(xiàng)目中的應(yīng)用
項(xiàng)目中的分包方式
MVC在android中的應(yīng)用,利弊
android項(xiàng)目中的常見層次結(jié)構(gòu),包劃分
有沒有設(shè)計(jì)過項(xiàng)目中的層級(jí)結(jié)構(gòu)、包劃分
