面試題分享,準備一個月拿下騰訊、華為等9個大廠offer(附答案)

yilian發表於2020-03-04

前言

又到了金三銀四的面試季,自己也不得不參與到這場戰役中來,其實是從去年底就開始看,android的好機會確實不太多,但也還好,3年+的android開發經歷還是有一些面試機會的,

不過確實不像幾年前門檻那麼低了,總的體會就是小的創業公司比較注重你的專案經歷是否和自己的貼合,直接能過來獨當一面。

大廠除了看中專案經歷外,還比較注重你知識面的廣度,是廣度、深度和解決方案等多方面的考察,平時夠工作要好好積累,刷題要夠多,只聊點皮毛估計是過不了關的。

幾點建議

1.簡歷要如實寫,相關的知識點一定要爛熟於心。

2.提前總結,你還擅長什麼其他技術?這種開放問題要看知識面了。

3.學會提問,你有什麼問題要問我嗎?這種禮貌性問題也是一個瞭解對方的好機會。

4.良好的心裡素質,無論遇到什麼情況,面試官遲到、面試官態度冰冷說話不客氣、質疑你的回答等等各種問題都不要慌也不要排斥,一定要沉住氣,耐心積極的思考並回答對方的提問

面試真題

Activity

1、說下Activity 生命週期 ?

2、Activity A 啟動另一個Activity B 會呼叫哪些方法?如果B 是透明主題的

又或者是個DialogActivity 呢 ?

3、說下onSaveInstanceState()方法的作用 ? 何時會被呼叫?

4、說下 Activity 的四種啟動模式、應用場景 ?

5、瞭解哪些Activity 常用的標記位Flags?

6、說下 Activity 跟window,view 之間的關係?

7、橫豎屏切換的Activity 生命週期變化?

8、如何啟動其他應用的Activity?

9、Activity 的啟動過程?(重點)

Bitmap

1、Bitmap 使用需要注意哪些問題 ?

2、Bitmap.recycle()會立即回收麼?什麼時候會回收?如果沒有地方使用這

個Bitmap,為什麼垃圾回收不會直接回收?

3、一張Bitmap 所佔記憶體以及記憶體佔用的計算

4、Android 中快取更新策略 ?

5、LRU 的原理 ?

Fragment

1、談一談Fragment 的生命週期?

2、談談Activity 和Fragment 的區別?

3、Fragment 中add 與replace 的區別(Fragment 重疊)

4、getFragmentManager、getSupportFragmentManager 、

getChildFragmentManager 之間的區別?

5、FragmentPagerAdapter 與FragmentStatePagerAdapter 的區別與使用場景

由於篇幅限制,細節內容實在太多啦,所以只把部分答案截圖出來粗略的介紹,剩餘內容已經編輯成PDF文件!有需要的程式猿(媛)可以幫忙轉發+關注私信(社招)哦

Handler

1、談談訊息機制Handler 作用 ?有哪些要素 ?流程是怎樣的 ?

2、一個執行緒能否建立多個Handler,Handler 跟Looper 之間的對應關

系 ?

3、軟引用跟弱引用的區別

4、Handler 引起的記憶體洩露原因以及最佳解決方案

5、為什麼系統不建議在子執行緒訪問UI?

6、Looper 死迴圈為什麼不會導致應用卡死?

7、使用Handler 的postDealy 後訊息佇列會有什麼變化?

8、可以在子執行緒直接new 一個Handler 嗎?怎麼做?

9、Message 可以如何建立?哪種效果更好,為什麼?

JNI

1、對JNI 是否瞭解

2、如何載入NDK 庫 ?如何在JNI 中註冊Native 函式,有幾種註冊方法 ?

Service

1.談一談Service 的生命週期?

2、Service 的兩種啟動方式?區別在哪?

設計模式

1、你所知道的設計模式有哪些?

2、談談MVC、MVP 和MVVM,好在哪裡,不好在哪裡 ?

3、封裝p 層之後.如果p 層資料過大,如何解決?

4、是否能從Android 中舉幾個例子說說用到了什麼設計模式 ?

5、裝飾模式和代理模式有哪些區別 ?

6、實現單例模式有幾種方法 ?懶漢式中雙層鎖的目的是什麼 ?兩次判空的

目的又是什麼 ?

7、用到的一些開源框架,介紹一個看過原始碼的,內部實現過程。

8、Fragment 如果在Adapter 中使用應該如何解耦?

由於篇幅限制,細節內容實在太多啦,所以只把部分答案截圖出來粗略的介紹,剩餘內容已經編輯成PDF文件!有需要的程式猿(媛)可以幫忙轉發+關注私信(社招)獲取哦

資料儲存

1、描述一下Android 資料持久儲存方式?

2、SharedPreferences 的應用場景?注意事項?

3、SharedPrefrences 的apply 和commit 有什麼區別?

4、瞭解SQLite 中的事務操作嗎?是如何做的

5、使用SQLite 做批次操作有什麼好的方法嗎?

6、如何刪除SQLite 中表的個別欄位

7、使用SQLite 時會有哪些最佳化操作?

IPC

1、Android 中程式和執行緒的關係? 區別?

2、如何開啟多程式 ? 應用是否可以開啟N 個程式 ?

3、為何需要IPC?多程式通訊可能會出現的問題?

4、Android 中IPC 方式、各種方式優缺點,為什麼選擇Binder?

5、Binder 機制的作用和原理?

6、Binder 框架中ServiceManager 的作用?

7、Bundle 傳遞物件為什麼需要序列化?Serialzable 和Parcelable 的區別?

8、講講AIDL?原理是什麼?如何最佳化多模組都使用AIDL 的情況?

View

