原创 39.ANR專題

ANR Application Not Responding ANR類型 Service Timeout:比如前臺服務在20s內未執行完成,後臺服務Timeout時間是前臺服務的10倍,200s; BroadcastQueue Timeou

原创 51.LeakCanary分析-1.x-2.x

1.x版本 使用 debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3' releaseCompile 'com.squareup.leakcanary:leakcanar

原创 12.2019安卓事件傳遞機制探索

現在佈局中有這樣一層結構,當我觸摸屏幕的時候,我要看事件傳遞的順序,分別重寫了 Activity的dispatchTouchEvent方法,onTouchEvent方法; MyViewGroup的dispatchTouchEvent方法,o

原创 51.LeakCanary分析

使用 debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3' releaseCompile 'com.squareup.leakcanary:leakcanary-andr

原创 47. Navigation的使用和原理介紹

Google對Navigation的介紹 今天,我們宣佈推出Navigation組件,作爲構建您的應用內界面的框架,重點是讓單 Activity 應用成爲首選架構。利用Navigation組件對 Fragment 的原生支持,您可以獲得架構

原创 50. 安卓啓動優化

啓動優化包含app的啓動和單頁面的啓動,今天只說app的啓動,二者優化的邏輯是相同的。 app啓動的三種狀態 冷啓動 此時需要創建進程,表示應用的首次啓動 熱啓動 應用的所有 Activity 仍駐留在內存中,不必重複執行對象初始化、佈局加

原创 44. LifeCycle與LiveData

LifeCycle LifeCycle是Google提供的用於監控Activity和Fragment生命週期的一種解耦的實現方式 使用方法舉例 如下面的代碼,當Activity生命週期變化時,在MyLifeCycleListener中就可以

原创 49. WorkManager的使用和原理

簡介 WorkManger是Android Jetpack提供執行後臺任務管理的組件,它適用於需要保證 系統即使應用程序退出也會運行的任務,WorkManager API可以輕鬆指定可延遲的 異步任務以及何時運行它們,這些API允許您創建任

原创 48. Paging的使用

1.確保使用的RecyclerView是androidx.recyclerview.widget.RecyclerView 2.給RecyclerView設置的Adapter不再是RecyclerView.Adapter而是PagedLis

原创 46. Navigation的使用和原理介紹

Google對Navigation的介紹 今天,我們宣佈推出Navigation組件,作爲構建您的應用內界面的框架,重點是讓單 Activity 應用成爲首選架構。利用Navigation組件對 Fragment 的原生支持,您可以獲得架構

原创 trace.txt文件定位Anr問題

1.導出 adb pull data/anr/traces.txt 2.定位到指定行 Cmd line: xxx(xxx爲包名) 3.定位到 DALVIK THREADS (行數): 4.定位到 "main" xxxx(如 "main" p

原创 46. Room數據庫的使用

引用: implementation "androidx.room:room-runtime:2.0.0-beta01" annotationProcessor "androidx.room:room-compiler:2.0.0-beta

原创 45. Databinding原理

setContentView 在Activity中使用的時候,先綁定佈局文件,那麼這個操作都做了什麼?我們從源碼中找答案 ActivityMainBinding binding= DataBindingUtil.setContentView

原创 43. LifeCycle與LiveData

LifeCycle LifeCycle是Google提供的用於監控Activity和Fragment生命週期的一種解耦的實現方式 使用方法舉例 如下面的代碼,當Activity生命週期變化時,在MyLifeCycleListener中就可以

原创 43. Glide核心源碼解析

with-空白fragment Glide中with函數有很多的重載方法,可以傳入Context,Activity,FragmentActivity,v4.Fragment,android.app.Fragment,View等等,而這些參數