原创 判斷UICollectionView 或 UITableView reload()結束

如何判斷UICollectionView 或 UItableView reload()函數結束? 正常開發中,當數據發生變化,只要調用下reload()函數,就可以刷新數據。但 是,如果需要在加載結束後,緊接着進行一些業務處理,比如滑動到

原创 正則表達式相關工具

正則表達式測試網站 https://regex101.com/#python

原创 ViewPager2 嵌套 ViewPager2 解決方案

最近新業務要求,在ViewPager2 的item中,再放一個ViewPager2用來展示Banner效果。發現兩個嵌套之後,內部的ViewPager2無法滑動,首先考慮的就是滑動衝突,打算重寫ViewPager2,修改onIntercep

原创 反射分析一

獲取函數 使用僞代碼來簡化源碼的複雜邏輯,只關注主線邏輯。 Java中萬物都是對象,如果使用過反射的同學,應該有所感受。Class是最基本的對象,而其中的函數(method)、屬性(field)等,也可以看作是一個對象。不然,method不

原创 APP卡頓:Choreographer檢測界面卡頓

前提 本文提供一種卡頓監控的思路,方便在開發過程中及時發現界面卡頓並提示開發者信息。 choreographer用來協調動畫,事件,繪製的時間。 而且Choreographer剛好也提供了一個postFrameCallback 方法供開發者

原创 RecyclerView的複用 RecyclerView的複用機制

RecyclerView的複用機制 前提 RecyclerView,即“熟悉”又“陌生”的控件。說起熟悉,是因爲它頻繁的使用在各個界面中,手機的豎直操作,需要大量的列表展示,導致其是最常用的控件(ViewGroup)之一。而陌生,也是因爲完

原创 zygote的啓動和作用

zygote的作用(what) zygote的啓動流程(how) zygote的工作原理(why) zygote的作用 1、啓動SystemServer 2、孵化引用進程 zygote啓動流程和工作原理 啓動進程 1、linux啓動後的

原创 OOP編程四大特性:封裝、抽象、繼承、多態

封裝 封裝也叫作信息隱藏或者數據訪問保護。類通過暴露有限的訪問接口,授權外部僅能通過類提供的方式來訪問內部信息或者數據。它需要編程語言提供權限訪問控制語法來支持,例如 Java 中的 private、protected、public 關鍵字

原创 Jetpack系列:視圖綁定(ViewBind)使用和分析

ViewBind的使用 JetPack出來後,增加了視圖綁定的工具,方便我們不再需要手寫findViewById,節省了大量時間,應該比ButterKnife更加簡便。 接下來,將對視圖綁定的使用和原理進行分析。 開啓視圖綁定 注意:使用視

原创 內存優化篇:內存的管理機制

工具選擇 Memory Profiler Memory Analyzer(MAT) LeakCanary Java內存管理機制 標記-清除算法(Mark-Sweep GC) 標記可回收的內存塊,直接對其進行回收。 優點:效率快 缺點:內

原创 Activity、Window的關係

首先需要帶着目的去閱讀源碼 這次的目的是:Activity的顯示,Window起了什麼作用? 建議:一邊跟着文章,一邊跟着源碼閱讀,否則會暈 1、activityThread收到handler消息 啓動一個activity,調用perfor

原创 NDK基礎:結構體 共用體

結構體 c語言中的結構體,就好比是java中的bean對象。 是一種可自定義的可用的數據類型,它允許存儲不同類型的數據項。 定義結構體,需要使用struct關鍵字。 //使用struct關鍵字申明一個結構體 struct Book{

原创 iOS尺寸備忘錄

設備 物理像素 邏輯像素 切圖 statusBar iPhone 6/7/8 750x1334px 375x667pt @2x 40px/20pt iPhone 6/7/8Plus 1242x2208px 414x736p

原创 Handler詳細流程

接上文Handler簡單回顧流程 handler搬運消息給MessageQueue都是在Java中做簡單的調用 需要更加深入理解handler的原理,我們需要把目光再拉遠,看得更多,細節也會更多。 首先,UI線程是用來更新界面的一個特殊存在

原创 Handler簡單回顧流程

初學android,我們總是被告誡,不能在子線程中更新界面,請用handler。 本文就帶大家淺顯的理解handler更新界面原理,儘量避免過多源碼分析,只貼關鍵代碼幫助記憶。 目錄: handler的人物交代 更新界面的流程 拓展和疑問