審 UI 還在找裝置一個一個看效果?一段指令碼都搞定

承香墨影發表於2017-09-15

版權宣告:

本賬號釋出文章均來自公眾號,承香墨影(cxmyDev),版權歸承香墨影所有。

每週會統一更新到這裡,如果喜歡,可關注公眾號獲取最新文章。

未經允許,不得轉載。

一、前言

昨天發 wm 適配的文章之後,發現好像還是不方便。每次都需要一次次修改引數,來完成對裝置引數的調整。而且通常,我們都是一個頁面一個頁面開發的,如果可以一次將一個頁面,在不同裝置的顯示情況,截圖出來,應該就會更方便一點。

有關 wm 命令相關的內容,不瞭解的可以先看看之前的文章《當你只有一個裝置的時候,如何做好螢幕適配》。

所以我寫了個 Python 的指令碼,用的上的就看看,用不上的權當娛樂了。

因為 Python 的版本差異,這裡特別說明一下,我這邊的執行環境是 2.7.10。

二、利用 Python 去修改引數並截圖

利用 Python 寫邏輯指令碼還是很方便的,大概需要用到的就是 Python、adb 命令、wm 命令等等。

先說說思路吧。

其實邏輯很簡單,大概的步驟如下:

  1. 利用 Python 去呼叫 adb shell wm 命令,修改螢幕引數。
  2. 再使用 adb shell screencap 進行截圖。
  3. 將截到的圖片,利用 adb pull 命令,複製到本地。
  4. 根據配置的裝置資訊,重複以上邏輯。

邏輯還是很清晰的,直接上程式碼了。

先做一下基本的定義,將不變的命令提取出來,並獲取到當前的指令碼的目錄地址。

/s-fa.png
/s-fa.png

在初始化的時候,判斷本地是否有 devicescreen 資料夾,如果沒有就建立它。

/s-createf.png
/s-createf.png

到最重要的方法了,根據傳遞的引數,修改裝置的螢幕資訊,並截圖儲存到本地。

/s-changescreen.png
/s-changescreen.png

因為有一些裝置上,修改了引數之後裝置會有卡頓和重新整理的情況,所以在這些操作之後,都粗暴的等待了一會兒,我這裡設定的是 3s。

/s-reset.png
/s-reset.png

使用完成之後,在將螢幕 reset 到最初的狀態。

到這裡就已經完成了主要邏輯的編寫,然後只需要配置好我們需要的裝置引數即可。這裡蒐集了比較常見的裝置。

/s-runcode.png
/s-runcode.png

完成之後,呼叫 python start.py 或者在 PyCharm 裡直接執行。最終會把執行的結果,儲存在本地的 devicescreen 目錄下。

這是整個專案的結構。

/s-project.png
/s-project.png

在 devicescreen 目錄下,就可以看到我們需要的不同裝置的截圖了。

/s-screen.png
/s-screen.png

這裡我用了掘金的個人主頁頁面,可以看到在不同裝置下顯示效果的截圖。

/s-cap.jpg
/s-cap.jpg

三、小結

其實 wm 命令,還是有一些缺陷的,最常見的就是修改了螢幕引數,頁面並沒有重新整理正確,這個時候退出 App 再重新進入就好了。

這裡的使用方式只能作為一個輔助,如果遇上無法正確修改的頁面,就需要退出重進的話,這樣一個簡單的指令碼就無效了。

所以這個指令碼只適用於部分場景,非所有場景都適用。

雖然關鍵程式碼文內都有,但是如果你想要原始碼的話,可以在公眾號回覆關鍵字『適配指令碼』。

公眾號二維碼.jpg
公眾號二維碼.jpg

點贊或者分享吧~

相關文章