原创 EventBus之高效使用

EventBus之高效使用 說起 EventBus,作爲一名 Android 開發者,應該不會太陌生,但是我們大部分都會根據官方文檔直接進行使用,其實還有一種比較高效的使用方式。就是不使用註解的方式,在編譯時期,對相關注冊方法進行

原创 Android 音頻錄製(三)-OpenSL ES

文章目錄什麼是 OpenSL ESOpenSL ES 在哪OpenSL ES 錄製相關推薦 Android 系統爲我們提供了三種錄製音頻的方式 MediaRecord( Java API) AudioRecord( Java A

原创 Vsync機制和Choreographer詳解

文章目錄UI 卡頓定義卡頓原因及常見解決方式VSync定義作用工作原理Buffer 緩存機制單緩存雙緩存三緩存Choreographer使用源碼分析 UI 卡頓定義 用戶角度:APP 操作比較緩慢,響應不及時,列表滑動卡頓,動

原创 Paint 的ColorFilter(顏色過濾器)和 XFermode(圖層混合模式)

Paint 的ColorFilter(顏色過濾器)和 XFermode(圖層混合模式) ColorFilter-顏色過濾器 顧名思義就是 Paint 畫筆的顏色過濾功能。通過 setColorFilter(ColorFilter

原创 PMS啓動 APK 安裝流程詳解

文章目錄概述相關類說明PMS 服務啓動應用程序(APK)安裝有界面安裝無界面安裝APK 安裝原理 概述 PackageManagerService(以下簡稱 PMS)是一個常用的系統服務,主要負責系統中的 Package 的管理,

原创 Android WebView 與 Native 交互

Android WebView 與 Native 交互 在 Android 開發過程中,難免會用到 WebView 展示一些 H5 頁面,這樣就免不了需要和 Native 進行一些信息的交互。比如獲取當前登陸狀態、保存一些值、調起

原创 Handler 詳解

文章目錄使用HandlerHandlerThread猜想源碼分析Looper讀取數據發送數據總結Q & A 開發中我們經常使用 Handler 來進行線程間的通信。這篇我們就從源碼角度來分析一下 Handler 是怎麼工作的。 使

原创 AMS、Activity 啓動流程詳解

文章目錄概述相關類說明AMS 服務啓動Activity 啓動流程 概述 ActivityManagerService(以後簡稱AMS)都有所耳聞。AMS 是 Android 中最核心的服務,主要負責系統中四大組件的啓動、切換、調度

原创 Launch 桌面啓動詳解

Launch 桌面啓動詳解 不管是開機還是重啓手機,相信我們大家都不陌生吧。大部分的 90 後都經歷了從 Android 2.* 的統一開機動畫,到現在 Android 10 的各種定製開機動畫。 爲什麼 Android 系統啓動

原创 Binder 詳解

文章目錄什麼是 BinderBinder 的由來性能穩定性安全性Binder 優勢總結Binder 通信機制進程隔離進程空間劃分:用戶空間(User Space)/內核空間(Kernel Space)系統調用:用戶態與內核態Bin

原创 View 自定義屬性之 LayoutInflater

View 自定義屬性之 LayoutInflater 平常開發中,我們避免不了會自定義 view,自定義 view 的時候可以通過 AttributeSet 來獲取自定義的相關屬性。而怎麼樣不通過自定義 view,就能實現自定義相

原创 Android 音頻錄製(一)-MediaRecord

Android 音頻錄製(一)-MediaRecord Android 系統爲我們提供了三種錄製音頻的方式 MediaRecord( Java API) AudioRecord( Java API) OpenSL ES( Nat

原创 Android 音頻錄製(二)-AudioRecord

Android 音頻錄製(二)-AudioRecord Android 系統爲我們提供了三種錄製音頻的方式 MediaRecord( Java API) AudioRecord( Java API) OpenSL ES( Nat

原创 源碼分析軟鍵盤彈出失效問題

源碼分析軟鍵盤彈出失效問題 平常開發中,經常碰到 EditText 輸入內容時需要調起軟件盤。但是有時發現調用了之後沒有生效,軟鍵盤並沒有彈出來。通常做法如下,延遲執行,雖然大概率提升了軟鍵盤彈出的機率,但是偶爾還是會失效,沒有從

原创 SVG 詳解——自定義可點擊的中國地圖

SVG 詳解——自定義可點擊的中國地圖 SVG 定義 SVG 是一種圖像文件格式,類似於 JPG、PNG。只不過 JPG 和 PNG 這種文件需要圖像引擎加載,而 SVG 則是由畫布來加載的。 它的英文全稱爲 Scalable V