日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android 性能优化】应用启动优化 ( 阶段总结 | Trace 文件分析及解决方案 | 源码分析梳理 | 设置主题的方案总结 ) ★

發布時間:2025/6/17 Android 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 性能优化】应用启动优化 ( 阶段总结 | Trace 文件分析及解决方案 | 源码分析梳理 | 设置主题的方案总结 ) ★ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、 常用的耗時方法優化方案 ( 重要 )
  • 二、 源碼分析梳理
    • 1. 應用啟動時間計算相關源碼分析
    • 2. Launcher 應用中啟動 Android 應用流程
  • 三、 啟動白屏解決方案



Android 應用啟動優化總結 :


1 . 查看應用啟動時間 : 應用啟動優化引入 ;

  • 【Android 性能優化】應用啟動優化 ( 啟動白屏問題 | 應用啟動時間測量 | 冷啟動 | 熱啟動 | 應用啟動時間計算源碼分析 )

2 . 啟動白屏的解決方案 : 設置圖片背景 , 或透明背景 , 這是個權宜之計 , 并不能根本性解決啟動慢的問題 , 只是讓用戶體驗效果好一些 ;

  • 【Android 性能優化】應用啟動優化 ( 主題背景圖片設置 | 設置透明主題背景 | 設置應用啟動主題背景、啟動后恢復主題 )

3 . 分析優化哪些項目 : 這三篇博客詳細分析了從 Launcher 應用中啟動第三方應用的整體流程 , 步驟 , 進而分析出應該優化哪些條目 ;

【Android 性能優化】應用啟動優化 ( 安卓應用啟動分析 | Launcher 應用簡介 | Launcher 應用源碼簡介 | Launcher 應用快捷方式圖標點擊方法分析 )

【Android 性能優化】應用啟動優化 ( 安卓應用啟動分析 | Launcher 應用啟用普通安卓應用 | 應用進程分析 )

【Android 性能優化】應用啟動優化 ( 安卓應用啟動分析 | ActivityThread 主函數分析 | 應用初始化 | 啟動優化項目 )


4 . 使用 Trace 分析每個方法的執行時間 : 使用方法跟蹤 , 可以找出哪個方法耗時較長 , 需要優化 ;

  • 【Android 性能優化】應用啟動優化 ( 啟動優化項目 | 界面啟動時間 | 啟動優化項目 | 方法追蹤 MethodTracing )

  • 【Android 性能優化】應用啟動優化 ( 方法追蹤代碼模板 | 示例項目 | SD 卡訪問權限 | 示例代碼 | 獲取 Trace 文件 | Android Studio 查看文件)

  • 【Android 性能優化】應用啟動優化 ( Trace 文件分析 | 結合代碼分析 Trace 文件 )


相關文件下載 :

  • 相關 Android 源碼 : Launcher 源碼 , ActivityThread.java , Am.java , ActivityRecord.java , 等源碼下載
  • Trace 分析中的文件 : Method_Trace.trace 文件下載




一、 常用的耗時方法優化方案 ( 重要 )



【Android 性能優化】應用啟動優化 ( 啟動優化項目 | 界面啟動時間 | 啟動優化項目 | 方法追蹤 MethodTracing )

【Android 性能優化】應用啟動優化 ( 方法追蹤代碼模板 | 示例項目 | SD 卡訪問權限 | 示例代碼 | 獲取 Trace 文件 | Android Studio 查看文件)

【Android 性能優化】應用啟動優化 ( Trace 文件分析 | 結合代碼分析 Trace 文件 )


在上面的三篇博客中 , 講解了如何使用 Trace 工具 , 追蹤指定方法片段的執行詳細細節 , 每個方法的執行時間 , 將耗時最長的幾個方法進行優化 , 具體的優化方案如下 :



1. 子線程中運行該耗時方法 : 開啟線程 , 將耗時方法放在線程中運行 ; 但這種方法并不是全能的 ;

某些第三方庫初始化 , 不能在子線程中調用 , 如包含 Handler 初始化 , 必須在主線程中進行初始化 ;



2. 懶加載 : 盡量使用懶加載策略 , 避免在應用啟動時大量調用方法 ;


