安卓面試題總結(jié)

前幾天在鴻羊大神公眾號(hào)考到一片面試題文章,樓主把他借鑒過來,附上每道題的知識(shí)點(diǎn)連接,方便自己和他人復(fù)習(xí)用。

1 Java 技術(shù)篇

1.1 Java基礎(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.1 Android基礎(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.2 Resource相關(guān)

.9圖片的意義?

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.4 View相關(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)試工具:Hierarchy Viewer?、DDMS?等

CI工具:Lint檢查?,FindBugs?、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)、包劃分

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容