我的列出的一些目前常見的面試題,答案都是比較簡單的說了幾個關鍵字,具體的仍是本身針對每題去查,去了解,去求證。若是有問題,還請及時指出!html
LinearLayout,ReativeLayout,AbsoluteLayout, FrameLayout, TableLayoutjava
onCreate->onRestart->onStart->onResume->onPause->onStop->onDestoryandroid
onAttch->onCreate->onCreateView->onActivityCreate->onStart->onResume->onPause-onStop->onDestoryView->onDestory->onDetachweb
www.cnblogs.com/fajieyefu/p…
面試
dispatchTouchEvent, onIntecepterEvent, onTouchEventsql
Handler, Looper, MessageQueue, Message設計模式
aapt->aidl->javac->dx->apkBuilder->javaSigner->zipAlign安全
Activity, Service,BroadcastReceiver, ContentProvider性能優化
startService,BindService網絡
startService: onCreate->onStartCommand->onStop->onDestory
bindService: onCreate->onBind->onUnbind->onDestory
前臺進程,可見進程,服務進程,後臺進程,空進程
強引用,軟引用,弱引用,虛引用,空引用
新生期,老年期,永生期
standard,singleTop,singleTask,singleInstance
hashMap: 非線程安全,寫入快,容許key-value爲null
hashTable: 線程安全,寫入慢,不容許key-value爲null,
LinkedHashMap: 遍歷速度與數據有關和容量無關,hashMap遍歷與容量有關,輸出的順序和輸入的相同(隊列:先進後出),LRUcache內部實現原理。
treeMap: 按天然順序或自定義順序遍歷鍵優先使用
LinkedHashMap
zygote->Launcher->ActivityManagerService->Application->mainActivity(Activity建立)->onCreate->onStart->onResume->(view繪製)onMeassure->onLayout->onDraw
Activity,Service, BroadCastReceiver, ContentProvider, Binder
AnsyTask , Handler
幀動畫,補間動畫,屬性動畫
6.0:運行時權限
7.0:fileProvider文件讀取
8.0:多渠道notification通知
9.0:安裝外部來源應用受權
onMeassure->onLayout->onDraw
單一職責:幹一件事
開放關閉:對擴展開放,對修改關閉
里氏替換:父類調用,一樣適用於子類
依賴倒置:實現依賴抽象,不要抽象依賴實現具體。
接口隔離:使用多個接口,不要一個接口乾全部事
px=dp*(dpi/160)=dp*density
尺寸(size)限定符 --缺點不少,不建議使用
最小寬度(Smallest-width)限定符
今日頭條適配方案,setCustomDensity.非浸入。
佈局減小嵌套
代碼優化,防止內存泄漏
耗電量方面
apk包瘦身
serializable: java,大量產生臨時變量,內存使用較大,頻繁gc
parcelable: android ,內存較小
Context : Activity->Application
Handler: static
webView
imageView
未及時關閉資源對象
jvm:java虛擬機
dvm: Android虛擬機
ART: Android運行時
JIT:及時編譯
AOT:預編譯
sleep: 持有鎖,Thread子類
wait:釋放鎖,Object子類
應用層(http/https)
傳輸層 (TCP/UDP)
網絡層(IP)
數據鏈路層
物理層
黑色保活:app,sdk相互喚起
白色保活:啓動前臺service
灰色保活:啓動兩個相同id的Service,將後啓動的Service,Stop掉
WebViewClient:幫助WebView處理各類通知、請求事件。
WebChromeClient:輔助WebView處理Javascript的對話框、網站圖標、網站title、加載進度等
/data/app ->androidManifest->dex->DVM cache->PackageManageService->BroadcastReceiver
so庫,混淆,加固,shrinkResource,減小枚舉,圖片(webp,.9)
靜態方法區,棧,堆
IntentService是一個基於Service的一個類,用來處理異步的請求,內部是經過HandlerThread實現。
sharePrefences, sqlLite, contentProvider, 文件,網絡
implements Runnable
extends Thread
速度:StringBuilder->StringBuffer->String(不可變)
StringBuilder 非線程安全
sychronize : 加鎖
volatile: 可變,每次實時讀取。
arrayList:讀取快
linkedList:插入快