① 定時器或線程延遲加載 : 開一個定時器或線程過一段時間 ( 3 秒后 ) 加載 ;

② 在 onResume 方法中加載 ;

③ 廣播加載 : 延遲 n 秒發送廣播 , 在廣播中加載 ;

④ 第三方框架使用時加載 : 某些第三方框架 , 如 OKHttp 等 , 封裝在一個單例類中 , 用到的時候再初始化 , 不要在啟動的時候加載全部組件 ;


在 Application 或 Activity 代碼的 onCreate 方法中 , 盡量不要有任何 訪問 文件 , 數據庫 , SharedPreference , 初始化第三方框架 等操作 , 只保留必要的賦值 , 布局加載代碼 ;





二、 源碼分析梳理





1. 應用啟動時間計算相關源碼分析


在 【Android 性能優化】應用啟動優化 ( 啟動白屏問題 | 應用啟動時間測量 | 冷啟動 | 熱啟動 | 應用啟動時間計算源碼分析 ) 博客中分析了應用啟動時間計算相關的源碼 , 主要是執行

adb shell am start -W 包名/完整 Activity 類名

命令的源碼分析 , 執行該命令后 , 會自動計算出 ① 應用加載時間 TotalTime , ② 界面顯示時間 ThisTime , ③ 用戶等待時間 WaitTime ;

在 【Android 性能優化】應用啟動優化 ( 啟動優化項目 | 界面啟動時間 | 啟動優化項目 | 方法追蹤 MethodTracing ) 博客中也有應用啟動時間相關的總結 ;



2. Launcher 應用中啟動 Android 應用流程


在下面的三篇博客中 , 詳細分析了 Launcher 應用中 , 用戶點擊應用圖標 , 啟動應用的流程 , 根據應用啟動流程分析出應用啟動優化 , 應該優化哪些地方 ;


【Android 性能優化】應用啟動優化 ( 安卓應用啟動分析 | Launcher 應用簡介 | Launcher 應用源碼簡介 | Launcher 應用快捷方式圖標點擊方法分析 ) 博客中介紹了 Launcher 應用的版本 , 源碼位置 , 等基本情況 , 其主要的 Activity 界面 Launcher.java 文件 , 找到了該文件的應用圖標點擊事件 , 該點擊事件就是觸發應用啟動的起點 ;


【Android 性能優化】應用啟動優化 ( 安卓應用啟動分析 | Launcher 應用啟用普通安卓應用 | 應用進程分析 ) 博客中講解了用戶點擊圖標之后的操作 , 通過進程間通信 , 通知 Zygote 進程為新的 Android 應用創建新進程 , 并為其分配內存 , 為之后的 ActivityThread 主線程啟動做準備 ; 并從進程角度分析了冷啟動 ( 創建新進程 ) , 熱啟動區別 ( 復用舊進程 ) ;

應用啟動截止到此處 , 全部是系統完成的工作 , 開發者無法干預該過程 ;


【Android 性能優化】應用啟動優化 ( 安卓應用啟動分析 | ActivityThread 主函數分析 | 應用初始化 | 啟動優化項目 ) 博客對應用入口類 , 即 ActivityThread 主函數類進行了分析 , 從這里開始初始化應用的 Application , Activity , 其中就發現應用啟動時 , 需要調用 Application 和 Launcher Activity 的 onCreate 方法 , 這兩個方法中絕對不能執行耗時操作 , 這也是啟動優化唯一可以優化的地方 ;

啟動優化就是在 Application 和 Launcher Activity 中不要做任何耗時操作即可 ;





三、 啟動白屏解決方案



【Android 性能優化】應用啟動優化 ( 主題背景圖片設置 | 設置透明主題背景 | 設置應用啟動主題背景、啟動后恢復主題 ) 該博客中只是提供了一個權益之計 , 建議設置透明背景 , 所有的應用都設置一下 , 防止出現白屏 , 造成的用戶體驗不好 , 但是不建議只使用這種方案 , 同時也要優化下啟動速度 ;

總結

以上是生活随笔為你收集整理的【Android 性能优化】应用启动优化 ( 阶段总结 | Trace 文件分析及解决方案 | 源码分析梳理 | 设置主题的方案总结 ) ★的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。