1、講下View 的繪製流程?

2、MotionEvent 是什麼?包含幾種事件?什麼條件下會產生?

3、描述一下View 事件傳遞分發機制?

4、如何解決View 的事件衝突 ? 舉個開發中遇到的例子 ?

5、scrollTo()和scollBy()的區別?

6、Scroller 是怎麼實現View 的彈性滑動?

7、 invalidate()和postInvalidate()的區別 ?

8、SurfaceView 和View 的區別?

9、自定義View 如何考慮機型適配 ?

由於篇幅限制,細節內容實在太多啦,所以只把部分答案截圖出來粗略的介紹,剩餘內容已經編輯成PDF文件!有需要的程式猿(媛)可以幫忙轉發+關注私信(社招)獲取哦

執行緒

1、執行緒池的好處? 四種執行緒池的使用場景,執行緒池的幾個引數的理解?

2、Android 中還了解哪些方便執行緒切換的類?

3、講講AsyncTask 的原理

4、IntentService 有什麼用 ?

5、直接在Activity 中建立一個thread 跟在service 中建立一個thread 之間

的區別?

6、ThreadPoolExecutor 的工作策略 ?

7、Handler、Thread 和HandlerThread 的差別?

8、ThreadLocal 的原理

9、多執行緒是否一定會高效(優缺點)

10、多執行緒中,讓你做一個單例,你會怎麼做

11、除了notify 還有什麼方式可以喚醒執行緒

12、什麼是ANR ? 什麼情況會出現ANR ?如何避免 ? 在不看程式碼的情況

下如何快速定位出現ANR 問題所在 ?

效能最佳化

1、圖片的三級快取中,圖片載入到記憶體中,如果記憶體快爆了,會發生什麼?怎麼處

理?

2、記憶體中如果載入一張500*500 的png 高畫質圖片.應該是佔用多少的記憶體?

3、WebView 的效能最佳化 ?

4、Bitmap 如何處理大圖,如一張30M的大圖,如何預防OOM?

5、記憶體回收機制與GC 演算法(各種演算法的優缺點以及應用場景);GC 原理時機

以及GC 物件

6、記憶體洩露和記憶體溢位的區別 ?AS 有什麼工具可以檢測記憶體洩露

7、效能最佳化,怎麼保證應用啟動不卡頓? 黑白屏怎麼處理?

8、強引用置為null,會不會被回收?

9、ListView 跟RecyclerView 的區別

10、ListView 的adapter 是什麼adapter

11、LinearLayout、FrameLayout、RelativeLayout 效能對比,為什麼?

Android 進階延伸點

1、如何進行單元測試,如何保證App 穩定 ?

2、Android 中如何檢視一個物件的回收情況 ?

3、Apk 的大小如何壓縮 ?

4、如何透過Gradle 配置多渠道包?

5、外掛化原理分析

6、元件化原理

7、跨元件通訊

8、元件化中路由、埋點的實現

9、Hook 以及插樁技術

10、Android 的簽名機制?

11、v3 簽名key 和v2 還有v1 有什麼區別

12、Android5.0~10.0 之間大的變化

13、說下Measurepec 這個類

14、請例舉Android 中常用佈局型別,並簡述其用法以及排版效率

15、區別Animation 和Animator 的用法,概述其原理

16、使用過什麼圖片載入庫?Glide 的原始碼設計哪裡很微妙?

17、如何繞過9.0 限制?

18、用過哪些網路載入庫?OkHttp、Retrofit 實現原理?

19、對於應用更新這塊是如何做的? (灰度,強制更新、分割槽域更新)

20、會用Kotlin、Fultter 嗎? 談談你的理解

由於篇幅限制,細節內容實在太多啦,所以只把部分答案截圖出來粗略的介紹,剩餘內容已經編輯成PDF文件!有需要的程式猿(媛)可以幫忙轉發+關注私信(社招)獲取哦

以上是社招的精華面試題,除此之外,我還有學習內容可以全部免費分享給大家

Android學習PDF大全

這份Android學習PDF大全真的包含了方方面面了,內含Java基礎知識點、Android基礎、Android進階延伸、演算法合集等等

Android進階之光

1章  Android新特性

.第 2章  Material Design

3章  View體系與自定義 View

4章 多執行緒程式設計

5章 網路程式設計與網路框架

6章 設計模式

7章 事件匯流排

8章 函式響應式程式設計

9章 註解與依賴注入框架

10章 應用架構設計

11章 系統架構與 MediaPlayer框架

image

注意:需要Android學習PDF大全、Android進階之光、高階Android開發強化實戰、深入探索Android熱修復技術原理,還有演算法題的朋友,可以直接私信我【核心】
這些都是我閒暇還會反覆翻閱的精品資料!

高階Android開發強化實戰

1.進階基礎

2高階控制元件

3.專案架構

4.晌應式程式設計

5.炫酷功能

6.精美動畫

7.Katlin SVG

8.測試與最佳化

深入探索Android熱修復技術原理

介紹了 Android 熱修復的核 技術原理 結合 ophix 熱修復開發實踐過程,

從程式碼修復、資源修復、 so 庫修復 大方向進行了詳細的技術剖析與解讀,業內少有的深度講解 Android 系統熱修復技術的書籍,對於原理、程式碼講解得非常清晰和深入,值得我們 AAndroid工程師研讀。

我的這份學習合集,可以有效的幫助大家掌握知識點。

總之也是在這裡幫助大家學習提升進階,也節省大家在網上搜尋資料的時間來學習,也可以分享給身邊好友一起學習!

分享不易,一定要關注+點贊,支援一波!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952849/viewspace-2678509/,如需轉載,請註明出處,否則將追究法律責任。

相關文章