android高質(zhì)量面試題高質(zhì)量android面試題_第1頁
android高質(zhì)量面試題高質(zhì)量android面試題_第2頁
android高質(zhì)量面試題高質(zhì)量android面試題_第3頁
android高質(zhì)量面試題高質(zhì)量android面試題_第4頁
android高質(zhì)量面試題高質(zhì)量android面試題_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、今天總結一波高質(zhì)量的面試題,面試題持續(xù)更新,也希望大家多多支持!我的微信公眾號是【秦子帥】,我的微信是: lengquele5311 ,歡迎大家關注我的公眾號并添加我的個人微信!公司一說下你所知道的設計模式與使用場景java語言的特點與是OOP思想說下java中的線程創(chuàng)建方式,線程池的工作原理。說下handle原理,為什么會出現(xiàn)內(nèi)存泄漏,為什么繼承Handle就不會出現(xiàn)能存泄漏說下Activity的啟動方式,生命周期,兩個Activity跳轉(zhuǎn)的生命周期,如果一個Activity跳轉(zhuǎn)另一個Activity再按下Home鍵在回到Activity的生命周期是什么樣的說下Activity的橫豎屏的切換

2、的生命周期,用那個方法來保存數(shù)據(jù),兩者的區(qū)別。觸發(fā)在什么時候在那個方法里可以獲取數(shù)據(jù)等。是否了SurfaceView,它是什么?他的繼承方式是什么?他與View的區(qū)別(從源碼角度,如加載,繪制等)。如何實現(xiàn)進程保活說下冷啟動與熱啟動是什么,區(qū)別,如何優(yōu)化,使用場景等。Android中的線程有那些(我提到HandlerThread,AsyncTask又問了他們的原理與各自特點)給定命題,一串字符串中有通配符與占位符,如何化簡優(yōu)化(方法忘記可以簡寫) 說下產(chǎn)生OOM,ANR的原因,三級緩存原理,如何優(yōu)化ListView。說下你對Collection這個類的理解。說下AIDL的使用與原理說下你對廣播

3、的理解說下你對服務的理解,如何殺死一個服務。服務的生命周期(start與bind)。是否接觸過藍牙等開發(fā)設計一個ListView左右分頁排版的功能自定義View,說出主要的方法。說下binder序列化與反序列化的過程,與使用過程是否接觸過JNI/NDK,java如何調(diào)用C語言的方法如何查看模擬器中的SP與SQList文件。如何可視化查看布局嵌套層數(shù)與加載時間。你說用的代碼管理工具什么,為什么會產(chǎn)生代碼沖突,該如何解決說下你對的編程有那些認識,聊些前端那些方面的知識。說下你對線程池的理解,如何創(chuàng)建一個線程池與使用。說下你用過那些注解框架,他們的原理是什么。自己實現(xiàn)過,或是理解他的工作過程嗎? 說

4、下java虛擬機的理解,回收機制,JVM是如何回收對象的,有哪些方法等一些java與Android源碼相關知識等大學成績大學那些專業(yè),你哪方面學得好單片機,嵌入式,電子線路。畢業(yè)設計什么,幾個人實現(xiàn)的,主要功能是什么還有些其他硬件相關知識自己的職業(yè)規(guī)劃與發(fā)展方向公司二數(shù)據(jù)結構與算法相關實際開發(fā)中的內(nèi)存優(yōu)化,APK體積優(yōu)化,代碼優(yōu)化,資源優(yōu)化,緩存,數(shù)據(jù)庫等各大平臺打包上線的流程與審核時間,常見問題(主流的應用市場說出34)支付寶與微信的支付功能接入,常見問題如何和交互,post請求的數(shù)據(jù)格式定義在那里定義,手寫出來。http與https的理解與4層都是哪4層,在一個請求過程中都是什么時候走這些

