
-- 作者 謝恩銘 轉(zhuǎn)載請注明出處
一句命令搞定截屏
在安卓開發(fā)中, 我們很多時候都要用到截屏這個功能。
有時是為了演示, 有時是為了報告問題(比如在Bugzilla, Jira, Redmine等Bug跟蹤系統(tǒng)中上傳截圖), 有時是為了發(fā)布應(yīng)用時要用的截圖。
今天就來聊聊如何快速只用一句簡單的命令就搞定截圖。
由繁到簡的演進(jìn):三種方法
這篇主要講Linux系統(tǒng)下如何Android手機(jī)截屏(當(dāng)然了,Windows下也類似,可以自行嘗試):
首先你的Linux中要安裝了adb(也就是Android Debug Bridge,可以在你下載的Android的SDK的platform-tools文件夾中找到,只要把路徑加入PATH環(huán)境變量就可以)。

而且你的Android手機(jī)須要開啟了Develop options (開發(fā)者選項,要開啟好像一般是在Settings(設(shè)置)里的About device(關(guān)于本機(jī))中按7次Build number那個地方),如下:

那么截屏有哪幾種方式呢?應(yīng)該有很多,這里提供由繁到簡的三種方法,也記錄了小編從事Android開發(fā)之后的截屏方法的“演進(jìn)”。哈哈,以前是挺蠢萌的(話外音:小編你只有蠢,沒有萌,好不...):
1. 手動+adb命令
用你的手機(jī)的組合鍵來截屏(一般是同時按下Home鍵和電源鍵),然后用adb pull來取回本地:
adb pull /手機(jī)的截屏圖片保存路徑/xxx.png
2. 純adb命令
1.使用screencap這個命令,配合adb命令來實現(xiàn)截圖并保存到手機(jī)的/sdcard目錄中:
adb shell screencap -p /sdcard/hello.png
2.用adb pull將手機(jī)中的文件取回本地:
adb pull /sdcard/hello.png
成功運行上面兩行命令之后,你的家目錄~中就會多出一個hello.png的圖片。
當(dāng)然了,截圖時注意不要鎖屏,不然截出來就是黑屏。
3. Shell函數(shù)+命令
第二種用adb命令的方式已經(jīng)比較簡單快捷了。但是,作為程序員,難道每次截屏都要輸入這兩個命令嗎?簡直不能忍。
程序員要學(xué)會“偷懶”
一般Ubuntu(或其他Linux發(fā)行版,例如Fedora)中默認(rèn)的Shell程序是Bash。因此我們其實可以在.bashrc中寫一個函數(shù):
1.用你慣用的文本編輯器打開.bashrc這個bash的配置文件,位于你家目錄中:
vim ~/.bashrc
2.在.bashrc里加入以下的函數(shù)(名字是droidshot 。當(dāng)然了,你可以隨便取什么名字):
# For Android Device Screenshot
function droidshot() {
adb shell screencap -p /sdcard/$1.png && adb pull /sdcard/$1.png
}
3.保存,退出。然后,用source命令使修改立即生效:
source ~/.bashrc
4.之后,使用很簡單,在終端中輸入:
droidshot hello
hello就是你傳給droidshot這個函數(shù)的第一個參數(shù)(你也可以隨便取其他名字),相當(dāng)于函數(shù)里那個$1。
因此,在你的家目錄~下就會多了一個 hello.png的圖片,就是你剛才先截圖,保存到Android手機(jī)的/sdcard目錄下,再從Android手機(jī)中用adb pull來取回到本地的那張屏幕截圖。

screen.png這張截圖就如上圖這樣,這張是在三星的Galaxy S7上截的。
是不是超級省事呢?以后你想創(chuàng)建其他截屏圖片,只要在終端輸入:
droidshot hehe
droidshot haha
等等,就可以在本地獲得hehe.png,haha.png這些圖片了。
下期我們繼續(xù)分享Android開發(fā)小技巧。
人世間,
萬千情感皆有溫度,
千萬代碼似有性格。
這里有原創(chuàng)教程,IT叢林......
和你一起探索程序人生。
我是謝恩銘,在巴黎奮斗的嵌入式軟件工程師。
個人簡介
熱愛生活,喜歡游泳,略懂烹飪。
人生格言:“向著標(biāo)桿直跑”