【乾貨】Android 一線網際網路面試題彙總,13模組200+題,征服面試官不是夢!
今天分享的面試題,基本都是針對一線網際網路公司的面試題整理的,我這裡就不單獨以公司為單位整理,我自己進行了分類,循序漸進,由基礎到深入,由易到簡。
每個問題的答案我都整理好了一個文件: AndroidBAT面試題整理,這樣就可以節省大家自己去搜尋的時間,把時間用在正確的東西上。
金九銀十,需要跳槽的快快複習和準備吧!
Android BAT 面試題目錄:
1.四大元件
2.Fragment
3.自定義元件、動畫
4.儲存
5.網路
6.圖片
7.佈局
8.效能最佳化
9.JNI
10.程式間通訊(簡稱:IPC)
11.WebView
12.程式保活
13.其他相關面試題
1.四大元件
- 四大元件是什麼
- 四大元件的生命週期
- Activity之間的通訊方式
- 橫豎屏切換的時候,Activity 各種情況下的生命週期
- Activity與Fragment之間生命週期比較
- Activity上有Dialog的時候按Home鍵時的生命週期
- 兩個Activity 之間跳轉時必然會執行的是哪幾個方法?
- Activity的四種啟動模式對比以及使用場景
- Activity狀態儲存與恢復
- Activity 怎麼和Service 繫結
- Service和Activity怎麼進行資料互動?
- Service的開啟方式
- 請描述一下Service 的生命週期
- 談談你對ContentProvider的理解
- ContentProvider、ContentResolver、ContentObserver 之間的關係
- 請描述一下廣播BroadcastReceiver的理解(實現原理)
- 廣播的分類
- 廣播使用的方式和場景
- 本地廣播和全域性廣播有什麼差別?
- Application 和 Activity 的 Context 物件的區別
2.Fragment
- 什麼是Fragment
- 為什麼要用Fragment
- Fragment與Activity的通訊方式
- Fragment各種情況下的生命週期
- Fragment之間傳遞資料的方式?
- Fragment的add與replace的區別
- 用Fragment有遇過什麼坑嗎,怎麼解決
- getFragmentManager,getSupportFragmentManager ,getChildFragmentManager三者之間的區別
- FragmentPagerAdapter與FragmentStatePagerAdapter的區別與使用場景
3.自定義元件、動畫
- 描述一下View的繪製流程
- 說說自定義view的幾個建構函式
- View 裡面的 onSavedInstanceState和onRestoreInstanceState的作用
- onLayout() 和Layout()的區別
- 描述一下getX、getRawX、getTranslationX
- Android中的動畫有哪幾類,它們的特點和區別是什麼
- Interpolator和TypeEvaluator的作用
- 請描述一下View事件傳遞分發機制
- 事件分發中的onTouch 和onTouchEvent 有什麼區別,又該如何使用?
- View和ViewGroup分別有哪些事件分發相關的回撥方法
- View重新整理機制
4.儲存
- 描述一下你知道的資料儲存方式
- SharedPreferences的應用場景,核心原理是什麼
- SharedPreferences是執行緒安全的嗎?
- 描述一下圖片儲存在本地的方式
- sqlite升級,增加欄位的語句
- 資料庫框架對比和原始碼分析
- 資料庫的最佳化
- 資料庫資料遷移問題
5.網路
- 描述一次網路請求的流程
- HTTP報文結構
- HttpClient和HttpURLConnection的區別
- Volley,okhttp,retrofit之間的區別和核心原理和使用場景
- 描述一下https
- https中哪裡用了對稱加密,哪裡用了非對稱加密,對加密演算法(如RSA)等是否有了解?
- 說一下三次握手,四次揮手的具體細節
- 描述一下socket是什麼東西
- 從網路載入一個10M的圖片,說下注意事項
- TCP與UDP的區別
- client如何確定自己傳送的訊息被server收到?
- WebSocket與socket的區別
- 網路請求快取處理,okhttp如何處理網路快取的
- 自己去設計網路請求框架,怎麼做?
6.圖片
- 說一下OOM的原因,如何避免
- 說一下三級快取的原理
- 描述一下記憶體快取的容器
- 圖片庫對比
- 圖片庫的原始碼分析
- 圖片框架快取實現
- LRUCache原理
- 自己去實現圖片庫,怎麼做?
- 說說Glide記憶體快取的具體實現?
7.佈局
- 說一下佈局效能的排序,誰的效率最高
- 描述一下約束佈局
- 關於佈局最佳化的方案
- 怎麼檢測佈局深度
- LinearLayout、RelativeLayout、FrameLayout的特性及對比,並介紹使用場景。
8.效能最佳化
效能最佳化包括:記憶體,處理效率,視覺流暢度,CPU,電量,流量等方面,針對手機的效能去做相應的方案。個人認為更應該把握好記憶體最佳化、處理效率(程式碼質量)、視覺流暢度(佈局最佳化)。
- ANR產生的原因是什麼?
- oom是什麼?
- 什麼情況導致oom?
- 有什麼解決方法可以避免OOM?
- Oom 是否可以try catch?為什麼?
- 記憶體洩漏是什麼?
- 什麼情況導致記憶體洩漏?
- 如何防止執行緒的記憶體洩漏?
- 記憶體洩露的解決方法
- 記憶體洩漏和記憶體溢位區別?
- 如何對Android 應用進行效能分析以及最佳化?
- 怎麼去除無用程式碼?
- 效能最佳化如何分析systrace?
- 用IDE如何分析記憶體洩漏?
- Java多執行緒引發的效能問題,怎麼解決?
- 啟動頁白屏及黑屏解決?
- 啟動太慢怎麼解決?
- 怎麼保證應用啟動不卡頓?
- App啟動崩潰異常捕捉
- 自定義View注意事項
- 現在下載速度很慢,試從網路協議的角度分析原因,並最佳化(提示:網路的5層都可以涉及)。
- Https請求慢的解決辦法(提示:DNS,攜帶資料,直接訪問IP)
- 如何保持應用的穩定性
- RecyclerView和ListView的效能對比
- ListView的最佳化
- RecycleView最佳化
- View渲染
- Bitmap如何處理大圖,如一張30M的大圖,如何預防OOM
- java中的四種引用的區別以及使用場景
- 強引用置為null,會不會被回收?
9.JNI
- 請介紹一下NDK
- 什麼是NDK庫?
- 如何在JNI中註冊native函式,有幾種註冊方式?
- Java如何呼叫c、c++語言?
- JNI如何呼叫java層程式碼?
- 你用JNI來實現過什麼功能嗎?怎麼實現的?
10.程式間通訊(簡稱:IPC)
- 程式間通訊的方式?
- Binder機制的作用和原理
- 簡述IPC?
- 什麼是AIDL?
- AIDL解決了什麼問題?
- AIDL如何使用?
- Android程式分類?
- 程式和 Application 的生命週期?
- 程式排程
- 談談對程式共享和執行緒安全的認識
11.WebView
- 描述一下Webview的作用
- WebView的核心是什麼
- 描述一下WebView與js的互動方式
- 描述一下WebView的快取機制
- 關於WebView的最佳化你知道哪些
- 有沒有用過第三方WebView元件?講一講優勢
12.程式保活
- 做過程式保活嗎?
- 5.0下和5.0上的保活方式瞭解嗎?
- 描述一下程式回收的過程
- 如何降低程式的oom_adj
其他
- Handler機制和底層實現
- Handler、Thread和HandlerThread的差別
- handler發訊息給子執行緒,looper怎麼啟動?
- 關於Handler,在任何地方new Handler 都是什麼執行緒下?
- ThreadLocal原理,實現及如何保證Local屬性?
- 請解釋下在單執行緒模型中Message、Handler、Message Queue、Looper之間的關係
- AsyncTask機制
- AsyncTask原理及不足
- 如何取消AsyncTask?
- 為什麼不能在子執行緒更新UI?
- LruCache預設記憶體快取大小
- ContentProvider的許可權管理(解答:讀寫分離,許可權控制-精確到表級,URL控制)
- 如何透過廣播攔截和abort一條簡訊?
- 廣播是否可以請求網路?
- 廣播引起anr的時間限制是多少?
- 描述一下Activity棧
- Android執行緒有沒有上限?
- 執行緒池有沒有上限?
- ListView重用的是什麼?
- Android為什麼引入Parcelable?
- 有沒有嘗試簡化Parcelable的使用?
- 混合開發有了解嗎?
- 知道哪些混合開發的方式?說出它們的優缺點和各自使用場景?(解答:比如:RN,weex,H5,小程式,WPA等)
- 螢幕適配的處理技巧都有哪些?
- 伺服器只提供資料接收介面,在多執行緒或多程式條件下,如何保證資料的有序到達?
- 動態佈局的理解
- 畫出 Android 的大體架構圖
- Recycleview和ListView的區別
- ListView圖片載入錯亂的原理和解決方案
- 動態許可權適配 方案,許可權組的概念
- Android系統為什麼會設計ContentProvider?
- 下拉狀態列是不是影響activity的生命週期
- Bitmap 使用時候注意什麼?
- Bitmap的recycler()
- Android中開啟攝像頭的主要步驟
- ViewPager使用細節,如何設定成每次只初始化當前的
- 點選事件被攔截,但是想傳到下面的View,如何操作?
- 描述一下微信主頁面的實現方式
- invalidate和postInvalidate的區別及使用
- Activity-Window-View三者的差別
- 談談對Volley的理解
- ActivityThread,AMS,WMS的工作原理
- LaunchMode應用場景
- SpareArray原理
- 請介紹下ContentProvider 是如何實現資料共享的?
- IntentService原理及作用是什麼?
- ApplicationContext和ActivityContext的區別
- 封裝View的時候怎麼知道view的大小
- AndroidManifest的作用與理解
結尾
去好公司面試,能答出來只是第一步,延伸問答、靈活運用才是面試官的目的,你越能答,他們越能問。我希望讀者們能知道深入瞭解的含義,這真的是一個過程。
自己的知識準備得怎麼樣,這直接決定了你能否順利透過一面和二面,所以在面試前來一個知識梳理,看需不需要提升自己的知識儲備是很有必要的。
關於 知識梳理,這裡再分享一下我面試這段時間的複習路線:(以下體系的複習資料是我從各路大佬收集整理好的)
知識梳理完之後,就需要進行查漏補缺,所以針對這些知識點,我手頭上也準備了不少的電子書和筆記,這些筆記將各個知識點進行了完美的總結:
《379頁Android開發面試寶典》
歷時半年,我們整理了這份市面上最全面的安卓面試題解析大全
包含了騰訊、百度、小米、阿里、樂視、美團、58、360、新浪、搜狐等一線網際網路公司面試被問到的題目。熟悉本文中列出的知識點會大大增加透過前兩輪技術面試的機率。
如何使用它?
1.可以透過目錄索引直接翻看需要的知識點,查漏補缺。
2.五角星數表示面試問到的頻率,代表重要推薦指數
《507頁Android開發相關原始碼解析》
只要是程式設計師,不管是Java還是Android,如果不去閱讀原始碼,只看API文件,那就只是停留於皮毛,這對我們知識體系的建立和完備以及實戰技術的提升都是不利的。
真正最能鍛鍊能力的便是直接去閱讀原始碼,不僅限於閱讀各大系統原始碼,還包括各種優秀的開源庫。
資料太多,全部展示會影響篇幅,暫時就先列舉這些部分截圖,以上資源均免費分享,以上內容均放在了開源專案: 【 github 】 中已收錄,大家可以自行獲取(或者 關注主頁掃描加微信獲取)。
最後複習的差不多的同學,請花一兩個小時認真準備這些東西:
1.你工作中最牛逼or最成功or最有貢獻的一件事是什麼?
2.專案中的亮點是哪些?怎麼實現的?(實在沒有的自己去找,只能用別人的案例了)
3.做專案的過程中有沒有遇到過困難?怎麼克服的?
Last Thing:
面試不過不要灰心,life always sucks,一切會好起來的!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69983917/viewspace-2731004/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 征服面試官:OkHttp 原理篇 掌握這篇面試題彙總,吊打面試官!HTTP面試題
- 2017下半年,一二線網際網路公司Android面試題彙總Android面試題
- 各大網際網路公司面試流程及面試題彙總面試題
- [面試專題]一線網際網路大廠面試總結面試
- 技術乾貨:Kotlin面試題彙總及答案Kotlin面試題
- 技術乾貨:Tomcat面試題彙總及答案Tomcat面試題
- 技術乾貨:Kubernetes面試題彙總及答案面試題
- Java 200+ 面試題補充② Netty 模組Java面試題Netty
- Java 200+ 面試題補充 ThreadLocal 模組Java面試題thread
- Java 200+ 面試題補充③ Dubbo 模組Java面試題
- 技術乾貨:spring cloud面試題彙總及答案SpringCloud面試題
- 網際網路 Java 工程師面試題(Spring 面試題一)Java工程師面試題Spring
- 計算機網路面試問題總結計算機網路面試
- 2018年一線網際網路公司Java高階面試題總結Java面試題
- 一線網際網路大廠MySQL索引面試真題MySql索引面試
- 一線網際網路企業面試題總結(幫你成功拿到offer)面試題
- 【彙總】網路安全滲透測試常見面試題!面試題
- Paycom 面試題彙總面試題
- Spring面試題彙總Spring面試題
- mysql 面試題彙總MySql面試題
- iOS 面試題彙總iOS面試題
- LLM面試題彙總面試題
- 網際網路大廠內推+面試乾貨合集面試
- 新鮮出爐的一線網際網路公司Java高階面試題總結!Java面試題
- Spark 經典面試題彙總《一》Spark面試題
- 2018 - iOS 面試題彙總iOS面試題
- 乾貨 | BAT等一線大廠 Elasticsearch面試題解讀BATElasticsearch面試題
- 大型網際網路公司必考java面試題與面試技巧Java面試題
- 各大網際網路Java面試題彙總,最後我成功拿到百度的offerJava面試題
- Java開發基礎常見面試題及答案彙總(實用乾貨!)Java面試題
- 【乾貨集】超全的滲透測試面試題總結!面試題
- Android面試送分題:Android面試真題解析火爆全網,建議收藏Android面試
- 一文吃透Volatile,征服面試官面試
- iOS 基礎面試題彙總iOS面試題
- 關於React面試題彙總React面試題
- linux之我的網際網路面試經驗Linux面試
- 乾貨分享:18道Spring面試題Spring面試題
- 面試題總結-Android部分面試題Android