5、流程與各自的作用http的結構有那些(請求頭,請求行之類的)session與cookie的區(qū)別如何在沒有給接口的情況下如何開發(fā)應用你是如何封裝網(wǎng)絡請求,數(shù)據(jù)緩存,優(yōu)化,文件下載,線程池,OKHttp3源碼的理解,如何提交post請求,如何處理返回數(shù)據(jù),異常處理,實體定義等實際開發(fā)中與協(xié)作相關知識。說下Android中特有的數(shù)據(jù)結構與常見的java數(shù)據(jù)結構(熟悉那個說那個),存儲過程,源碼與底層實現(xiàn)。公司三dp是什么,sp呢,有什么區(qū)別自定義View,ViewGroup注意那些回調(diào)? 界面卡頓的原因以及解決方法android中的存儲類型service用過么,基本調(diào)用方法Handler機制Line

6、arLayout、FrameLayout、RelativeLayout性能對比,為什么Activity的生命周期,finish調(diào)用后其他生命周期還會走么?FW層熟悉么,源碼看過么GC回收機制熟悉么,分代算法知道么Java的類類加載原理內(nèi)存泄漏如何排查,MAT分析方法以及原理,各種泄漏的原因是什么比如Handler為什么會泄漏gradle熟悉么,自動打包知道么介紹下先的app架構和通信自己負責過哪些模塊,跟同事相比自己的優(yōu)勢是什么遇到過什么印象深刻的問題,怎么解決的公司四最近都做了哪些工作?遇到了什么印象深刻的問題。A:會順著你介紹的項目問下具體實現(xiàn)。推送消息有富文本么?熱修復了解么,用的什么?

7、apk包大小有限制么?怎么減少包大???工作中有沒有用過或者寫過什么工具?腳本,插件等等比如:多人協(xié)同開發(fā)可能對一些相同資源都各自放了一份,有沒有方法自動檢測這種重復之類的寫過native的底層代碼么view的繪制熟悉么,介紹下gc相關的算法anr是因為什么產(chǎn)生的,怎么排查界面上的話,有什么優(yōu)化措施么?比如列表展示之類的,平時遇到過內(nèi)存問題嗎,怎么優(yōu)化的? 平時用過哪些設計模式?介紹下最近一年主要做了什么工作會對簡歷上突出的技能進行詳情的詢問:比如:音頻合成的具體步驟,以及遇到的一些問題和細節(jié)處理。會根據(jù)面試發(fā)散一些問題,問到,seek方法播放到末尾后重新播放會有一些卡頓的不流暢問題,怎么避免,

8、從交互設計或者技術角度。(個人表示沒怎么關注這種)。項目團隊多少人,怎么分配工作線程之間怎么通信的?app的架構是怎么樣的,并且為什么這樣,有什么優(yōu)缺點?算法熟悉么?給了一個二叉排序樹,出了一個給定節(jié)點找到它的下一個元素(指的是大小順序的下一個)的算法題。為什么找工作,自己的優(yōu)勢是什么介紹下自己主要負責的工作Activity的生命周期有哪些,知道onRestart么,介紹下savedInstanceState知道么,干什么用的,什么時候有值,什么時候為空,平時是怎么用的View繪制熟悉么,介紹下,能說下是實現(xiàn)原理么?平時用過什么開發(fā)工具,分析工具?ANR是怎么回事?怎么查?Service會引起

9、ANR么?Activity的啟動模式有哪些?棧里是ABC,先想直接到A,BC都清理掉,有幾種方法可以做到?這幾種方法產(chǎn)生的結果是有幾個A的實例?有什么工具可以看到Activity棧信息么?多個棧話,有方法分別得到各個棧的Activity列表么都熟悉哪些命令?知道怎么用命令啟動一個Activity么?SharedPrefrences的apply和commit有什么區(qū)別java里帶$的函數(shù)見過么,是什么意思MD5是加密方法么,Base64呢有博客和github,主要是寫的什么?有哪些關注android 8.0 有哪些新特性公司五glide緩存策略?同一個圖片跟size有關么android中的動畫有

