原创 【Android 內存優化】Bitmap 內存緩存 ( Bitmap 緩存策略 | LruCache 內存緩存 | LruCache 常用操作 | 工具類代碼 )

文章目錄一、Bitmap 內存緩存策略二、LruCache 內存緩存三、LruCache 常用操作四、LruCache 工具類五、源碼及資源下載 官方參考 : Google 官方提供的 內存優化參考 ; Glide 開源庫 :

原创 【Android 內存優化】Bitmap 圖像尺寸縮小 ( 設置 Options 參數 | inJustDecodeBounds | inSampleSize | 工具類實現 )

文章目錄一、解碼圖片參數 inJustDecodeBounds二、計算圖片的縮小比例三、設置圖片縮小配置 inSampleSize四、設置圖片像素格式 inPreferredConfig五、設置圖片複用機制六、Bitmap 圖像尺

原创 【Android 內存優化】Bitmap 圖像尺寸縮小 ( 考慮像素密度、針對從不同像素密度資源中解碼對應的 Bitmap 對象 | inDensity | inTargetDensity )

文章目錄一、像素密度對解碼圖片的影響二、不考慮像素密度會導致圖片縮小尺寸不準確三、DisplayMetrics 源碼閱讀、研究手機資源獲取規則四、像素密度參數設置取值 ( inDensity | inTargetDensity |

原创 【錯誤記錄】Android 內存泄漏 錯誤排查記錄 ( FinalizerReference 內存泄漏 )

文章目錄一、 報錯信息二、 內存排查三、 代碼分析及修改四、 不同版本說明 參考以下博客 : 【Android 內存優化】Android Profiler 工具常用功能 ( 監測內存 | 內存快照 ) 【Android 內存優

原创 【Android 內存優化】Android 原生 API 圖片壓縮原理 ( 哈夫曼編碼開關 | 哈夫曼編碼原理 | libjpeg-turbo 函數庫 )

文章目錄一、 哈夫曼編碼開關二、 哈夫曼編碼原理三、 libjpeg-turbo 函數庫四、 libjpeg-turbo 函數庫下載 【Android 內存優化】圖片文件壓縮 ( Android 原生 API 提供的圖片壓縮功

原创 【Android 內存優化】Android 工程中使用 libjpeg-turbo 壓縮圖片 ( JNI 傳遞 Bitmap | 獲取位圖信息 | 獲取圖像數據 | 圖像數據過濾 | 釋放資源 )

文章目錄一、Bitmap 圖像數據處理二、Java 層 Bitmap 對象轉爲 JNI 層 bitmap 對象三、獲取 bitmap 中的圖像數據四、過濾 bitmap 中的圖像數據 ( 獲取 RGB 數據 剔除 A 通道數據 )

原创 【Android 內存優化】libjpeg-turbo 函數庫交叉編譯與使用 ( 交叉編譯腳本編寫 | 函數庫頭文件拷貝 | 構建腳本配置 | Android Studio 測試函數庫 )

文章目錄一、交叉編譯 Shell 腳本參考二、NDK r16b 版本配置三、libjpeg-turbo 交叉編譯 Shell 腳本四、執行 libjpeg-turbo 交叉編譯 Shell 腳本 開始編譯五、拷貝函數庫頭文件到 A

原创 【Android 內存優化】libjpeg-turbo 函數庫交叉編譯 ( libjpeg-turbo 函數庫下載 | libjpeg-turbo 編譯文檔 | 環境準備 | NASM 安裝 )

文章目錄一、 libjpeg-turbo 函數庫下載與解壓二、 libjpeg-turbo 編譯文檔三、 編譯前環境準備四、 安裝 NASM 彙編工具1、 下載 NASM 彙編工具2、 拷貝解壓 NASM 源碼3、 編譯安裝 na

原创 【Android 內存優化】Bitmap 內存佔用計算 ( Bitmap 圖片內存佔用分析 | Bitmap 內存佔用計算 | Bitmap 不同像素密度間的轉換 )

文章目錄一、Bitmap 內存佔用二、Bitmap 內存佔用計算示例三、Bitmap 內存佔用與像素密度四、Bitmap 內存佔用與像素密度示例 一、Bitmap 內存佔用 在 Android 中 Bitmap 對象在

原创 【Android 內存優化】Android 工程中使用 libjpeg-turbo 壓縮圖片 ( 初始化壓縮對象 | 打開文件 | 設置壓縮參數 | 寫入壓縮圖像數據 | 完成壓縮 | 釋放資源 )

文章目錄一、使用 libjpeg-turbo 壓縮圖片流程二、初始化 JPEG 壓縮對象三、打開文件四、設置壓縮參數五、開始壓縮六、循環寫入壓縮數據七、完成圖片壓縮及收尾八、libjpeg-turbo 圖片壓縮案例 ( 官方示例

原创 【Android 內存優化】Android 原生 API 圖片壓縮原理 ( 圖片質量壓縮方法 | 查找 Java 源碼中的 native 方法對應的 C++ 源碼 )

文章目錄一、 圖片質量壓縮方法二、 查找對應的 Native 方法源碼三、 分析 Bitmap.cpp 中動態註冊 Native 方法 在博客 【Android 內存優化】圖片文件壓縮 ( Android 原生 API 提供的

原创 【Android 內存優化】圖片文件壓縮 ( Android 原生 API 提供的圖片壓縮功能能 | 圖片質量壓縮 | 圖片尺寸壓縮 )

文章目錄一、 圖片壓縮二、 圖片文件壓縮類型三、 Android 原生 API 提供的質量壓縮四、 Android 原生 API 提供的尺寸壓縮 一、 圖片壓縮 圖片壓縮 : ① 文件壓縮 : 圖片的文件壓縮 ,

原创 【Android 內存優化】Android Profiler 工具常用功能 ( 監測內存 | 內存快照 )

文章目錄一、 內存泄漏排查 ( Android Profiler 工具 )二、 Android Profiler 內存監測相關功能三、內存快照分析 內存泄漏原理 : 長生命週期對象 , 持有短生命週期對象的引用 , 並且是強

原创 【Android 性能優化】佈局渲染優化 ( GPU 過度繪製優化總結 | CPU 渲染過程 | Layout Inspector 工具 | View Tree 分析 | 佈局組件層級分析 )

文章目錄一、 GPU 過度繪製優化總結二、 CPU 渲染過程三、 CPU 渲染性能調試工具 Layout Inspector四、 Layout Inspector 組件樹 DecorView 分析五、 實際的界面 UI 佈局組件層

原创 【Android 性能優化】佈局渲染優化 ( CPU 渲染優化 | 減少佈局的嵌套 | 測量佈局繪製時間 | OnFrameMetricsAvailableListener | 佈局渲染優化總結 )

文章目錄一、 減少佈局嵌套二、 佈局渲染時間測量1. FrameMetrics 使用流程2. FrameMetrics 參數解析3. FrameMetrics 代碼示例三、 佈局渲染優化總結 一、 減少佈局嵌套 在 【