QPM 開源地址:github.com/ZhuoKeTeam/…
曾經我和你們一樣,成天疲於業務開發,一天天除了加班,還是加班。可是呢,bug 還是不斷,看著人家的 app 那麼流暢,為啥我做的這麼挫?What’s fuck! 慢慢的,掌握到一些效能優化的技巧後,熟練的搞起優化,app 就不再那麼卡了,看著得意之作,心裡滿滿的喜悅。
緣起——GT
當時看到騰訊 GT 的懸浮窗,眼前一亮,這個東西好使,不錯不錯。但是時間就了以後,發現每個手機要看資料必須先安裝一個 GT,而且有些功能需要 root 以後才能檢視。我想我們 app 中的某些常變的資料要是能展示到 GT 的懸浮窗就方便很多啦,於是嘗試把 GT 放到我們 App 裡面去,此過程超級麻煩,好不容易加進去了,結果我們的 App 直接增大了 3MB, 雖說我們的 App 已經 70MB 了,增加 3MB 也沒事,但是我怎麼能忍受得了,一個元件就要增加 3MB 呢? 於是我想結合我們 App 的特性,自己搞一個 QPM,功能很簡單,把一些 GT 裡面的資料展示到 QPM 中,於是參考 GT,開始實施。
輪子已經有了,幹嘛還要再造一個輪子呢? 其實不然,雖然有了輪子,但是這個輪子和我的車型號不匹配嘛,無法發揮到極致。於是參考輪子的大體框架,改造成屬於我們自己的輪子。貼個花邊,換個螺絲釘,弄個小號的。哈哈哈,最後終於弄出了一個簡易版本,但是太粗糙了,我們自己都不想用。
緣起——FPS
突然接手一個老專案,啥都不太瞭解,雖然 UI 介面卡卡的,但是不能輕易優化,萬一優化後,背鍋咋弄?就先這樣吧,直到某一天老大說卡的不行啦,必須優化。好吧,那就慢慢優化吧。可是心裡總沒譜,怎麼樣算優化好呢? 沒個啥指標的,還真不好弄。假如有一個工具可以告訴我哪些介面卡? 卡到什麼程度,優化之後可以達到什麼樣的效果,該多好呀。在某些手機上有系統自帶的 FPS 指標,可是其他手機沒有嘛,總不能用該手機作為評判標準吧。
緣起——棧頂 Activity 名字
想起之前看同事的手機,每開啟一個 App, 就能顯示當前 App 的包名和當前的 Activity 的名字,感覺很不錯,但是沒啥用吧。他說:『我剛來,老大分配了一些任務,但是我不太熟悉程式碼,具體頁面怎麼查,不是很方便,有這個就可以輕鬆搞定啦!』 很有道理嘛,可以加一個。某天我在修復 bug 的時候,真找不到頁面,想問問業務同學,這是哪個頁面,他直接讓我用命令列獲取棧頂 Activity 名字,而之前同事說的那個外掛應用,需要翻牆下載。從此,我堅定了必須要把這個功能加到我的 QPM 中,我想讓跟我遇到過同樣問題的人,省去這些麻煩。每次小小的進步,之後回頭看那就是一大步。
緣起——螢幕錄製
功能都差不多了,突然有天,一個測試同學,給群裡扔了一個小視訊,是出現某個 bug的視訊, 用另外一個手機錄屏的。我在想要是能把這個加到 QPM 裡面就好了。過來幾天,我手機上出現了一個問題,我用小米自帶的錄屏工具,輕鬆就錄製了,發給大佬們。但是大佬問我,怎麼錄製呢? 我說用系統自帶的工具,他說他錄製不了,隨後讓他下載軟體進行錄製。這個過程感覺挺麻煩的,更加堅定了我的決心。經過查詢原來 Android 5.0 以上系統就提供了方法哈,那我就直接放到我們的 QPM 中,之後遇到這類需要截圖,但是手頭沒工具的情況,就可以直接開啟 QPM 錄屏了,又是一個棒棒噠的功能。