10、哪些View傳遞機制界面卡頓怎么排查和優(yōu)化?Fragment的replace和end?的區(qū)別? MVP,MVVM,MVC解釋和實踐項目之外的,對技術的見解,拓展知識微信跳一跳怎么實現(xiàn),檢測怎么做的?一張純色背景下怎么有效檢測各個矩形?對接的so算法了解么,有接觸過相關的庫么?三個算法題選一個并寫出測試用例:打印nm之間所有的素數(shù);計算nm之間1出現(xiàn)的次數(shù);指定數(shù)字序列的排序;android api層的源碼熟悉哪些?解釋一下ACTION_CANCEL什么時候觸發(fā),觸摸button然后滑動到外部抬起會觸發(fā)點擊回去抬起會么怎么處理嵌套View的滑動沖突問題熱修復相關的原理,框架熟悉么gradle打包

11、流程熟悉么嗎,在+ + 滑動任意提問環(huán)節(jié):其實可以問之前面試中遇到的問題:比如,多模塊開發(fā)的時候不同的負責人可能會引入重復資源,相同的字符串,相同的icon等但是文件名并不一樣,怎樣去重?Canvas的底層機制,繪制框架,硬件加速是什么原理,canvas lock的緩沖區(qū)是怎么回事surfaceview, suface,surfacetexure等相關的,以及底層原理android文件存儲,各版本存儲位置的權限控制的演進,外部存儲,內(nèi)部存儲上層業(yè)務activity和fragment的遇到什么坑?頁面展示上的一些坑和優(yōu)化經(jīng)驗網(wǎng)絡請求的開源框架:OKHttp介紹,寫過么公司六數(shù)據(jù)層有統(tǒng)一的管理么,

12、數(shù)據(jù)緩存是怎么做的,http請求等有提供統(tǒng)一管理么? 有用什么模式么,邏輯什么的都在Activity層?怎么分離的如果用了一些解耦的策略,怎么管理生命周期的? 有什么提高編譯速度的方法?對應用里的線程有做統(tǒng)一管理么?jni的算法提供都是主線程的?是不是想問服務類的啊邊沿檢測用的啥?深度學習相關的有了解么?上線后的app性能分析檢測有做么進程間通信方式?Binder的構成有幾部分?HttpClient和HttpConnection的區(qū)別View的傳遞機制MVC,MVP,MVVM分別是什么?Android中常用的設計模式,說三個比較高級的? 內(nèi)存優(yōu)化,OOM的原因和排查方法想改變listview的

13、高度,怎么做Https是怎么回事?除了日常開發(fā),其他有做過什么工作?比如持續(xù)化集成,自動化測試等等公司七:ActivityA跳轉(zhuǎn)ActivityB然后B按back返回A,各自的生命周期順序,A與B均不透明。Synchronize關鍵字后面跟類或者對象有什么不同。單例的DCL方式下,那個單例的私有變量要不要加volatile關鍵字,這個關鍵字有什么用JVM的引用樹,什么變量能作為GCRoot?GC垃圾回收的幾種方法ThreadLocal是什么?Looper中的消息死循環(huán)為什么沒有ANR? Android中main方法入口在哪里jdk1.5?SparseArray和ArrayMap各自的數(shù)據(jù)結構,

14、前者的查找是怎么實現(xiàn)的,與HashMap的區(qū)別Runnable與Callable、Future、FutureTask的區(qū)別,AsyncTask用到哪個?AsyncTask是順序執(zhí)行么,for循環(huán)中執(zhí)行200次new AsyncTask并execute,會有異常嗎IntentService生命周期是怎樣的,使用場合等RecyclerView和ListView有什么區(qū)別?局部刷新?前者使用時多重type場景下怎么避免滑動卡頓。懶加載怎么實現(xiàn),怎么優(yōu)化滑動體驗。SQLite的數(shù)據(jù)庫升級用過么開放問題:如果提高啟動速度,設計一個延遲加載框架或者sdk的方法和注意的問題。Scroller有什么方法,怎么

