android 使用shell模擬觸屏_[Android]通過adb shell input上報命令模擬屏幕點擊事件【轉】...

常用的 input上報命令:

input text 1234 實際向界面注入1234文字,有輸入框,能明顯看到效果

input keyevent 4 鍵盤事件,4 為返回

input tap 100 300 單擊觸屏事件 ,模擬點擊x=100 y = 300 位置

input swipe 100 300 500 300 觸屏滑動事件,模擬滑動,從x =100

y = 300 滑動到x=500 y=300位置

input press 模擬按下軌跡球

input roll 100 300 模擬軌跡球滑動 x 方向100 y方向300

獲取坐標方法:

第一步:計算比例

adb shell getevent -p | grep -e “0035” -e “0036”

獲得event 體系里 寬(0035)和高(0036)

以當前我使用的手機為例,命令會輸出如下信息:

0035 : value 0, min 0, max 1602, fuzz 0, flat 0, resolution 0

0036 : value 0, min 0, max 2503, fuzz 0, flat 0, resolution 0

0035(寬) max 1602

0036(高) max 2503

計算比例(用已知的屏幕分辨率,如1080p即:1080(寬) * 1920(高)):

rateW = 1080(手機屏幕的寬) / 1602(event里0035的max) = 0.674

rateH = 1920(手機屏幕的高) / 2503(event里0036的max) = 0.767

第二步:點擊屏幕計算點擊位置的坐標

adb shell getevent | grep -e “0035” -e “0036”

點擊屏幕上需要的位置,會有如下輸出:

/dev/input/event0: 0003 0035 00000341

/dev/input/event0: 0003 0036 000008ec

把0035和0036后面的位置數據從16進制轉化為10進制

width = 0x341 = 3*16*16 + 4*16 + 1 = 833

height = 0x8ec = 8*16*16 + 14*16 + 12 = 2284

這是在event體系里的位置,將其轉化為屏幕位置

screenW = width*rateW = 833*0.674 = 561

screenH = height*rateH = 2284*0.767 = 1751

終于算出來了

剛剛點擊的屏幕位置坐標就是(561, 1751)

android adb shell input各種妙用

項目中使用一個開發版,預留兩個usb接口.類似華碩TinkerBoard. 一個用戶連接攝像頭,一個用于adb調試.結果就沒了鼠標的接口.多次切換鼠標和攝像頭插頭,非常不方便,帶攝像頭的app沒法調試 ...

Android模擬屏幕點擊input tap替代解決方案

動機解釋 本來直接使用 adb shell -> input 即可模擬 鍵盤事件,觸屏事件keyevent ,text,tap?但是手上的這臺目標Android機4.0.3系統的input只支持 ...

我的Android進階之旅------>Android中通過adb shell input來模擬滑動、按鍵、點擊事件

今天在維護公司的一個小項目的時候,發現按公司手機的某個物理按鍵,激活相應的Service后,會在屏幕上模擬的點擊了屏幕的某個坐標點.好家伙,原來是之前該項目的版本是按這個物理按鍵后,會彈出一個對話框, ...

Android:adb shell 命令詳解

安卓系統是基于Linux系統開發,也就支持常見的Linux的命令,這些命令都保存在手機“/system/bin”的目錄下,通過adb shell 便可以調用這些命令. 進入“/system/bin”該 ...

Android 執行 adb shell 命令

Android 執行Adb shell 命令大多需要root權限,Android自帶的Runtime. getRuntime().exec()容易出錯,在網上找到了一個執行adb shell命令的類 ...

Android 通過adb shell命令查看內存,CPU,啟動時間,電量等信息

Android 通過adb shell命令查看內存,CPU,啟動時間,電量等信息 ? by:授客 QQ:1033553122 1.? 查看內存信息 1)查看所有內存信息 命令: dumpsys mem ...

adb shell input keyevent code詳解

adb shell input keyevent 7 # for key '0' adb shell input keyevent 8 # for key '1' adb shell input ke ...

Android自動化----adb shell,appium,uiautomator2

1.區別 1,adb shell腳本的方式 不但可以在有電腦的情況下使用,通過數據線連接電腦然后adb shell命令,而且還可以打包成app,在手機的終端使用adb shell命令. 2,appiu ...

python(或BAT腳本)自動執行adb shell以后的命令

最近在用python做一個小工具,自動執行一些adb shell命令,使用subprocess.Popen來實現. ? 不過遇到個問題就是執行adb shell后就無法執行后面adb shell里的命 ...

隨機推薦

小結一下前段時間做的rpgdemo

雖然說已經是徹底放棄繼續做那個demo了(代碼結構混亂,想增加新功能非常的不方便),不過還是花了一點心血在里面的,畢竟這是我開始學習unity游戲制作的初衷,不過果然是學的越多越發現自己的不足... ...

T-SQL 語句創建Database的SQL mirroring關系

