Android面試題

        我的列出的一些目前常見的面試題,答案都是比較簡單的說了幾個關鍵字,具體的仍是本身針對每題去查,去了解,去求證。若是有問題,還請及時指出!html


1.五大布局

LinearLayout,ReativeLayout,AbsoluteLayout, FrameLayout, TableLayoutjava

2.Activity生命週期

onCreate->onRestart->onStart->onResume->onPause->onStop->onDestoryandroid

3.Fragment生命週期

onAttch->onCreate->onCreateView->onActivityCreate->onStart->onResume->onPause-onStop->onDestoryView->onDestory->onDetachweb

www.cnblogs.com/fajieyefu/p…
面試

4.view事件傳遞

dispatchTouchEvent, onIntecepterEvent, onTouchEventsql

5.Handler通訊原理

Handler, Looper, MessageQueue, Message設計模式

6.APK打包流程

aapt->aidl->javac->dx->apkBuilder->javaSigner->zipAlign安全

7.四大組件

Activity, Service,BroadcastReceiver, ContentProvider性能優化

8.Service啓動方式及生命週期

startService,BindService網絡

startService: onCreate->onStartCommand->onStop->onDestory

bindService: onCreate->onBind->onUnbind->onDestory

9.進程的優先級

前臺進程,可見進程,服務進程,後臺進程,空進程

10.GC回收對象的優先級

強引用,軟引用,弱引用,虛引用,空引用

11.GC回收對象的生命週期

新生期,老年期,永生期

12.Activity四種LuncherMode

standard,singleTop,singleTask,singleInstance

13.hashMap,hashTable,LinkedHashMap,treeMap區別

hashMap: 非線程安全,寫入快,容許key-value爲null

hashTable: 線程安全,寫入慢,不容許key-value爲null,

LinkedHashMap: 遍歷速度與數據有關和容量無關,hashMap遍歷與容量有關,輸出的順序和輸入的相同(隊列:先進後出),LRUcache內部實現原理。

treeMap: 按天然順序或自定義順序遍歷鍵優先使用

14.LRUcache

LinkedHashMap

15.APP冷啓動過程

zygote->Launcher->ActivityManagerService->Application->mainActivity(Activity建立)->onCreate->onStart->onResume->(view繪製)onMeassure->onLayout->onDraw

16.進程間通訊

Activity,Service, BroadCastReceiver, ContentProvider, Binder

17.線程間通訊

AnsyTask , Handler

18.三種動畫

幀動畫,補間動畫,屬性動畫

19.Android6.0到9.0版本最大的新特性

6.0:運行時權限

7.0:fileProvider文件讀取

8.0:多渠道notification通知

9.0:安裝外部來源應用受權

20View繪製過程

onMeassure->onLayout->onDraw

21.設計模式五大原則

單一職責:幹一件事

開放關閉:對擴展開放,對修改關閉

里氏替換:父類調用,一樣適用於子類

依賴倒置:實現依賴抽象,不要抽象依賴實現具體。

接口隔離:使用多個接口,不要一個接口乾全部事

22.屏幕適配方案

px=dp*(dpi/160)=dp*density

尺寸(size)限定符 --缺點不少,不建議使用

最小寬度(Smallest-width)限定符

今日頭條適配方案,setCustomDensity.非浸入。

www.cnblogs.com/onelikeone/…

23.性能優化的幾個方面

佈局減小嵌套

代碼優化,防止內存泄漏

耗電量方面

apk包瘦身

24.序列化Serializable,Parcelable區別

serializable: java,大量產生臨時變量,內存使用較大,頻繁gc

parcelable: android ,內存較小

25.列舉幾點內存泄漏案例案例以及解決辦法

緣由:長生命週期對象持有短生命週期的引用

Context : Activity->Application

Handler: static

webView

imageView

未及時關閉資源對象

blog.csdn.net/unicorn97/a…

26.JVM,DVM,ART,JIT,AOT介紹

jvm:java虛擬機

dvm:  Android虛擬機

ART: Android運行時

JIT:及時編譯

AOT:預編譯

blog.csdn.net/feather_wch…

27.sleep,wait區別

sleep: 持有鎖,Thread子類

wait:釋放鎖,Object子類

28.五層網絡協議

應用層(http/https)

傳輸層 (TCP/UDP)

網絡層(IP)

數據鏈路層

物理層

29.保活的方式

黑色保活:app,sdk相互喚起

白色保活:啓動前臺service

灰色保活:啓動兩個相同id的Service,將後啓動的Service,Stop掉

www.jianshu.com/p/63aafe3c1…

30.webView的webViewClient和WebChromeClient區別

WebViewClient:幫助WebView處理各類通知、請求事件。

WebChromeClient:輔助WebView處理Javascript的對話框、網站圖標、網站title、加載進度等

blog.csdn.net/u012810020/…

31.APK安裝過程

/data/app ->androidManifest->dex->DVM cache->PackageManageService->BroadcastReceiver

32.APK包瘦身

so庫,混淆,加固,shrinkResource,減小枚舉,圖片(webp,.9)

33.JVM內部結構

靜態方法區,棧,堆

34.IntentService,HandlerThread介紹

IntentService是一個基於Service的一個類,用來處理異步的請求,內部是經過HandlerThread實現。

www.cnblogs.com/chenxibobo/…

35.Android五種存儲方式

sharePrefences,  sqlLite, contentProvider, 文件,網絡

36.實現線程的兩種方式

implements Runnable

extends Thread

37.String,StringBuffer,StringBuilder區別

速度:StringBuilder->StringBuffer->String(不可變)

StringBuilder 非線程安全

38.Synchronize,Volatile區別

sychronize : 加鎖

volatile: 可變,每次實時讀取。

39.ArrayList,LinkedList區別

arrayList:讀取快

linkedList:插入快

相關文章
相關標籤/搜索