15、使用的。分享下項目中遇到的問題webwiew了解?怎么實現(xiàn)和javascript的通信?相互雙方的通信。JavascriptInterface在?版本有bug,除了這個還有其他調(diào)用android方法的方案嗎?ReactiveNative了解多少JNI和NDK熟悉么?Java和C方法之前的相互調(diào)用怎么做?公司八:fragment的生命周期分發(fā)機制,以及涉及到的設計模式onMeasure的測量模式與特點線程間通信和進程間通信ArrayList刪除元素寫出你認為最優(yōu)的懶漢式單例模式activity意外退出時信息的儲存與恢復,onCreate正常進入時的判斷。談談性能優(yōu)化JS的交互理解嗎?平時工作用的

16、多嗎,項目中是怎么與Web交互的?MVC MVP MVVM 這樣變化的原因,MVP的不足,MVVM為什么代替了MVP MVC的情況下怎么把Activity的C和V各個網(wǎng)絡框架之間的差異和優(yōu)缺點,網(wǎng)絡框架代替進化的原因圖片緩存框架的差異和優(yōu)缺點,有沒有比Glide更好的圖片加載框架?項目框架里有沒有Base類,BaseActivity和BaseFragment這種封裝導致的問題,以及解決方法框架里是怎樣實現(xiàn)MVC的Reftofit用過沒有,注解實現(xiàn)的好處?項目中的的界面既然是基于View的,有沒有動畫的處理?為什么不推薦軟引用,軟引用在dvm上的垃圾回收機制和jvm上一樣嗎?LRUCache的刪

17、除條件,LRU是什么意思啟動頁緩存設計 白屏問題網(wǎng)絡圖片怎么加載?Glide如何確定圖片加載完畢項目框架中對多View的支持?Http的request和response的協(xié)議組成RecyclerView和ListView相比有哪些好處,為什么ListView被RecyclerView代替?公司八Java多線程并發(fā)sleep 和 wait 區(qū)別join 的用法線程同步:synchronized 關鍵字等線程通信線 程 池手寫死鎖Java 中的引用方式,及各自的使用場景HashMap 的源碼GC(垃圾回收)是什么?如何工作的?回收算法有哪些Error 和 Exception 區(qū)別?反射和注解了解嗎

18、?項目中有使用過嗎? 網(wǎng)絡相關:http 狀態(tài)碼http 與 https 的區(qū)別?https 是如何工作的?Java 中 LRUCache 是如何實現(xiàn)的(源碼角度)?為什么要用 LinkedHashmap? 設計模式:手寫單例,volitate 關鍵字的原理手寫生產(chǎn)者消費者模式項目中都使用過哪些設計模式?編碼常遵循的設計原則:單一職責、開閉原則、里氏替換等ArrayList 和 LinkedList 區(qū)別?..9.10.Android1. 源碼相關:Activity 啟動過程分發(fā)源碼,以及由此衍生的攔截如何實現(xiàn)消息機制:Handler 源碼(結合Looper、Mes

19、sageQueue),以及取不到消息時會怎樣?View.post 為什么可以拿到寬高?2. 自定義 View流 程 :onMeasure, onLayout, onDraw onMeasure 中的 MeasureSpec 是如何計算的?3. 優(yōu)化:內(nèi)存泄漏,以及 LeakCanary 源碼內(nèi)存優(yōu)化:大對象占用、內(nèi)存抖動布局優(yōu)化:層級、過度繪制等網(wǎng)絡優(yōu)化4. 如何捕獲應用全局異常?5. Service 是使用,bind 和 start 的區(qū)別?6. Android 中的 IPC 機制有哪些?(接著往下問)7. 屬性動畫源碼?8. 大圖加載。9. ANR 如何定位,如何分析?(trace 日志)