1 證書部分:principle 和 secondary 端執行同樣操作,更改相應name即可 USE master; --1.1 Create the database Master Key, if ...

MySQL bug:server-id默認被自己主動置為1

昨天同事在做主從時,從庫報例如以下錯誤: Got fatal error 1236 from master when reading data from binary log: 'Misconfigu ...

C++ 常見容器

迭代器. 基本介紹(來源于網絡):迭代器是一種抽象的概念.能夠遍歷容器內的 部分/全部 元素.每個迭代器中包含著元素的地址.? 它可以將 抽象容器 和 泛型算法 結合起來. ? 大致原理: 1)迭代器 ...

ftp一些東東

ftp如果綁定域名 登錄時登錄名應該寫成 域名|用戶名

關于s2sh框架關于hibernate懶加載問題的說明和解決方案

首先我們來看下面這個圖,解釋了一個web程序的一次請求流程! 懶加載異常的說明: 懶加載就是我們在查詢一個對象時,它所有的屬性是否要被查出來! 如果懶加載開啟的話,session在service層就被 ...

Centos-ip配置詳解

1 搭建好Centos ,我這里是CentOS-6.7-x86_64-minimal? 提供一個下載地址 鏈接:http://pan.baidu.com/s/1nvTUTh3 密碼:xewk 2 我是 ...

C# 處理Excel公式(一)——創建、讀取Excel公式

對于數據量較大的表格,需要計算一些特殊數值時,我們通過運用公式能有效提高我們數據處理的速度和效率,對于后期數據的增刪改查等的批量操作也很方便.此外,對于某些數值的信息來源,我們也可以通過讀取數據中包含 ...

hive數據查詢

Fetch task 丟棄了mapreduce的作業的繁重任務,查詢方便簡單 1.第一種方式 2.linux命令行 3.地3中

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445951.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445951.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445951.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用Python連接MySQL并進行CRUD

