審UI 還在找設備一個一個看效果?一段腳本都搞定
一、前言
昨天發 wm 適配的文章之后,發現好像還是不方便。每次都需要一次次修改參數,來完成對設備參數的調整。而且通常,我們都是一個頁面一個頁面開發的,如果可以一次將一個頁面,在不同設備的顯示情況,截圖出來,應該就會更方便一點。
有關 wm 命令相關的內容,不了解的可以先看看之前的文章《當你只有一個設備的時候,如何做好屏幕適配》。
所以我寫了個 Python 的腳本,用的上的就看看,用不上的權當娛樂了。
因為 Python 的版本差異,這里特別說明一下,我這邊的運行環境是 2.7.10。
二、利用 Python 去修改參數并截圖
利用 Python 寫邏輯腳本還是很方便的,大概需要用到的就是 Python、adb 命令、wm 命令等等。
先說說思路吧。
其實邏輯很簡單,大概的步驟如下:
利用 Python 去調用 adb shell wm 命令,修改屏幕參數。
再使用 adb shell screencap 進行截屏。
將截到的圖片,利用 adb pull 命令,復制到本地。
根據配置的設備信息,重復以上邏輯。
邏輯還是很清晰的,直接上代碼了。
先做一下基本的定義,將不變的命令提取出來,并獲取到當前的腳本的目錄地址。
在初始化的時候,判斷本地是否有 devicescreen 文件夾,如果沒有就創建它。
到最重要的方法了,根據傳遞的參數,修改設備的屏幕信息,并截圖保存到本地。
因為有一些設備上,修改了參數之后設備會有卡頓和刷新的情況,所以在這些操作之后,都粗暴的等待了一會兒,我這里設定的是 3s。
使用完成之后,在將屏幕 reset 到最初的狀態。
到這里就已經完成了主要邏輯的編寫,然后只需要配置好我們需要的設備參數即可。這里搜集了比較常見的設備。

完成之后,調用 python start.py 或者在 PyCharm 里直接運行。最終會把運行的結果,保存在本地的 devicescreen 目錄下。
這是整個項目的結構。
在 devicescreen 目錄下,就可以看到我們需要的不同設備的截圖了。
這里我用了掘金的個人主頁頁面,可以看到在不同設備下顯示效果的截屏。
三、小結
其實 wm 命令,還是有一些缺陷的,最常見的就是修改了屏幕參數,頁面并沒有刷新正確,這個時候退出 App 再重新進入就好了。
這里的使用方式只能作為一個輔助,如果遇上無法正確修改的頁面,就需要退出重進的話,這樣一個簡單的腳本就無效了。
所以這個腳本只適用于部分場景,非所有場景都適用。
雖然關鍵代碼文內都有,但是如果你想要源碼的話,可以在公眾號回復關鍵字『適配腳本』。

【本文為51CTO專欄作者“張旸”的原創稿件,轉載請通過微信公眾號聯系作者獲取授權】