20、10. 項目中使用了哪些開源庫?挑一個說說源碼?11. MVC 和 MVP 區(qū)別?12. Activity:A 啟動 B,生命周期是怎么走的?(注意區(qū)分B是否是透明的) 啟動模式13. AsyncTask 原理?14. Android 新特性(考察對新技術、新方向的觀察)公司九Service的源碼Handler的實現(xiàn),Looper怎么終止。項目是MVC,那根據(jù)自己負責的項目講下Model、View、Controller層問了下晝夜模式、多語種、屏幕適配的問題,追問了下,如果要關閉晝夜模式功能怎么辦?很多類的話,一個個去關嗎?有沒有接觸過JNI和NDK?ListView的錯位問題原因以及如何處理

21、?如何設計一個抽獎系統(tǒng),比如滿200抽20,滿500抽50公司十Android:1.內(nèi)存泄漏的場景,Handler機制2.四大組件3.進程間通信4.自定義view 5.Binder的使用6.性能優(yōu)化Java:1. 接口和抽象類區(qū)別2. 繼承和重寫3. ArrayList和LinkedList區(qū)別4.死鎖產(chǎn)生條件和應用場景5.Java的修飾符的使用,static final修飾原理6.多線程空指針解決方法7.異常處理流程,何時必須要catch操作系統(tǒng)1. 進程和線程區(qū)別2. 多線程同步和異步問題3. 同步死鎖應用場景設計模式1. 模式2. 單例模式以及雙重鎖原理3. 觀察者模式應用場景數(shù)據(jù)結構和

22、算法1. 無序數(shù)組建立二叉搜索樹2. 前序和中序遍歷二叉樹(我寫了遞歸和非遞歸)1. 四大引用區(qū)別和引用場景2. 內(nèi)存泄漏的場景,Handler內(nèi)存泄漏的原因以及解決方法3. Handler機制,主線程如何向子線程發(fā)送消息,Handler能否多進程通信4.多線程并發(fā),sychronized,類鎖和對象鎖5. 線程安全類,StringBuffer和StringBuilder6. jvm工作內(nèi)存和主內(nèi)存,volatile原理,jvm的靜態(tài)塊,內(nèi)存屏障的實現(xiàn)原理7. 一個m*n的棋盤,一個蟲子從左上走到右下方,只能向右或者向下,有多少種走法,可以用組合數(shù)學的知識解答8. 靜態(tài)廣播和動態(tài)廣播區(qū)別,se

23、rvice啟動的兩種方式區(qū)別1. 將知道的操作系統(tǒng)說一遍,引入操作系統(tǒng)的最終目的(計算的功能),進線程區(qū)別,虛擬地址的原理和作用,指針是物理地址還是虛擬地址,指針的地址長度的影響因素,32位系統(tǒng)是4個字節(jié), 64位系統(tǒng)是8個字節(jié)。2. Java的三大特性,寫一個多態(tài)的例子,注意命名的規(guī)范3. 一個很大的數(shù)組,其中有一個數(shù)出現(xiàn)的次數(shù)是奇數(shù)次,其他都是偶數(shù)次。求這個數(shù)。除了異或?qū)懥硗庖环N方法1. Android的體系架構,深入到framework,native層2. 單例模式的幾種實現(xiàn)具體的區(qū)別,工廠模式的種類以及區(qū)別3. 對C語言的理解4. Android的觸摸分發(fā)流程5.Android第三方框

24、架的源碼實現(xiàn)原理公司十一1. 講一下項目,主要是深入框架的源碼2. Java忘記問啥了,Android問啟動模式的時候,對四種啟動模式的實際運用問得比較深,還有觸摸的細節(jié)問得深3. sp的commit和apply區(qū)別4. 左連接和右連接區(qū)別5. 算法:輸出二叉樹每層的最大值1. 集合類,線程安全如何實現(xiàn),寫一個算法ArrayList刪除所有值是50的。這里有坑:/lazy_p/article/details/7365324除了遍歷還有更優(yōu)的方法嗎?想不出來。換成LinkedList性能如何?2. 異常類的繼承結構,如何捕捉異常,如何全局捕捉異常并上報3.

