JavaShuo
欄目
標籤
Android博客大彙總
時間 2019-11-06
標籤
android
博客
彙總
欄目
Android
简体版
原文
原文鏈接
目錄介紹
01.基礎組件(9篇)
02.IPC機制(7篇)
03.View原理(9篇)
04.動畫機制(2篇)
05.Res資源(6篇)
06.消息機制(12篇)
07.多媒體(16篇)
08.View事件(9篇)
09.多線程(12篇)
10.Window(19篇)
11.WebView(4篇)
12.網絡相關(7篇)
13.註解(14篇)
14.音視頻(13篇)
15.優化相關(19篇)
16.流行框架(23篇)
17.數據處理
18.framwork
19.複雜控件(12篇)
20.Bug管理
21.經典總結(16篇)
23.架構技術(13篇)
24.kotlin(29篇)
25.RecyclerView(31篇)
26.組件化(7篇)
27.路由框架(7篇)
好消息
博客筆記大彙總【16年3月到至今】,包括Java基礎及深刻知識點,Android技術博客,Python學習筆記等等,還包括平時開發中遇到的bug彙總,固然也在工做之餘收集了大量的面試題,長期更新維護而且修正,持續完善……開源的文件是markdown格式的!同時也開源了生活博客,從12年起,積累共計N篇[近100萬字,陸續搬到網上],轉載請註明出處,謝謝!
連接地址:
github.com/yangchong21…
若是以爲好,能夠star一下,謝謝!固然也歡迎提出建議,萬事起於忽微,量變引發質變!
01.基礎組件
02.Activity基礎介紹
Activity生命週期,特殊狀況下生命週期,Activity的啓動模式,特殊狀況棧交互,Activity的Flags
03.Activity啓動流程
Launcher啓動開啓Activity,ActivityManagerService詳談,執行棧頂Activity的onPause方法,啓動Activity所屬的應用進程,執行啓動Acitivity重點邏輯
04.Activity佈局建立
handleLaunchActivity,performLaunchActivity,activity.attach,Activity的onCreate方法,setContentView源碼分析
05.Activity佈局繪製
Activity佈局加載簡介,handleResumeActivity,WindowManager做用,performTraversals()方法,Activity佈局繪製總結
06.Activity探坑分析
Activity異常生命週期,後臺Activity被系統回收,如何判斷activity優先級,App切換到後臺分析,Activity傳遞參數數據,Activity任務戰Task
07.BroadCastReceiver1
什麼是廣播Broadcast,廣播Broadcast做用,廣播Broadcast分類,動態註冊BroadCast,發送本地廣播
08.BroadCastReceiver2
監聽網絡狀態變化,監聽電量變化,應用安裝更新卸載監聽
09.BroadCastReceiver3
廣播實現原理,抽象方法onReceive(),廣播的類型,內存泄漏分析
12.Fragment基礎
Fragment生命週期,Fragment靜態和動態使用方式,Fragment回退棧,Fragment與Activity通訊,Fragment旋轉場景,FragmentAdapter選擇
13.Fragment進階
什麼是內存重啓,onHiddenChanged回調時機,Fragment與Activity之間傳值,Fragment與Fragment之間傳值,爲什麼不構造傳值,FragmentManager棧視圖,Fragment之懶加載使用,思考Fragment可否不依賴Activity
14.Fragment填坑
getActivity()空指針,Fragment發生重疊,Fragment高耦合性,處理返回鍵邏輯
16.Fragment源碼
Fragment管理流程源碼分析,Fragment生命週期是怎麼來的,Fragment回退棧是如何實現的
32.Android混淆
什麼是混淆,proguard-rules.pro文件
36.CompileSdkVersion和MinSdkVersion
CompileSdkVersion的做用,MinSdkVersion的做用,TargetSdkVersion的做用
40.Log深刻解析
關於Log源碼介紹
02.IPC機制
01.IPC通訊方式介紹
使用Intent,使用文件共享,使用Messenger,使用AIDL,使用ContentProvider,使用Socket
02.IPC之線程進程
Android中如何控件進程,進程的重要性,Android中線程,工做線程
05.IPC之序列化
什麼是IPC,開啓多進程,多進程影響,Serializable,Parcelable
06.IPC之Messager
Messenger基本概述,服務端,客戶端,雙向通訊
11.Aidl基礎介紹
什麼是AIDL,AIDL做用,AIDL支持數據類型,服務端和客戶端,注意問題
12.Aidl通訊案例
aidl通訊業務需求,操做步驟僞代碼,案例測試調試,可能出現的問題,aidl不要作耗時操做
03.View原理
01.View繪製流程
View繪製的流程框架,View中重要方法,自定義View優化策略
04.View之onMeasure深刻介紹
Measure流程分析,MeasureSpec的肯定,View的測量流程
05.View之onLayout深刻分析
Layout流程,View的佈局流程
06.View之onDraw深刻介紹
onDraw源碼分析,onDraw案例之繪製圓環 ,onDraw案例之繪製圓形ImageView 等等
07.View之Canvas,Paint,Matrix,RectF等介紹
Paint畫筆介紹,圖形繪製,文本繪製;Canvas畫布介紹,設置屬性,畫圖【重點】;Matrix變換矩陣介紹 ,RectF介紹 ,關於使用到這幾個屬性的自定義View案例
08.View之invalidate,requestLayout,postInvalidate
requestLayout、invalidate與postInvalidate做用與區別?
10.獲取View寬高
爲什麼直接獲取寬高爲0?onWindowFocusChanged獲取寬高,view.post(runnable)獲取寬高,ViewTreeObserver獲取寬高,手動測量控件寬高,這幾種方式的區別介紹分析。
12.自定義View控件
自定義控件步驟,建立View ,測量View(Measure) ,繪製View(Draw),與用戶進行交互,優化自定義View
13.自定義ViewGroup
自定義ViewGroup步驟,建立ViewGroup,測量View(Measure),佈局View(Layout),繪製View(Draw),事件分發處理,與用戶進行交互,自定義控件優化
04.動畫機制
01.動畫機制總結
Android動畫類型分類,實現方式,ValueAnimator與ObjectAnimator區別,以及補間動畫原理,部分源碼分析
02.動畫源碼解析
Animation和Animator區別,Animation運行原理和源碼分析,如何計算動畫數據,動畫數據如何存儲,Animation的調用;Animator運行原理和源碼分析,屬性動畫新的概念,屬性動畫start執行流程,屬性動畫cancel和end執行流程,屬性動畫pause和resume執行流程,
07.加載json動畫
如何解析json動畫,加載動畫優化點,加載json動畫原理,部分源碼解析說明,性能與常見動畫分析,可能出現的異常
05.Res資源(6篇)
09.Selector選擇器總結
selector建立方式,狀態設置說明,義的xml文件能夠做爲兩種資源使用:drawable和color。TextView如何設置背景和字體選擇器?
10.Shape自定義圖形彙總
shape能夠自定義四種類型的形狀,經常使用方法介紹
11.Style樣式彙總
樣式的定義,樣式的用法不僅是用於單個View,也能用於Activity或整個Application,如何簡化樣式從而分類拆分紅多個文件
12.主題Theme的使用總結
style設置
13.attr屬性介紹
attr屬性的定義/讀取/出錯/使用,自定義attr屬性與讀取,若是在attr中不一樣View引用相同屬性名字時出現錯誤的解決方法
06.消息機制
01.Handler基礎使用
Handler常見使用方式,在子線程中定義Handler,Handler的post方法和view的post方法,避免子線程手動建立looper,解決Handler內存泄漏
02.Handler機制體系
Handler做用與功能,MessageQueue做用與功能,Looper做用與功能,Message做用與功能,消息機制實現的步驟
03.消息機制源碼流程
Handler發送消息,Looper輪訓操做,MessageQueue消息隊列,MessageQueue傳遞消息給Handler,Handler接收消息並處理
04.Handler深度解析
Handler構造方法分析,handler.sendMessage(msg)
05.Looper深度解析
Activity如何自動綁定Looper,Looper.prepare()方法源碼分析,Looper.prepare()可否調用屢次,Looper中用什麼存儲消息,Looper.loop()方法源碼分析,Activity生命週期依賴Looper,Looper死循環爲什麼不阻塞應用卡死
06.MessageQueue
MessageQueue做用介紹,MessageQueue的定義,enqueueMessage()源碼,next()方法源碼分析
08.主線程中Looper的輪詢死循環爲什麼沒阻塞主線程
形成ANR的緣由,Looper.loop()方法無限循環,處理消息handleMessage方法,loop的循環消耗性能嗎?
09.子線程更新UI
Android中子線程能夠更新UI嗎,子線程更新UI有哪些方式,runOnUiThread如何實現子線程更新UI,View.post(Runnable r)更新UI,子線程更新UI總結歸納
12.HandlerThread
HandlerThread定義,HandlerThread幾個特性,HandlerThread源碼分析 ,
13.消息機制ThreadLocal
Android消息機制,ThreadLocal基礎介紹,ThreadLocal分析 ,Handler爲什麼用ThreadLocal
07.多媒體
01.圖片相關整理
網絡請求圖片資源,保存bitmap圖片,實現帶有圓角的圖片
03.加載圖片資源介紹
加載Bitmap
04.Bitmap計算內存
如何計算佔用內存?bitmap內存大小 = 圖片長度 x 圖片寬度 x 單位像素佔用的字節數計算內存對嗎?一個像素佔用內存,使用API獲取內存
05.Bitmap回收問題
recycle()方法,Bitmap緩存原理,Bitmap的複用,Bitmap如何複用
06.Bitmap壓縮處理
Bitmap的壓縮方式,Bitmap質量壓縮,Bitmap採樣率壓縮,Bitmap縮放法壓縮
07.Bitmap圖片處理
Bitmap,Drawable,InputStream,Byte[]之間進行轉換,將View控件轉換爲bitmap,Bitmap優化邏輯與原理
08.加載大圖流程
網絡請求圖片,壓縮緩存圖片,填充到View控件,自定義圖片控件,加載大圖原理
09.SurfaceView源碼分析
SurfaceView是什麼,SurfaceView源碼分析 ,在子線程中執行繪製操做爲什麼不會阻塞線程?
10.Android保存多張圖片到本地
實際開發保存圖片遇到的問題,直接用http請求圖片並保存本地,用glide下載圖片保存本地,如何實現連續保存多張圖片
11.Bitmap,Drawable,InputStream
Bitmap,Drawable,InputStream,Byte[ ] 之間進行轉換
12.Bitmap避免OOM
Bitmap佔用內存介紹,影響Bitmap佔用內存因素,圖像加載的方式,加載圖像內存去哪裏了,具體實現加載圖片步驟
16.自定義陰影控件
陰影效果有哪些實現方式,實現陰影效果Api,設置陰影須要注意哪些,常見Shape實現陰影效果,自定義陰影效果控件,如何使用該陰影控件,在recyclerView中使用注意點
08.View事件
01.View事件基礎
事件分發的對象是誰?事件在哪些對象間進行傳遞?事件分發過程涉及方法?事件分發機制方法說明?
02.View事件分發場景
事件分發背景描述,事件傳遞狀況
03.View事件機制源碼分析
Android中事件分發順序?Activity的事件分發機制?ViewGroup事件的分發機制 ?View事件的分發機制?onTouch()和onTouchEvent()的區別?
04.View事件機制
觸摸事件,分發事件,攔截事件,三個事件機制怎麼向其調用者傳遞處理結果,滑動衝突的思路及方法 ,以及具體的滑動衝突解決方案案例
05.View的滑動衝突
經過一個滑動衝突的案例,來說解外部攔截法解決滑動衝突,內部攔截法解決滑動衝突
07.View事件總結1
Android事件分發機制,View和ViewGroup分發事件,onTouch()、onTouchEvent()和onClick()執行順序,View處理事件的優先級,點擊事件傳遞過程,事件傳遞規則要點
08.View事件總結2
View滑動有哪些方法,Activity事件分發過程,Window事件分發過程,DecorView的事件分發,根View的事件分發
09.多線程
00.Android多線程
Android中的線程,線程交互之Handler機制,線程切換的類,java中的多線程,線程池管理多線程,Handler和AsyncTask,線程安全問題
01.頻繁建立Thread缺點
遇到的問題分析,多線程實現Runnable弊端
02.AsyncTask介紹
先看下AsyncTask用法,AsyncTask源碼深刻分析 ,異步機制的實現,不一樣的SDK版本區別
03.AsyncTask缺陷問題
AsyncTask對應線程池,AsyncTask生命週期問題,AsyncTask內存泄漏問題,AsyncTask結果丟失問題,AsyncTask並行仍是串行問題
04.IntentService使用
使用步驟,IntentService做用,IntentService使用場景
05.IntentService源碼分析
IntentService的做用,使用場景,源碼分析,總體源碼展現及概括,如何單獨開啓1個新的工做線程,IntentService如何將Intent傳遞給服務而且依次插入到工做隊列中,IntentService與其餘線程對比,HandlerThread深刻分析
08.線程池基礎
ThreadPoolExecutor類介紹,關於線程池的分類,線程池通常用法,線程建立規則
09.線程池案例測試
使用線程池管理線程的優勢,以及案例代碼測試效率
10.Android中幾種進程
在安卓系統中:當系統內存不足時,Android系統將根據進程的優先級選擇殺死一些不過重要的進程,優先級低的先殺死。進程優先級從高到低以下。
15.Android線程池封裝庫
輕量級線程池封裝庫,支持線程執行過程當中狀態回調監測(包含成功,失敗,異常等多種狀態);支持建立異步任務,而且能夠設置線程的名稱,延遲執行時間,線程優先級,回調callback等;能夠根據本身須要建立本身須要的線程池,一共有四種;線程異常時,能夠打印異常日誌,避免崩潰。
10.Window
01.Activity、Window、View三者關係
深刻分析Activity、Window、View三者之間的關係
02.Toast源碼深度分析
最簡單的建立,簡單改造避免重複建立,show()方法源碼分析,scheduleTimeoutLocked吐司如何自動銷燬的,TN類中的消息機制是如何執行的,普通應用的Toast顯示數量是有限制的,用代碼解釋爲什麼Activity銷燬後Toast仍會顯示,Toast偶爾報錯Unable to add window是如何產生的,Toast運行在子線程問題,Toast如何添加系統窗口的權限等等
03.DialogFragment源碼分析
最簡單的使用方法,onCreate(@Nullable Bundle savedInstanceState)源碼分析,重點分析彈窗展現和銷燬源碼,使用中show()方法遇到的IllegalStateException分析
04.Dialog源碼分析
AlertDialog源碼分析,經過AlertDialog.Builder對象設置屬性,Dialog生命週期,Dialog中show方法展現彈窗分析,Dialog的dismiss銷燬彈窗,Dialog彈窗問題分析等等
05.PopupWindow源碼分析
顯示PopupWindow,注意問題寬和高屬性,showAsDropDown()源碼,dismiss()源碼分析,PopupWindow和Dialog有什麼區別?爲什麼彈窗點擊一下就dismiss呢?
06.Snackbar源碼分析
最簡單的建立,Snackbar的make方法源碼分析,Snackbar的show顯示與點擊消失源碼分析,顯示和隱藏中動畫源碼分析,Snackbar的設計思路,爲何Snackbar老是顯示在最下面
07.彈窗常見問題
DialogFragment使用中show()方法遇到的IllegalStateException,什麼常見產生的?Toast偶爾報錯Unable to add window,Toast運行在子線程致使崩潰如何解決?
09.onAttachedToWindow和onDetachedFromWindow
onAttachedToWindow的調用過程,onDetachedFromWindow能夠作什麼?
10.DecorView介紹
什麼是DecorView,DecorView的建立,DecorView的顯示,深度解析
11.彈窗問題總結
PopupWindow和Dialog區別
15.窗口管理框架概述
Android顯示系統分爲3層,Android顯示框架裏幾個角色
18.窗口管理服務WMS
Window窗口介紹 ,WindowManager介紹,Window的添加流程,Window的刪除流程,Window的更新流程
19.佈局解析者Inflater
LayoutInflater介紹,PhoneLayoutInflater介紹,inflate源碼分析,獲取XmlResourceParser,解析View樹操做步驟,解析View操做步驟
11.WebView
01.WebView基礎使用
WebView的經常使用方法,WebView經常使用類的介紹,WebView注意事項,WebView滑動監聽,爲WebView自定義錯誤顯示界面,判斷WebView是否已經滾動到頁面底端
02.WebView和js交互
Android去調用JS的代碼方式,JS去調用Android的代碼方式,Android 調用HTML中的javascript腳本並傳遞參數,HTML中的javascript腳本調用Android本地代碼並傳遞參數,何時注入js探索
03.WebView防坑總結
WebView頁面中播放音視頻,退出Activity後仍然有聲音,後臺沒法釋放js致使發熱耗電,301/302業務場景及白屏問題,WebSettings.setJavaScriptEnabled安全問題,加載證書錯誤,WebView內存泄漏問題場景和解決辦法,如何處理加載錯誤(Http、SSL、Resource)?,如何操做cookie?H5頁面如何處理登陸失效問題?,H5頁面有混合http和https的連接,5.0以上系統不支持混合模式,須要經過配置來開啓
04.WebView源碼分析
loadurl,LoadData ,loadDataWithBaseURL分析
12.網絡相關
01.網絡基礎筆記
Http無鏈接與無狀態區別,HTTP的緩存機制,HTTP協議Keep-Alive模式等等
02.Retrofit基本使用和源碼解析
Retrofit詳細使用方法介紹,Retrofit與RxJava結合,Form表單提交與multipart/form-data,源碼分析
03.Http和Https區別
http和https之間的區別,以及其餘相關知識點
04.TCP和UDP詳細介紹
TCP和UDP的區別,三次握手創建鏈接,四次握手斷開鏈接,Socket文件傳輸
05.網絡請求詳解
Http請求與響應 ,Http請求方式 ,get和post請求的區別
06.Cookie、Session、Token筆記整理
關於cookie,session,和token使用場景介紹,以及它們之間有何區別
07.Http狀態碼詳解
屬於整理內容,十分全面,方便查詢狀態碼含義
13.註解
01.Annotation註解詳細介紹
02.Dagger2深刻分析,待更新
03.註解詳細介紹
什麼是註解,註解分類有哪些?自定義註解分類?運行註解案例展現分析,以一個最簡單的案例理解註解……使用註解替代枚舉,使用註解限定類型
04.APT技術詳解
什麼是apt?理解註解處理器的做用和用途……android-apt被替代?annotationProcessor和apt區別? 什麼是jack編譯方式?
06.自定義annotation註解
@Retention的做用?@Target(ElementType.TYPE)的解釋,@Inherited註解能夠被繼承嗎?Annotation裏面的方法爲什麼不能是private?
07.註解之兼容kotlin
後期更新
08.註解之處理器類Processor
處理器類Processor介紹,重要方法,Element的做用,修飾方法的註解和ExecutableElement,瞭解修飾屬性、類成員的註解和VariableElement……
10.註解遇到問題和解決方案
沒法引入javax包下的類庫,成功運行一次,修改代碼後再運行就報錯
11.註解代替枚舉
在作內存優化時,推薦使用註解代替枚舉,由於枚舉佔用的內存更高,如何說明枚舉佔用內存高呢?這是爲何呢?
13.Android之註解問題
13.0.0.1 什麼是註解?系統內置的標準註解有哪些?SuppressWarnings用過沒?Android中提供了哪些與線程相關的註解?
13.0.0.2 什麼是apt?apt的難點和優點?什麼是註解處理器?抽象處理器中四個方法有何做用?annotationProcessor和apt區別?
13.0.0.3 註解是怎麼分類的?自定義註解又是怎麼分類的?運行期註解原理是什麼?實際註解案例有哪些?
13.0.0.4 在自定義註解中,Annotation裏面的方法爲什麼不能是private?Annotation裏面的方法參數有哪些?
13.0.0.5 @Inherited是什麼意思?註解是不能夠繼承的,這是爲何?註解的繼承這個概念該如何理解?
13.0.0.6 什麼是依賴注入?依賴注入案例舉例說明,有哪些方式,具有什麼優點?依賴查找和依賴注入有什麼區別?
13.0.0.7 路由框架爲什麼須要依賴注入,不用的話行不行?路由用什麼方式注入,這些注入方式各具何特色,爲什麼選擇註解注入?
13.0.0.8 實際開發中使用到註解有哪些,使用註解替代枚舉?如何經過註解限定傳入的類型?爲什麼說枚舉損耗性能?
14.音視頻
1.0.1
如何掃描本地音頻或者視頻
1.0.2
深刻學習酷狗,混沌大學那種鎖屏頁面原理
1.0.3
爲何要捕獲/丟棄音頻焦點詳細講解
1.0.4
耳機聲控,以及耳機拔出或者插入控制播放暫停
1.0.5
音視頻編碼解碼深刻分析總結
1.0.6
實現音視頻1.5倍,2倍播放速率
1.0.7
音頻的加密與解密案例實踐深刻總結
1.0.8
音頻基礎知識和概念的介紹
1.0.9 [音視頻混合案例介紹]後期更新
1.1.0
如何構建知識圖譜,
重點
1.1.1
完整視頻播放器案例總結與分析
1.1.2
關於博客筆記大彙總
1.1.3
Android編碼規範
1.1.4
Notification通知控制播放
15.優化相關(19篇)
01.內存泄漏優化
常見的內存泄漏場景分析,原理分析,及解決辦法,好比:錯誤使用單例形成的內存泄漏,錯誤使用靜態變量,Handler使用不當形成的內存泄漏,非靜態內部類建立靜態實例形成的內存泄漏,資源未關閉形成的內存泄漏,動畫資源未釋放致使內存泄漏等等。
02.網絡優化
圖片分類優化,獲取網絡數據優化,網絡請求異常攔截優化
03.佈局優化
常見佈局優化方法,使用include標籤,ViewStub深度解析,視圖層級
04.懶加載優化
ViewPager+Fragment組合,當Fragment處理可見時,纔去請求網絡數據,同時onLazyLoad()加載數據條件,以及部分源碼分析
05.代碼優化
lint檢查去除無效代碼,代碼規範優化,View異常優化,去除淡黃色警告優化,合理使用集合,Activity不可見優化,節制的使用Service
06.App線程優化
建立Thread弊端,爲什麼要用線程池,那些地方使用線程池
07.App啓動頁優化
存在白屏問題,解決白屏的辦法,Application啓動速度優化,啓動頁面屏蔽返回按鍵
08.圖片優化
bitmap優化,glide加載優化
09.靜態變量優化
不要用靜態變量保存核心數據,實際開發中遇到的問題
10.APP瘦身優化
APK組成,如何壓縮優化apk,如何檢測哪些無效代碼
11.App卡頓緣由
Android卡頓原理,複雜的視圖樹,頻繁的requestlayout(),UI線程被阻塞,內存抖動
12.對象池Pools優化
什麼是對象池,glide哪裏用到對象池,多條件key緩存bitmap,glide對象池總結,學以至用對象池,對象池的容量
14.輪詢操做優化
輪詢操做是啥,輪訓請求實踐,與長鏈接相關的輪訓請求,與頁面相關的輪訓請求
15.網絡異常優化
網絡請求異常分類,開發中注意問題,原始的處理方式,如何減小代碼耦合性,異常統一處理步驟
16.註解替代枚舉
使用註解限定傳入類型,使用註解替代枚舉
17.四種引用優化
軟引用使用場景,弱引用使用場景,使用場景分析
19.去除重複依賴庫優化
如何查詢重複庫,如何代碼去重配置
20.狀態管理優化
界面狀態有哪些,採用include方式管理,在Base類中處理邏輯,如何下降偶性和入侵性,封裝低入侵性狀態庫
31.優化分析工具
Studio Profiler介紹,CPU分析器,內存分析器,網絡分析器,TraceView
19.複雜控件
01.ScrollView詳細介紹
ScrollView滾動到頂部,ScrollView判斷是否滑動到頂部或者底部,ScrollView在最頂部或者最底部的時候不消費事件
02.NestedScrollView
NestedScrollView滾動到頂部,NestedScrollView爲什麼有時滾不到頂部,NestedScrollView子佈局有時候顯示不出高度,NestedScrollView中嵌套ViewPager
07.自定義TabLayout
原生TabLayout侷限,TabLayout源碼解析,設置自定義tabView選項卡,自定義指示器的長度,設置滑動改變選項卡顏色,使用反射的注意要點
09.CoordinatorLayout使用
CoordinatorLayout是什麼,如何搭配使用,CoordinatorLayout屬性,AppBarLayout屬性,Toolbar屬性
10.CoordinatorLayout源碼
CoordinatorLayout類源碼說明,Behavior的初始化操做,CoordinatorLayout的測量佈局,CoordinatorLayout中依賴監聽,CoordinatorLayout的TouchEvent
11.AppBarLayout
AppBarLayout是什麼,AppBarLayout屬性介紹
12.CollapsingToolbarLayout
CollapsingToolbarLayout是什麼,CollapsingToolbarLayout屬性,其餘注意要點說明
14.自定義Behavior
CoordinatorLayout滑動抖動問題描述,滑動抖動問題分析,自定義AppBarLayout.Behavior說明,CoordinatorLayout滑動抖動解決方案
15.CoordinatorLayout問題
CoordinatorLayout+ViewPager滑動問題,AppbarLayout+ViewPager滑動問題
20.ViewPager懶加載
ViewPager簡單介紹,ViewPager弊端分析,ViewPager預加載,懶加載出現問題,如何實現預加載機制
21.PagerAdapter
PagerAdapter簡單介紹,PagerAdapter抽象方法,PagerAdapter原理介紹,PagerAdapter緩存和銷燬,自定義PagerAdapter
20.bug管理
00.常見的異常
分別列舉了實際開發中大部分的異常,主要包括1.異常Exception和2.異常Error
針對開發中異常問題,大概記錄的是:該板塊是持續更新!!
- A.詳細崩潰日誌信息 - B.查看崩潰類信息 - C.項目中異常分析 - D.引起崩潰日誌的流程分析 - F.解決辦法 - G.其餘延申
複製代碼
01.崩潰bug日誌總結1
1.1 java.lang.UnsatisfiedLinkError找不到so庫異常
1.2 java.lang.IllegalStateException非法狀態異常
1.3 android.content.res.Resources$NotFoundException
1.4 java.lang.IllegalArgumentException參數不匹配異常
1.5 IllegalStateException:Can't compress a recycled bitmap
1.6 java.lang.NullPointerException空指針異常
1.7 android.view.WindowManager$BadTokenException異常
1.8 java.lang.ClassCastException類轉化異常
1.9 Toast運行在子線程問題,handler問題
02.崩潰bug日誌總結2
1.1 java.lang.ClassNotFoundException類找不到異常
1.2 java.util.concurrent.TimeoutException鏈接超時崩潰
1.3 java.lang.NumberFormatException格式轉化錯誤
1.4 java.lang.IllegalStateException: Fragment not attached to Activity
1.5 ArrayIndexOutOfBoundsException 角標越界異常
1.6 IllegalAccessException 方法中構造方法權限異常
1.7 android.view.WindowManager$BadTokenException,dialog彈窗異常
1.8 java.lang.NoClassDefFoundError 找不到類異常
1.9 Android出現:Your project path contains non-ASCII characters.
03.崩潰bug日誌總結3
1.1 OnErrorNotImplementedException【 Can't create handler inside thread that has not called Looper.prepare()】
1.2 adb.exe,start-server' failed -- run manually if necessary
1.3 java.lang.IllegalStateException: ExpectedBEGIN_OBJECT but was STRING at line 1 column 1 path $
1.4 android.content.ActivityNotFoundException: No Activity found to handle Intent
1.5 Package manager has died致使崩潰
1.6 IllegalArgumentException View添加窗口錯誤
1.7 IllegalStateException: Not allowed to start service Intent異常崩潰
1.8 java.lang.IllegalStateException:Can not perform this action after onSaveInstanceState
1.9 在Fragment中經過getActivity找不到上下文,報null致使空指針異常
21.經典總結
02.Aidl進程間通訊詳細介紹
Aidl相關屬性介紹,實際開發中案例操做,部分源碼解析,客戶端綁定服務端service原理
03.Scheme協議詳細介紹
Scheme協議格式解釋,Scheme如何使用 ,Scheme在短信息中注意要點
04.加密和解密
對稱加密和非對稱加密 ,加密和解密代碼展現,非對稱加密用途,RSA非對稱加解密案例代碼分析,注意RSA加密填充方式,RSA加密內容長度限制問題, 加解密效率測試
05.系統日誌寫入文件
自定義log工具類,一邊打印日誌一邊寫入文件,能夠清除7天或者n天以前的日誌文件
06.數據序列化總結
序列化簡單介紹,Parcelable與Serializable的性能比較,性能測試方法分析
07.關於Activity跳轉動畫大彙總
關於Activity實現切換的方式,使用overridePendingTransition方法實現Activity跳轉動畫,使用ActivityOptions切換動畫實現Activity跳轉動畫
08.Android屏幕適配方案
屏幕適配定義,相關重要的概念 ,Android適配問題及本質 ,通配符適配困境,傳統dp適配困境,今日頭條適配方案等等
09.Android編碼規範
包命名,類和接口命名,方法的命名,變量命名,成員變量命名,常量命名,異常命名等等;註釋,類註釋,方法註釋,類成員變量和常量註釋等等;代碼風格,簡單實用的規範文檔
10.上傳提交代碼到jcenter
詳細的方法流程步驟
11.產品開發流程
屬於整理性文章
13.Notification通知欄
github.com/yangchong21…
14.輪詢操做
簡單理解就是App端每隔必定的時間重複請求的操做就叫作輪訓請求,好比:App端每隔一段時間上報一次定位信息,App端每隔一段時間拉去一次用戶狀態等,這些應該都是輪訓請求。
31.App滑動標題欄漸變
目前改變漸變顏色方式,ScrollView實現滑動漸變,RecyclerView滑動漸變,AppBarLayout滑動漸變
21.經典總結(4篇)
01.Android技術架構
02.設計靠譜MVP架構
什麼是MVP?什麼是MVC?開始進行MVP搭建,MVP進階處理邏輯
03.MVC架構詳細介紹
MVC原理介紹,Android應用場景,MVC最簡單例子,通俗理解MVC,MVC缺陷分析
04.MVP架構詳細介紹
MVP簡單介紹,MVP工做原理,MVP最簡單例子,MVP架構優缺點
23.架構技術
01.Android技術架構
MVC架構簡單介紹,MVC缺陷,MVP架構簡單介紹,如何設計一個靠譜MVP架構,以及MVC和MVP之間比較,結合實際代碼分析,避免過分設計
02.Android組件化開發實踐和案例分享
爲何要組件化,建立組件化框架,組件化實踐的開源項目,本博客已經受權鴻洋大神推薦!
03.ARouter路由解析
ARouter路由框架一層層的解析,ARouter的工做流程
11.設計路由條件
爲什麼須要路由?實現路由方式有哪些,這些方式各有何優缺點?使用註解實現路由須要具有的條件以及簡單原理分析……
12 經過註解去實現路由跳轉
自定義Router註解,Router註解裏有path和group,這即是仿照ARouter對路由進行分組。而後看看註解生成的代碼,手寫路由跳轉代碼。
13 自定義路由Processor編譯器
Processor介紹,重要方法,Element的做用,修飾方法的註解和ExecutableElement
14 利用apt生成路由映射文件
在Activity類上加上@Router註解以後,即可經過apt來生成對應的路由表,那麼到底是如何生成的代碼呢?
在組件化開發中,有多個module,爲什麼要在build.gradle配置moduleName,又是如何經過代碼拿到module名稱?
process處理方法如何生成代碼的,又是如何寫入具體的路徑,寫入文件的?
看完這篇文章,應該就可以理解上面這些問題呢!
15 路由框架的設計和初始化
編譯期是在你的項目編譯的時候,這個時候尚未開始打包,也就是你沒有生成apk呢!路由框架在這個時期根據註解去掃描全部文件,而後生成路由映射文件。這些文件都會統一打包到apk裏,app運行時期作的東西也很多,但總而言之都是對映射信息的處理,如執行執行路由跳轉等。那麼如何設計框架呢?
生成的註解代碼,又是如何把這些路由映射關係拿到手,或者說在何時拿到手比較合適?爲什麼註解須要進行初始化操做?
如何獲得獲得路由表的類名,如何獲得全部的routerAddress---activityClass映射關係?
16 路由框架設計注意要點
須要注意哪些要點?
17 爲什麼須要依賴注入
有哪些注入的方式能夠解耦,你能想到多少?路由框架爲什麼須要依賴注入?路由爲什麼用註解進行依賴注入,而不是用反射方式注入,或者經過構造方法注入,或者經過接口方式注入?
18 Activity屬性注入
在跳轉頁面時,如何傳遞intent參數,或者如何實現跳轉回調處理邏輯?
24.kotlin學習
02.Kotlin基本語法
常量和變量,函數,空安全,修飾符,運算符重載
03.Kotlin類的擴展
使用companion object,經過閉包減小接口類,object對象聲明
04.Kotlin函數
with函數說明,apply函數說明,內聯函數,自定義訪問器
06.條件循環和區間
If表達式,When表達式,for循環,While 和 do/while 循環,Ranges
07.Kotlin類介紹
kotlin如何表示類,默認是finial修飾,internal inner是啥,匿名內部類,枚舉類
08.Kotlin構造函數
沒有構造參數的類,主構造函數,次構造函數,主構造函數之init方法
09.抽象類與接口
接口定義,抽象類定義,抽象方法與默認方法,抽象屬性
10.類繼承和實現
kotlin類默認finial,繼承接口和實現抽象類,覆蓋方法,屬性覆蓋,如何多個實現
11.函數操做符
12.擴展函數和屬性
擴展函數,擴展屬性,不可重寫的擴展函數,拓展函數問題思考
13.Kotlin可空性
可空性,安全調用運算符:?.,Elvis運算符:?:,安全轉換運算符:as?,非空斷言:!!,let函數說明
15.kotlin字符串
16.類型的檢查
類型檢查,智能轉換,不安全的轉換操做符,安全的轉換操做符
18.懶加載初始化
by lazy做用,lazy使用場景,lateinit做用,by lazy和lateinit的區別
19.集合和數組
只讀集合與可變集合,集合與 Java,只讀集合的可變性,
20.kotlin中綴調用
中綴調用,解構聲明
22.Lambda表達式
Lambda做用,Lambda的使用場景,在做用域中訪問變量
23.kotlin異常
Kotlin 中異常處理的基本形式和 Java 相似
25.FindViewId空指針
不用手寫findViewById,插件實現的原理分析,fragment中注意事項
26.kotlin協程使用
什麼是協程,協程應用場景,線程和協程區別,協程用法,協程優點
30.kotlin開銷探索
lazy()委託屬性,伴生對象開銷,基本類型數組
31.NPE強規則
Java中判斷方式,kotlin中判空,致使NPE的場景
25.RecyclerView(25篇)
00.RecyclerView複雜封裝庫
幾乎融合了該系列博客中絕大部分的知識點,歡迎一遍看博客一遍實踐,一步步從簡單實現功能強大的庫
01.RecyclerView
RecycleView的結構,RecyclerView簡單用法介紹
02.Adapter
RecyclerView.Adapter扮演的角色,通常經常使用的重寫方法說明,數據變動通知之觀察者模式,查看.notifyChanged();源碼
03.ViewHolder
ViewHolder的做用,如何理解對於ViewHolder對象的數量「夠用」以後就中止調用onCreateViewHolder方法,ViewHolder簡單封裝
04.LayoutManager
LayoutManager做用是什麼?setLayoutManager源碼分析
05.SnapHelper
SnapHelper做用,什麼是Fling操做 ,SnapHelper類重要的方法,
06.ItemTouchHelper
07.SpanSizeLookup
SpanSizeLookup如何使用,同時包含列表,2列的網格,3列的網格如何優雅實現?
08.ItemDecoration
ItemDecoration的用途,addItemDecoration()源碼分析
09.RecycledViewPool
RecyclerViewPool用於多個RecyclerView之間共享View。
10.ItemAnimator
官方有一個默認Item動畫類DafaultItemAnimator,其中DefaultItemAnimator繼承了SimpleItemAnimator,在繼承了RecyclerView.ItemAnimator,它是如何實現動畫呢?
11.RecyclerView上拉加載
添加recyclerView的滑動事件,上拉加載分頁數據,設置上拉加載的底部footer佈局,顯示和隱藏footer佈局
12.RecyclerView緩存原理
RecyclerView作性能優化要說複雜也複雜,好比說佈局優化,緩存,預加載,複用池,刷新數據等等
13.SnapHelper源碼分析
SnapHelper旨在支持RecyclerView的對齊方式,也就是經過計算對齊RecyclerView中TargetView 的指定點或者容器中的任何像素點。
16.自定義SnapHelper
自定義SnapHelper
18.ItemTouchHelper 實現交互動畫
須要自定義類實現ItemTouchHelper.Callback類
19.自定義ItemDecoration分割線
須要自定義類實現RecyclerView.ItemDecoration類,並選擇重寫合適方法
21.RecyclerView優化處理
RecyclerView滑動卡頓緣由有哪些?如何解決嵌套佈局滑動衝突?如何解決RecyclerView實現畫廊卡頓?
22.RecyclerView問題彙總
getLayoutPosition()和getAdapterPosition()的區別
23.RecyclerView滑動衝突
01.如何判斷RecyclerView控件滑動到頂部和底部
02.RecyclerView嵌套RecyclerView 條目自動上滾的Bug
03.ScrollView嵌套RecyclerView滑動衝突
04.ViewPager嵌套水平RecyclerView橫向滑動到底後不滑動ViewPager
05.RecyclerView嵌套RecyclerView的滑動衝突問題
06.RecyclerView使用Glide加載圖片致使圖片錯亂問題解決
24.ScrollView嵌套RecyclerView問題
要實如今NestedScrollView中嵌入一個或多個RecyclerView,會出現滑動衝突,焦點搶佔,顯示不全等。如何處理?
25.RecyclerView封裝庫和綜合案例
自定義支持上拉加載更多【加載中,加載失敗[好比沒有更多數據],加載異常[無網絡],加載成功等多種狀態】,下拉刷新,能夠實現複雜的狀態頁面,支持自由切換狀態【加載中,加載成功,加載失敗,沒網絡等狀態】的控件,拓展功能[支持長按拖拽,側滑刪除]能夠選擇性添加。具體使用方法,能夠直接參考demo案例。
27. RecyclerView瀑布流優化
瀑布流實現,瀑布流上拉加載,給瀑布流設置分割線,如何避免刷新抖動,爲什麼有時出現跳動,瀑布流圖片優化,onBindViewHolder優化,瀑布流item點擊事件優化,Glide加載優化,建議指定圖片的寬高
26.組件化(7篇)
01.爲什麼組件化
APP迭代維護成本增高,APP架構方式是單一工程模式,業務規模擴大,那就涉及到多人協做問題……
02.組件化概念
什麼是組件化,區分模塊化與組件化,區分組件化和插件化,application和library,組件化優點好處,注意第三方sdk拆分問題
03.組件化框架
傳統APP架構圖,組件化須要考慮問題,組件化架構圖,組件通訊是經過路由轉發,業務組件的生命週期
05.組件化案例
如何建立模塊,如何創建依賴,如何統一配置文件,組件化的基礎庫包含哪些,組件和集成模式如何切換,組件初始化問題
06.組件化填坑
Fragment通訊難點,組件化解決重複依賴,業務組件聯動致使耦合,組件化之數據庫分離,組件化時資源名衝突,butterKnife使用問題
07.選擇合適路由
選擇那個開源路由庫,阿里Arouter基礎原理,使用Arouter注意事項
27.路由框架
01.設計路由條件
爲什麼須要路由,實現路由方式,路由具有要點,ARouter簡單案例,路由實現原理
02.經過註解實現路由跳轉
首先看ARouter註解實現方案,自定義Router註解,查看生成的註解代碼,倒推生成代碼如何產生的
03.生成路由映射文件
前沿介紹,定義註解處理器,如何拿到module名稱,process處理方法,生成的文件
04.框架設計與初始化
看阿里ARouter總體設計,這樣設計框架目的,仿照ARouter設計本身框架,爲什麼須要初始化操做,初始化操做邏輯,如何獲得獲得路由表的類名
05.路由參數傳遞接收
06.依賴注入詳解
什麼是依賴注入,依賴注入案例,依賴查找和依賴注入,路由框架爲什麼須要依賴注入,路由用什麼方式注入
07.Activity屬性傳遞
依賴注入實現,註解實現分析,AbstractProcessor,如何注入屬性,注入源碼分析
其餘介紹
01.關於博客彙總連接
1.
技術博客彙總
2.
開源項目彙總
3.
生活博客彙總
4.
喜馬拉雅音頻彙總
5.
其餘彙總
02.關於個人博客
github:
github.com/yangchong21…
知乎:
www.zhihu.com/people/yczb…
簡書:
www.jianshu.com/u/b7b2c6ed9…
csdn:
my.csdn.net/m0_37700275
喜馬拉雅聽書:
www.ximalaya.com/zhubo/71989…
開源中國:
my.oschina.net/zbj1618/blo…
泡在網上的日子:
www.jcodecraeer.com/member/cont…
郵箱:yangchong211@163.com
阿里雲博客:
yq.aliyun.com/users/artic…
239.headeruserinfo.3.dT4bcV
segmentfault頭條:
segmentfault.com/u/xiangjian…
掘金:
juejin.im/user/593943…
相關文章
1.
Android博客大彙總
2.
Android技術博客彙總
3.
Java博客大彙總
4.
博客筆記大彙總
5.
大牛博客彙總
6.
博客彙總
7.
Phylab 博客彙總
8.
技術博客筆記大彙總
9.
大前端知識彙總博客
10.
大廠技術博客彙總
更多相關文章...
•
Docker 資源彙總
-
Docker教程
•
Web 詞彙表
-
網站建設指南
•
JDK13 GA發佈:5大特性解讀
•
算法總結-雙指針
相關標籤/搜索
博客
總彙
彙總
博大
技術博客
博客園
博客遷移
博客轉移
博客搬家
博客話題
Android
Docker命令大全
NoSQL教程
Hibernate教程
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
深度學習硬件架構簡述
2.
重溫矩陣(V) 主成份分析
3.
國慶佳節第四天,談談我月收入增加 4K 的故事
4.
一起學nRF51xx 23 - s130藍牙API介紹
5.
2018最爲緊缺的十大崗位,技術崗佔80%
6.
第一次hibernate
7.
SSM項目後期添加數據權限設計
8.
人機交互期末複習
9.
現在無法開始異步操作。異步操作只能在異步處理程序或模塊中開始,或在頁生存期中的特定事件過程中開始...
10.
微信小程序開發常用元素總結1-1
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
Android博客大彙總
2.
Android技術博客彙總
3.
Java博客大彙總
4.
博客筆記大彙總
5.
大牛博客彙總
6.
博客彙總
7.
Phylab 博客彙總
8.
技術博客筆記大彙總
9.
大前端知識彙總博客
10.
大廠技術博客彙總
>>更多相關文章<<