QPM 之懸浮窗助力效能優化

2021-09-11 17:27:12 字數 1628 閱讀 4417

讓我們來嘗試做一些可以視覺化的懸浮窗功能吧,裡面可以展示一些基礎的效能指標資料。

乙個 apk 會有乙個固定的包名,但是在某些特殊場景下,卻會展示多個包名,例如:測試包,正式包,變種包,推送測試包等等,給 qpm 展示當前應用的包名,在某些時候可以方便我們定位問題。舉個例子:我們之前一直在測試推送包,有時候需要切換到正式包,在兩個包中切換各種rd,st環境,最後我都不記得我用的什麼包,只能解除安裝了,重新安裝。qpm 的懸浮窗可以直接展示當前應用的包名,看一眼就知道了,其實也可以把當前程序+執行緒號列印出來,方便開發同學分析問題。

試想,做了5年的專案,交給新來你接手?或者同事離職,丟下一堆坑,需要你來填坑。根據**梳理流程後,也不一定能立刻接手,如果根據頁面找activity,乙個字————累!

如果能直接展示當前介面的 activity 名字,是不是更容易一些呢?

介面怎麼這麼卡啊,快優化下。懵逼的你可能會想這要從**入手?先從介面渲染,還是從業務角度? 關鍵是我們需要知道在頁面的什麼場景下會出現問題,有乙個直觀指標就容易判斷了。當 cpu 到達 200% 的時候,記憶體劇增,那肯定有問題,可以用效能工具對該頁面詳細的分析。 一般先看看在該介面的 cpu 和 記憶體是否異常,再結合業務邏輯把相關的資料提前或者延遲獲取,減少同一時刻併發獲取,從而減少主介面卡頓。

這是什麼鬼?還記得曾經的老大說要復用執行緒,別單獨搞麼。如果你發現 200 多個執行緒,那你就得考慮下是否需要執行緒池了。這裡可以依據現有邏輯來處理,並非絕對性的。

還記得剛學 activity 那會兒麼,activity的 四種 launchmode,這裡可以記錄乙個棧裡面的 activity 的順序。方便你直觀了解棧中的情況。

網路情況如何? 比方說我用的是 wifi, 在某些角落網速很差,甚至沒流量資料,我們都希望可以了解。

基於 android 5.0 的 api,錄製整個螢幕,方便大家復現某些關於操作記錄的問題。

需要配合相應的設定,我們就可以在 webview 中對任何乙個網頁進行非同步檢測,例如獲取當前頁面位址,首頁白屏載入時間,以及每個資源的請求時間,和請求資源位址。非常容易。

以下的乙個唯一標識,表示乙個 item, 如果要新增多個,可以把唯一標示設定為不同的。

qpmmanager.getinstance().showbigtext(flag, bigtext); 第乙個引數 flag 是唯一標示, 第二個 bigtext 是自定義懸浮窗中顯示的所有文字資料。

qpmmanager.getinstance().showkeyvalue(flag, key, value); 第乙個引數 flag 是唯一標示, 第二個 key 是自定義懸浮窗中顯示的 key 值,第三個是 懸浮窗中的 value 值。

qpmmanager.getinstance().showkeypic(flag, key, picres); 第乙個引數 flag 是唯一標示, 第二個 key 是自定義懸浮窗中顯示的 key 值,第三個是 懸浮窗中的 pic res 中的資源值。

qpmmanager.getinstance().showcustom(flag,qpmtemplatecustomrenderer); 第乙個引數 flag 是唯一標示, 第二個 qpmtemplatecustomrenderer 是自定義懸浮窗中你們要自己新增的布局,可以寫乙個類,繼承自qpmtemplatecustomrenderer,實現裡面的方法,懸浮窗上就可以顯示對應的內容。

QPM 之懸浮窗助力效能優化

讓我們來嘗試做一些可以視覺化的懸浮窗功能吧,裡面可以展示一些基礎的效能指標資料。乙個 apk 會有乙個固定的包名,但是在某些特殊場景下,卻會展示多個包名,例如 測試包,正式包,變種包,推送測試包等等,給 qpm 展示當前應用的包名,在某些時候可以方便我們定位問題。舉個例子 我們之前一直在測試推送包,...

QPM 之懸浮窗助力效能優化

讓我們來嘗試做一些可以視覺化的懸浮窗功能吧,裡面可以展示一些基礎的效能指標資料。乙個 apk 會有乙個固定的包名,但是在某些特殊場景下,卻會展示多個包名,例如 測試包,正式包,變種包,推送測試包等等,給 qpm 展示當前應用的包名,在某些時候可以方便我們定位問題。舉個例子 我們之前一直在測試推送包,...

QPM 之懸浮窗設定資訊

手機的基本資訊 androidmanifest.xml 資訊 可配置的開關 網路介面 再也不用 去手機的複雜介面檢視各種資料 再也不用 因為某些資訊沒有,查詢半天。是否 root,sdk 版本,手機型號,網路,名稱,ip,mac 位址,螢幕解析度,cpu 架構等等資訊。遇到關鍵的資料,還能複製。這裡...