Tag: MySQL, PyMySQL, Python 準備條件 Python 2.7MySQL 5.5安裝 PyMySQL pip install PyMySQL 放碼過來 創建一數據表 CREATE TABLE users (id int(11) NOT NULL AUTO_INCREMENT,email varchar(255) COLLATE utf8_bin NOT NULL,password varchar(255) COLLATE utf8_bin N…

python網絡爬蟲的方法有幾種_Python網絡爬蟲過程中5種網頁去重方法簡要介紹

一般的,我們想抓取一個網站所有的URL,首先通過起始URL,之后通過網絡爬蟲提取出該網頁中所有的URL鏈接,之后再對提取出來的每個URL進行爬取,提取出各個網頁中的新一輪URL,以此類推。整體的感覺就是自上而下進…

FFmpeg源代碼簡單分析-編碼-avformat_alloc_output_context2()

參考鏈接 FFmpeg源代碼簡單分析:avformat_alloc_output_context2()_雷霄驊的博客-CSDN博客_avformat_alloc_context avformat_alloc_output_context2() 在基于FFmpeg的視音頻編碼器程序中,該函數通常是第一個調用的函數(除了組件注冊函數av…

《深入理解JVM.2nd》筆記(一):走進Java

概述 Java技術體系 Java程序設計語言各種硬件平臺上的Java虛擬機Class文件格式Java API類庫來自商業機構和開源社區的第三方Java類庫 Java發展史 Java虛擬機發展史 展望Java技術的未來 模塊化 混合語言 多核并行 進一步豐富語法 64位虛擬機 實戰:自己編譯…

js監聽只讀文本框_js 動態控制 input 框 的只讀屬性

input 框的只讀屬性: readonly在頁面中直接添加為只讀時,可在input中直接添加 readonly"readonly",但是如果想通過點擊按鈕來改變的話,需要通過js(或jquery)來實現。最近一次使用這個,終于發現了以前寫這…

FFmpeg源代碼簡單分析-編碼-avformat_write_header()

參考鏈接 FFmpeg源代碼簡單分析:avformat_write_header()_雷霄驊的博客-CSDN博客_avformat_write_header avformat_write_header() FFmpeg寫文件用到的3個函數:avformat_write_header(),av_write_frame()以及av_write_trailer()其中av_writ…

《深入理解JVM.2nd》筆記(二):Java內存區域與內存溢出異常

文章目錄概述運行時數據區域程序計數器Java虛擬機棧本地方法棧Java堆方法區運行時常量池直接內存HotSpot虛擬機對象探秘對象的創建第一步第二步第三步第四步最后一腳對象的內存布局對象頭Header第一部分第二部分實例數據Instance對齊填充Padding對象的訪問定位句柄直接指針對象…

vue底部選擇器_Vue組件-極簡的地址選擇器

一、前言本文用Vue完成一個極簡的地點選擇器,我們接下來帶大家實現這個。當然其中也有一些值得學習與注意的地方。話不多說,我們先上demo圖。因為每個人的需要不一樣,我這邊就不在實現更多的功能,所以留有更大的空間供大家增刪改。…

FFmpeg源代碼簡單分析-編碼-avcodec_encode_video()已被send_frame 和 receive_packet替代

參考鏈接 FFmpeg源代碼簡單分析:avcodec_encode_video()_雷霄驊的博客-CSDN博客_avcodec_encode_video2 avcodec_encode_video() 該函數用于編碼一幀視頻數據。函數已被棄用參考鏈接:FFmpeg 新舊版本編碼 API 的區別_zouzhiheng的博客-CSDN博客 send_f…

《深入理解JVM.2nd》筆記(三):垃圾收集器與垃圾回收策略

文章目錄概述對象已死嗎引用計數算法可達性分析算法再談引用finalize():生存還是死亡回收方法區垃圾收集算法標記-清除算法復制算法標記-整理算法分代收集算法HotSpot的算法實現枚舉根結點安全點安全區域垃圾收集器SerialParNewParallel ScavengeSerial OldParallel…

python計算股票趨勢_通過機器學習的線性回歸算法預測股票走勢(用Python實現)...

1 波士頓房價數據分析安裝好Python的Sklearn庫后,在安裝包下的路徑中就能看到描述波士頓房價的csv文件,具體路徑是“python安裝路徑\Lib\site-packages\sklearn\datasets\data”,在這個目錄中還包含了Sklearn庫會用到的其他數據文件&#xff…

FFmpeg源代碼簡單分析-編碼-av_write_frame()

參考鏈接 FFmpeg源代碼簡單分析:av_write_frame()_雷霄驊的博客-CSDN博客_av_write_frame av_write_frame() av_write_frame()用于輸出一幀視音頻數據,它的聲明位于libavformat\avformat.h,如下所示。 /*** Write a packet to an output me…

《深入理解JVM.2nd》筆記(四):虛擬機性能監控與故障處理工具

文章目錄概述JDK的命令行工具jps:虛擬機進程狀況工具jstat:虛擬機統計信息監視工具jinfo:Java配置信息工具jmap:Java內存映像工具jhat:虛擬機堆轉儲快照分析工具jstack:Java堆棧跟蹤工具HSDIS:J…

postgresql 主從配置_Postgresql主從配置

一、簡介PostgreSql在9.0之后引入了主從的流復制機制,所謂流復制,就是從服務器通過tcp流從主服務器中同步相應的數據。這樣當主服務器數據丟失時從服務器中仍有備份。與基于文件日志傳送相比,流復制允許保持從服務器更新。 從服務器連接主服務…

FFmpeg源代碼簡單分析-編碼-av_write_trailer()

參考鏈接: FFmpeg源代碼簡單分析:av_write_trailer()_雷霄驊的博客-CSDN博客_av_malloc av_write_trailer() av_write_trailer()用于輸出文件尾,它的聲明位于libavformat\avformat.h,如下所示 /*** Write the stream trailer to…

科沃斯掃地機器人風扇模塊_掃地機器人不能開機,不能關機,風扇不轉

家庭的重要性自不必再細說,而小編今天要說的則是家庭環境的重要性。一般家庭最少居住三口人,兩個大人加一個孩子,每天回到家,看到家里整潔舒適的環境,心情該是多么地愜意。要是我們每天下班回到家中,看到滿…

MySQL關鍵字EXPLAIN的用法及其案例

文章目錄概述EXPLAIN輸出的列的解釋實例說明select_type的說明UNIONDEPENDENT UNION與DEPENDENT SUBQUERYSUBQUERYDERIVEDtype的說明system,consteq_refrefref_or_nullindex_mergeunique_subqueryindex_subqueryrangeindexALLextra的說明DistinctNot existsRange ch…

FFmpeg源代碼簡單分析-其他-日志輸出系統(av_log()等)

參考鏈接 FFmpeg源代碼簡單分析:日志輸出系統(av_log()等)_雷霄驊的博客-CSDN博客_ffmpeg源碼分析 日志輸出系統(av_log()等) 本文分析一下FFmpeg的日志(Log)輸出系統的源代碼。日志輸出部分的…

FFmpeg源代碼簡單分析-其他-AVClass和AVoption

參考鏈接 FFmpeg源代碼簡單分析:結構體成員管理系統-AVClass_雷霄驊的博客-CSDN博客FFmpeg源代碼簡單分析:結構體成員管理系統-AVOption_雷霄驊的博客-CSDN博客 概述 AVOption用于在FFmpeg中描述結構體中的成員變量。它最主要的作用可以概括為兩個字&a…

oracle手工收集awr報告_oracle手工生成AWR報告方法記錄-阿里云開發者社區

AWR(Automatic Workload Repository)報告是我們進行日常數據庫性能評定、問題SQL發現的重要手段。熟練掌握AWR報告,是做好開發、運維DBA工作的重要基本功。AWR報告的原理是基于Oracle數據庫的定時鏡像功能。默認情況下,Oracle數據庫后臺進程會以一定間隔…