Ⅰ 安卓截屏命令
在安卓開發中, 我們很多時候都要用到截屏這個功能。
有時是為了演示, 有時是為了報告問題(比如在Bugzilla, Jira, Redmine等Bug跟蹤系統中上傳截圖), 有時是為了發布應用時要用的截圖。
今天就來聊聊如何快速只用一句簡單的命令就搞定截圖。
由繁到簡的演進:三種方法
這篇主要講Linux系統下如何android手機截屏(當然了,Windows下也類似,可以自行嘗試):
首先你的Linux中要安裝了adb(也就是Android Debug Bridge,可以在你下載的Android的SDK的platform-tools文件夾中找到,只要把路徑加入PATH環境變數就可以)。
而且你的Android手機須要開啟了Develop options (開發者選項,要開啟好像一般是在Settings(設置)里的About device(關於本機)中按7次Build number那個地方),如下:
那麼截屏有哪幾種方式呢?應該有很多,這里提供由繁到簡的三種方法,也記錄了小編從事Android開發之後的截屏方法的「演進」。哈哈,以前是挺蠢萌的(話外音:小編你只有蠢,沒有萌,好不...):
1. 手動+adb命令
用你的手機的組合鍵來截屏(一般是同時按下Home鍵和電源鍵),然後用adb pull來取回本地:
adb pull /手機的截屏圖片保存路徑/xxx.png
2. 純adb命令
1.使用screencap這個命令,配合adb命令來實現截圖並保存到手機的/sdcard目錄中:
adb shell screencap -p /sdcard/hello.png
2.用adb pull將手機中的文件取回本地:
adb pull /sdcard/hello.png
成功運行上面兩行命令之後,你的家目錄~中就會多出一個hello.png的圖片。
當然了,截圖時注意不要鎖屏,不然截出來就是黑屏。
3. Shell函數+命令
第二種用adb命令的方式已經比較簡單快捷了。但是,作為程序員,難道每次截屏都要輸入這兩個命令嗎?簡直不能忍。
程序員要學會「偷懶」
一般Ubuntu(或其他Linux發行版,例如Fedora)中默認的Shell程序是Bash。因此我們其實可以在.bashrc中寫一個函數:
1.用你慣用的文本編輯器打開.bashrc
Ⅱ 安卓手機app裡面ScreenCap有什麼作用
錄屏或者說截圖
Ⅲ Android命令截屏srenncap pc 端adb截圖成功,但是用代碼執行為空白圖
java層代碼根本就獲取不到root許可權,
Runtime.getRuntime().exec("su -c 'screencap /mnt/sdcard/test.png'")
Ⅳ ADB怎麼自動根據報停界面截屏
一、使用數據線連接手機截圖
1、首先關閉手機管理軟體(91助手、360助手等),然後運行【cmd】;
截圖命令
adb shell /system/bin/screencap -p /sdcard/screenshot.png將截圖復制到電腦盤中adb pull /sdcard/screenshot.png E:\download
2
二、手機無線截圖(電腦與手機必須在同區域網內)
1、下載並安裝《adbWireless》,需要root許可權~
2、運行adbWireless,點擊按鈕啟動adbWireless,然後會提示設備的IP地址;
3
3、輸入 adb connect IP:埠號連接到手機,然後就可以截圖了。。
截圖命令 adb connect 192.168.1.106:5555 adb shell /system/bin/screencap -p /sdcard/screenshot.png adb pull /sdcard/screenshot.png E:\download
END
方法/步驟2
一句命令搞定截屏
在安卓開發中, 我們很多時候都要用到截屏這個功能。
有時是為了演示, 有時是為了報告問題(比如在Bugzilla, Jira, Redmine等Bug跟蹤系統中上傳截圖), 有時是為了發布應用時要用的截圖。
今天就來聊聊如何快速只用一句簡單的命令就搞定截圖。
2
由繁到簡的演進:三種方法
這篇主要講Linux系統下如何Android手機截屏(當然了,Windows下也類似,可以自行嘗試):
首先你的Linux中要安裝了adb(也就是Android Debug Bridge,可以在你下載的Android的SDK的platform-tools文件夾中找到,只要把路徑加入PATH環境變數就可以)。
3
而且你的Android手機須要開啟了Develop options (開發者選項,要開啟好像一般是在Settings(設置)里的About device(關於本機)中按7次Build number那個地方),如下:那麼截屏有哪幾種方式呢?應該有很多,這里提供由繁到簡的三種方法,也記錄了小編從事Android開發之後的截屏方法的「演進
Ⅳ 如何在命令行截屏
1.在G1里的設置->應用程序->開發->里usb調試勾上
2.運行你的安裝目錄下的D:\unsetup\android-sdk-windows-1.5_r1\tools\ddms.bat,選擇Device->Screen
capture就可以截屏了。
Ⅵ dell筆記本電腦的截屏命令快捷鍵是什麼
1、Ctrl + PrScrn
2、Alt + PrScrn
3、Ctrl + Alt + A
介紹三種截屏的快捷鍵:
第一種:Ctrl + PrScrn 使用這個組合鍵截屏,獲得的是整個屏幕的圖片。
(6)android截圖命令擴展閱讀:
其他電腦快捷鍵命令:
CTRL+N新建一個新的文件
CTRL+O打開「打開文件」對話框
CTRL+P打開「列印」對話框
CTRL+S保存當前操作的文件
CTRL+X剪切被選擇的項目到剪貼板
Ctrl+w 關閉當前網頁
CTRL+INSERT 或 CTRL+C復制被選擇的項目到剪貼板
SHIFT+INSERT 或 CTRL+V粘貼剪貼板中的內容到當前位置
另外,Android手機屏幕截圖方法:同時按下電源鍵+音量調節鍵,Android 4.0截圖成功後,圖片會被保存在媒體庫中。截屏後,只需要打開媒體庫就可以找到剛才截取的屏幕圖像了。
這個功能對於游戲玩家在不退出遊戲的情況下可以很方便地截取游戲畫面。
Ⅶ 如何在Android裡面使用代碼截屏
回答:Android SDK的截屏
方法步驟:如下
方法一:
(1)主要就是利用SDK提供的View.getDrawingCache()方法。網上已經有很多的實例了。首先創建一個android project,然後進行Layout,畫一個按鍵
HelloAndroid.java實現代碼為:packagecom.example.helloandroid;
這個代碼會在按下app中按鍵的時候自動在手機的/sdcard/目錄下生成一個時間戳命名的png截屏文件。
這種截屏有一個問題,就是只能截到一部分,比如電池指示部分就截不出來了。
(2)在APK中調用「adb shell screencap -pfilepath」 命令
該命令讀取系統的framebuffer,需要獲得系統許可權:
(1). 在AndroidManifest.xml文件中添加
(3).利用系統的API,實現Screenshot,這部分代碼是系統隱藏的,需要在源碼下編譯,
1).修改Android.mk, 添加系統許可權
LOCAL_CERTIFICATE := platform
2).修改AndroidManifest.xml 文件,添加
許可權
方法二:
Android ddmlib進行截屏
Android本地編程(Native Programming)讀取framebuffer
(1)命令行,框架的截屏功能是通過framebuffer來實現的,所以我們先來介紹一下framebuffer。
Linux FrameBuffer 本質上只是提供了對圖形設備的硬體抽象,在開發者看來,FrameBuffer 是一塊顯示緩存,往顯示緩存中寫入特定格式的數據就意味著向屏幕輸出內容。所以說FrameBuffer就是一塊白板。例如對於初始化為16 位色的FrameBuffer 來說, FrameBuffer中的兩個位元組代表屏幕上一個點,從上到下,從左至右,屏幕位置與內存地址是順序的線性關系。幀緩存有個地址,是在內存里。我們通過不停的向frame buffer中寫入數據, 顯示控制器就自動的從frame buffer中取數據並顯示出來。全部的圖形都共享內存中同一個幀緩存。
方法三:Android截屏實現思路
Android系統是基於Linux內核的,所以也存在framebuffer這個設備,我們要實現截屏的話只要能獲取到framebuffer中的數據,然後把數據轉換成圖片就可以了,android中的framebuffer數據是存放在 /dev/graphics/fb0 文件中的,所以我們只需要來獲取這個文件的數據就可以得到當前屏幕的內容。
現在我們的測試代碼運行時候是通過RC(remote controller)方式來運行被測應用的,那就需要在PC機上來訪問模擬器或者真機上的framebuffer數據,這個的話可以通過android的ADB命令來實現。
注意:
1、需要在AndroidManifest.xml中加入代碼:android:sharedUserId="android.uid.system"。
2、由於調用了@hide的API,所以編譯得時候請使用makefile編譯。或者通過在Eclipse中添加Jar文件通過編譯。
3、此代碼只在Android4.0中使用過,2.3的就沒去做測試了。
補充說明:
利用TakeScreenShotService截圖Android手機一般都自帶有手機屏幕截圖的功能:在手機任何界面(當然手機要是開機點亮狀態),通過按組合鍵,屏幕閃一下,然後咔嚓一聲,截圖的照片會保存到當前手機的圖庫中,
對手機android源碼中通過組合鍵屏幕截圖的整個流程有個大體了解了,在改動中熟悉按鍵的捕獲原理,並且清楚調用的截屏函數介面即可。
Ⅷ 為什麼 Android 截屏需要 root 許可權
android 截屏為什麼需要root許可權?
【主要原因】
andorid系統在調用截圖功能的時候一般會調用命令的形式去截屏,而這些命令在普通用戶許可權下是沒辦法執行的,必須是在root用戶許可權下才能進行截屏。
【主要實現方式和原因】
傳統截屏方式,採用讀取 framebuffer 的方式實現截屏,需要root許可權,Android 3.0以前android sdk提供的截屏方式。
SurfaceFlinger 方式截屏,在 Android 4.0 里提供的一種解決方案,改方案需要系統級許可權READ_FRAMEBUFFER 許可權,由於是系統許可權也必須是root的許可權下才可以進行截屏
由於目前大多數android開發的基礎版本都是在4.0的基礎上開發,所以會看到很多第三方的截屏軟體截屏需要在root的許可權下才能進行截屏。
【另外】
並不是所有的截屏都必須需要root的許可權,其實在眾多截屏方案中還有一種截屏方案不需要root許可權也可以截圖。
主要實現方式
Android 截屏 -- ddms方式。
實現原理
主要是通過執行adb shell命令的形式進行截屏。而調用這些命令會實際上也要系統許可權,但是這個方法特殊的地方就在他其實是通過adb shell進行截圖的時候把命令個了設備上的 adbd 守護進程,而這個進程間接的啟動了screencap,也就是開啟了上面的方法二中的SurfaceFlinger 截屏方式的後段截屏步奏,所以導致不需要root許可權進行截屏。
其中:
adbd 是以 shell 用戶執行的, 而系統為 shell 用戶分配 graphics 組,所以 shell 用戶是有許可權調用 surfaceflinger 的介面的。
【最後】
推薦使用不需要root許可權截屏的方案。
Ⅸ 安卓版的按鍵精靈怎麼截屏
手機插上USB線鏈接電腦
電腦打開安卓按鍵精靈助手
鏈接你的手機,提示鏈接成功後下一步
點擊截屏,即可截圖手機的屏幕!
2-4步驟我用圖片+紅框標示了,第一步就無需細說了吧~~要點是第3部必須鏈接成功手機!
Ⅹ 如何在安卓Wear上截圖
給你的安卓Wear表盤截個圖,是一個展示的便捷方法。遺憾的是,在安卓Wear設備上截圖並不是一件那麼容易的事。實際上,要是不連接到電腦上並使用命令行捕獲和導出截圖的話,你是不能在你的手錶上截圖的。
如果你很熟悉怎樣使用安卓設備以及ADB命令,很可能你已經知道接下來步驟應該怎麼做了。但是對於那些還不是那麼熟悉的人來說哦,你需要下載並且安卓SDK工具以及適合你設備的驅動程序。你可以先瀏覽安卓開發者網頁,在上面你就能找到安卓SDK以及開發者工具。
安裝了安卓SDK之後,在嘗試給你的安卓Wear設備截圖之前,你需要在你的手錶上啟用開發者模式。你可以點擊進去「設置」,然後是「關於」,點擊「構建版本號」總共七次,或是你看到一個提示說明你已經是一名開發者了。然後一個新的「開發者選項」就會在「關於」列表裡面出現(如上圖)。
從這兒開始,通過USB連接你的手錶到電腦上,然後輸入幾個ADB指令。記得,如果是Mac用戶,你需要在指令之前添加「/」(不需要加引號)。
1.截圖:
2.輸入指令:adb shell screencap -p /sdcard/screenshot.png
3.把截圖轉到你的電腦上去
4.輸入指令:adb pull /sdcard/screenshot.png
整個輸入ADB的流程可能有點嚇人,又有點讓人疑惑,但是不要沮喪。每個人都需要從某個地方開始的。就我個人而言,我從Android Central的這個指南啟動並運行這款設備開始,非常好用!如果你遇到問題並且想要設置好它,記得要瀏覽我剛剛鏈接的那個安卓開發者頁面。這個頁面的內容很易懂,它的確能夠幫助新手。