25、數(shù)據(jù)的存儲方式與其的應用場景,ContentProvider的底層實現(xiàn),如何保證多進程讀寫安全4. 類加載,jvm內(nèi)存模型5. 自旋鎖6. Linux的fork7. 數(shù)據(jù)庫的ACID8. 手寫反轉(zhuǎn)鏈表1. intent是什么來的?為什么不是動作,用來干什么的?(什么向什么表現(xiàn)什么意圖)2. 為什么設置tcp三次握手,四次揮手3. hashmap的底層實現(xiàn)4. 場景題分析:手機掃網(wǎng)頁端的二維碼如何提起的登錄的過程,是如何實現(xiàn)的?公司十二一面(Android Leader)請舉出你認為你在工作中挑戰(zhàn)最大的事例;RecyclerView 一個適配器如何適配多種布局,不考慮根據(jù)不同 Type 設置不同

26、 ViewHolder; 用過數(shù)據(jù)庫么?如何防止數(shù)據(jù)庫讀寫死鎖?可以考慮采用 ContentProvider & 單例實現(xiàn)。CardView 真的好么?除了 CardView 還能用什么方式實現(xiàn)圓角等?假設我們有上千個 Shape 文件,如何維護?了解過 MVVM 么?它和 MVP 有什么差距?是否用過 DataBinding?ButterKnife 是怎么做到布局綁定的? 使用過什么圖片加載庫,Glide 的源碼設計哪里很微妙?知道 Linux 的線程間通信么? Android 為啥會采用 Binder?Binder 的機制又是怎樣的? 講講 AIDL。如何能保證隨時隨地都能拿到一個 Act

27、ivity 的當前生命周期? 會用 Kotlin 么?可見 Kotlin 自從成為了谷歌首推語言后,確實還挺重要的,必須學習一下了。Android 7.0 都適配了什么? 你還有什么想問我的?二面(移動端 Leader)講講 HTTPS 是怎么做加密的?講講非對稱加密算法。Android 8.0 都有些什么新特性? 畫中畫;自 適 應 icon WebView 增強;分類別,增加圓點,延后,增加背景,同樣增加歷史,超時自動清除;自動填充信息(類似瀏覽器的選擇保存的賬號執(zhí)行增加限制(主要是服務和廣播);藍牙提升。支持藍牙低功耗 5.0 標準;智能文本選擇與智能共享;WLAN 感知;取消屏幕縱橫比

28、限制; 多顯示器支持;可下載字體、XML 定義字體;自適應 TextView,統(tǒng)一布局邊框; 更豐富的色彩管理功能;可以聲明應用類別。使用過 Gradle 的哪些功能。功能)RecyclerView 滑動卡頓,請分析原因,并提供解決方案。TraceView 都能看到哪些成分? 操作系統(tǒng)里面的一個虛擬內(nèi)存是指的什么?虛擬內(nèi)存指的是一個對內(nèi)存和外存進行調(diào)度,只是從邏輯上擴充了內(nèi)存,但實際上不存在的內(nèi)存存儲器。原理是:基于局部性原理,在程序裝入的時候,可以將程序的一部分裝入內(nèi)存,而在其余部分留在外存,就可啟動程序執(zhí)行;在程序執(zhí)行時,當所訪問的信息不在內(nèi)存的時候,由操作系統(tǒng)所需要的部分調(diào)入內(nèi)存,然后繼續(xù)執(zhí)行程序;操作系統(tǒng)再將內(nèi)存中暫時不使用的內(nèi)容換出到外存上,從而騰出空間存放將要調(diào)入內(nèi)存的信息。Android 是如何做的性能調(diào)優(yōu)?講講適配器模式中適配器是干嘛的?在開發(fā)中都在哪里有用到? 都用過哪些開源庫?會用 KotLin 么?你還有什么想問我的?三面:技術總監(jiān)為什么

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論