android模擬觸摸
㈠ android怎麼模擬點擊而不受控制
本文講的是通過使用代碼,可以控制手機的屏幕和物理按鍵,也就是說不只是在某一個APP里去操作,而是整個手機系統。
更多問題解決辦法請參考android學習手冊,例子、源碼、文檔全部搞定,採用androidstudo的目錄結構,360手機助手中下載。下面是截圖。
getevent/sendevent
getevent&sendevent 是Android系統下的一個工具,可以模擬多種按鍵和觸屏操作,產生的是raw event,raw event經過event hub處理產生最終的gesture事件。getevent用於獲取當前系統input設備的一些參數和實時事件的數據;sendevent用於發送input事件,這倆命令的作用就是相當於解放了手,可以通過命令直接調用Linux底層來控制手機,工具的源碼位於Android SDK的system/core/toolbox下(sendevent.c getevent.c)。
getevent
用法說明:
[plain] view plain print?
#getevent-h
Usage:getevent[-t][-n][-sswitchmask][-S][-v[mask]][-p][-q][-ccount][-r][device]
-t:showtimestamps
-n:don'tprintnewlines
-s:printswitchstatesforgivenbits
-S:printallswitchstates
-v:verbositymask(errs=1,dev=2,name=4,info=8,vers=16,pos.events=32)
-p:showpossibleevents(errs,dev,name,pos.events)
-q:quiet(clearverbositymask)
-c:
-r:printrateeventsarereceived
# getevent -h
Usage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-p] [-q] [-c count] [-r] [device]
-t: show time stamps
-n: don't print newlines
-s: print switch states for given bits
-S: print all switch states
-v: verbosity mask (errs=1, dev=2, name=4, info=8, vers=16, pos. events=32)
-p: show possible events (errs, dev, name, pos. events)
-q: quiet (clear verbosity mask)
-c: print given number of events then exit
-r: print rate events are received
其中[-t]參數顯示事件的時間戳,[-n]取消事件顯示時的換行符,[-s switchmask]得到指定位的開關狀態,[-S]得到所有開關的狀態,[-v [mask]]根據mask的值顯示相關信息,後面詳細介紹mask的使用方法,[-p]顯示每個設備支持的事件類型和編碼,[-q]只顯示事件數據,[-c count]只顯示count次事件的數據,[-r]顯示事件接收頻率。
[java] view plain print?
shell@android:/$getevent-p
shell@android:/ $ getevent -p
[java] view plain print?
getevent-p
adddevice1:/dev/input/event7
name:"gpio-keys"
events:
KEY(0001):0066
inputprops:
<none>
adddevice2:/dev/input/event2
name:"alps"
events:
ABS(0003):0000:value12,min-4096,max4096,fuzz0,flat0,resolution0
0001:value-4,min-4096,max4096,fuzz0,flat0,resolution0
0002:value-252,min-4096,max4096,fuzz0,flat0,resolution0
000a:value0,min-4096,max4096,fuzz0,flat0,resolution0
0010:value0,min-4096,max4096,fuzz0,flat0,resolution0
0011:value0,min-4096,max4096,fuzz0,flat0,resolution0
inputprops:
<none>
adddevice3:/dev/input/event6
name:"7k_handset"
events:
KEY(0001):006b00720073007400e2
inputprops:
<none>
adddevice4:/dev/input/event5
name:"proximity_sensor"
events:
ABS(0003):0019:value1,min0,max1,fuzz0,flat0,resolution0
inputprops:
<none>
adddevice5:/dev/input/event4
name:"accelerometer_sensor"
events:
inputprops:
<none>
adddevice6:/dev/input/event3
name:"magnetic_sensor"
events:
inputprops:
<none>
adddevice7:/dev/input/event1
name:"7x27a_kp"
events:
KEY(0001):00720073
inputprops:
<none>
adddevice8:/dev/input/event0
name:"sec_touchscreen"
events:
KEY(0001):0066008b009e00d9
ABS(0003):002f:value0,min0,max4,fuzz0,flat0,resolution0
0030:value0,min0,max255,fuzz0,flat0,resolution0
0032:value0,min0,max100,fuzz0,flat0,resolution0
0035:value0,min0,max480,fuzz0,flat0,resolution0
0036:value0,min0,max800,fuzz0,flat0,resolution0
0039:value0,min0,max4,fuzz0,flat0,resolution0
LED(0011):0008
inputprops:
INPUT_PROP_DIRECT
getevent -p
add device 1: /dev/input/event7
name: "gpio-keys"
events:
KEY (0001): 0066
input props:
<none>
add device 2: /dev/input/event2
name: "alps"
events:
ABS (0003): 0000 : value 12, min -4096, max 4096, fuzz 0, flat 0, resolution 0
0001 : value -4, min -4096, max 4096, fuzz 0, flat 0, resolution 0
0002 : value -252, min -4096, max 4096, fuzz 0, flat 0, resolution 0
000a : value 0, min -4096, max 4096, fuzz 0, flat 0, resolution 0
0010 : value 0, min -4096, max 4096, fuzz 0, flat 0, resolution 0
0011 : value 0, min -4096, max 4096, fuzz 0, flat 0, resolution 0
input props:
<none>
add device 3: /dev/input/event6
name: "7k_handset"
events:
KEY (0001): 006b 0072 0073 0074 00e2
input props:
<none>
add device 4: /dev/input/event5
name: "proximity_sensor"
events:
ABS (0003): 0019 : value 1, min 0, max 1, fuzz 0, flat 0, resolution 0
input props:
<none>
add device 5: /dev/input/event4
name: "accelerometer_sensor"
events:
input props:
<none>
add device 6: /dev/input/event3
name: "magnetic_sensor"
events:
input props:
<none>
add device 7: /dev/input/event1
name: "7x27a_kp"
events:
KEY (0001): 0072 0073
input props:
<none>
add device 8: /dev/input/event0
name: "sec_touchscreen"
events:
KEY (0001): 0066 008b 009e 00d9
ABS (0003): 002f : value 0, min 0, max 4, fuzz 0, flat 0, resolution 0
0030 : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
0032 : value 0, min 0, max 100, fuzz 0, flat 0, resolution 0
0035 : value 0, min 0, max 480, fuzz 0, flat 0, resolution 0
0036 : value 0, min 0, max 800, fuzz 0, flat 0, resolution 0
0039 : value 0, min 0, max 4, fuzz 0, flat 0, resolution 0
LED (0011): 0008
input props:
INPUT_PROP_DIRECT
可以看到 [-p] 參數顯示出來當前系統存在的所有input設備,並且把每個設備支持的事件類型以及編碼都列舉了出來。
每一個device相當於手機所支持的input設備,每個device裡面的events下:KEY(0001) 、ABS(0003)、SYN(0000)等表示該設備所支持的事件類型:EV_SYN[0000] (同步事件),EV_KEY[0001] (按鍵事件),EV_ABS[0003] (絕對值事件)
舉例event0中的KEY類型:
[java] view plain print?
KEY(0001):0066008b009e00d9
KEY(0001):0066008b009e00d9
表示sec_touchscreen支持的按鍵編碼有:KEY_HOME[0066] (HOME鍵),KEY_MENU[008b] (MENU鍵)
KEY_BACK[009e] (BACK鍵),KEY_SEARCH[00d9] (SEARCH鍵)
舉例event0中的ABS類型:
㈡ android中,如何模擬觸摸屏down的一個事件,例如屏幕有個按鈕,我要是用代碼實現按鈕被點擊了。
不知道你是要知道「怎麼模擬按鈕的點擊事件」還是要知道「這個東西是怎麼調上來的」?
1、模擬點擊事件,可以用調用Button的onClick的方法。
2、這個點擊事件是觸到屏幕後,觸摸屏驅動首先得到這個消息,然後根據WindowManager裡面記錄的信息分發給ViewRoot,然後就一直發,就像生活委員發信件一樣,最終發給那個被點擊的View,沒人處理就報廢。
㈢ 在Android 和 iOS 手機上模擬觸屏點擊的區別
使用角度來說:IOS所有東西都是集成的,用戶體驗會比較好.
安卓系統是開源的,但是由於版本的不同意,各式各樣的系統都有,界面會比IOS的好看些.
軟體方面:蘋果的軟體靠ITUNES賺錢還需要相應的許可所以相對而言質量要比較高一些.安卓軟體可以隨便開發隨便弄軟體質量會不是很高,但是也有精品的軟體.
由於安卓是開源的,軟體和硬體不是一體的,所以可以刷不同的ROM,適合喜歡研究手機的人.
Android抗衡iOS還是有些力不從心,比如在移動應用開發者的收入方面,平台的整合度,操作的流暢度等.尤其在企業級市場,幾乎已被iOS全面佔領,新興的企業都表示更加青睞iOS而非所謂「開放」、基於Linux內核、擁有雙核甚至四核……的Android設備.
企業級用戶對穩定和實時性的需求恰恰就是Android的軟肋,網路上一個段子很能表現Android的窘境:「Android用戶三大愛好:刷機重啟換電池」,還有人出來解釋「為什麼Android永遠不會比iOS流暢」,並稱Android是本著學、趕、超的思路誕生並發展起來,在黑莓時代Android設備最早是按照全鍵盤機型作為參考,後來iPhone的橫空出世才導致Android瞬間改頭換面,於是為後面的圖形渲染等等埋下了隱患.
Android是第一個內置支持Java的操作系統,Android應用程序使用Java語言編寫.Android開發水平的高低很大程度上取決於Java語言核心能力是否扎實.iOS蘋果的iPhone和iPad應用開發都指定使用同一開發語言:Objective-C語言.Objective-C是Cocoa的本地編程語言,Coaco框架和大多數應用程序都使用該語言編寫而成.但是您也可以使用Python、Ruby等其他編程語言開發應用程序,並且此種開發方式也可使用Cocoa框架.
蘋果打造的是一個封閉的生態環境.他們嚴格控制著應用商店並且對在他們地盤外產生的收益手段虎視眈眈.廣告收益是蘋果封閉環境內的主要漏洞.顯而易見的是他們不能堵上這個漏洞.從蘋果目前的心態上看,他們想通過iAds在該漏洞中插上一手,蘋果感興趣的是控制住這塊巨大的肥水不會往外流.
而在另一方面你還有Android.它開源,生態環境開放,市場也開放.而把這些都融合起來還是Google,這家Android平台的開發者本身也是一家廣告公司.
㈣ Android 4.0 之後如何實現模擬按鍵和觸摸事件!
網上有教程可以實現,主要是要用到源碼才行,設置android.uid.system,然後設置android.mk文件進行build可以實現。我測試過了。實現全局的模擬是沒有問題的。但現在有個問題,我不知道怎麼模擬滑鼠事件!主要是滑鼠移動事件怎麼模擬出來!滑鼠移動事件怎麼模擬出來!
㈤ android studio 能用c++寫模擬觸摸點擊嗎
可以用C+來寫模擬,但是不建議,會比較麻煩。
但站在個人角度來說,最簡單的是用Java代碼。
在相應控制項下寫上:android:onClick=「btnClick」,然後按照自己的想法設置一下參數,並登錄就可以了。當然,還有其它辦法,分別為:1、內部實現類;2、Activity實現OnClicklistenter;3、匿名內部實現類。
這些事件寫法思路都是一樣的:
根據控制項的Id去獲取控制項
設置控制項的事件
在事件方法中去處理事件
主要是看你自己習慣用哪一種。
㈥ 安卓系統的手機有什麼軟體能模擬人點擊屏幕的動作嗎
按鍵精靈能模擬人點擊屏幕的動作。
使用教程如下:
首先,我們打開「按鍵精靈」,打開軟體後點擊工具欄上「新建」項,之後進入「腳本編譯器」界面。
第二:在腳本編譯器界面上,左鍵點擊工具欄上「錄制」項,會出現這樣的情況:進入桌面,並出現一個小的對話框。在這個小的對話框中,左側紅色圓按鈕是錄制的開始,第二個藍色方按鈕是錄制結束,第三個是存儲錄制內容。
第三:點擊紅色圓形按鈕開始錄制開始錄制後我們把這個小的對話框移至窗口右下角,然後進行相對應的程序操作,
第四,錄制完成後點擊軟體上的綠色三角形「執行」按鈕,開始執行剛才記錄的腳本動作。
㈦ android模擬器如何模擬多點觸摸的操作
我用筆記本可以,需要同時使用觸控板和滑鼠
先用兩根手指放在觸控板拉伸,會出現兩圓一點
移動圓圈實現旋轉,或縮小放大
㈧ 如何用android程序模擬 觸屏和按鍵
使用Instrumentation介面:對於非自行編譯的安卓系統,無法獲取系統簽名,只能在前台模擬按鍵,不能後台模擬。
㈨ 想在android系統上模擬一個滑鼠點出來, 也就是調用安卓自帶的滑鼠功能
你可以看看getevent的源碼。android的滑鼠事件是標準的event事件。
最簡單的方法,就是找到對應的event節點(比如/dev/input/event0),往裡面注入數據,具體格式需要參照標准來,首先看原來的手機是基於單點觸摸協議還是多點觸摸協議,然後仿照他注入數據即可。
可以參考這篇文章
http://blog.csdn.net/mcgrady_tracy/article/details/46729807