日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Monkey 详解

發(fā)布時(shí)間:2024/4/14 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Monkey 详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、Monkey 簡(jiǎn)介

Monkey 就是SDK中附帶的一個(gè)工具。Monkey是Android中的一個(gè)命令行工具,可以運(yùn)行在模擬器里或?qū)嶋H設(shè)備中。它向系統(tǒng)發(fā)送偽隨機(jī)的用戶(hù)事件流(如按鍵輸入、觸摸屏輸入、手勢(shì)輸入等),實(shí)現(xiàn)對(duì)正在開(kāi)發(fā)的應(yīng)用程序進(jìn)行壓力測(cè)試。Monkey測(cè)試是一種為了測(cè)試軟件的穩(wěn)定性、健壯性的快速有效的方法。

該工具用于進(jìn)行壓力測(cè)試。然后開(kāi)發(fā)人員結(jié)合monkey 打印的日志和系統(tǒng)打印的日志,分析測(cè)試中的問(wèn)題

Monkey 測(cè)試的特點(diǎn):

Monkey 測(cè)試,所有的事件都是隨機(jī)產(chǎn)生的,不帶任何人的主觀性。

1、測(cè)試的對(duì)象僅為應(yīng)用程序包,有一定的局限性。

2、Monky測(cè)試使用的事件數(shù)據(jù)流是隨機(jī)的,不能進(jìn)行自定義。

3、可對(duì)MonkeyTest的對(duì)象,事件數(shù)量,類(lèi)型,頻率等進(jìn)行設(shè)置。

二、Monkey的基本用法

基本語(yǔ)法如下:

$ adb shell monkey [options]

如果不指定options,Monkey將以無(wú)反饋模式啟動(dòng),并把事件任意發(fā)送到安裝在目標(biāo)環(huán)境中的全部包。下面是一個(gè)更為典型的命令行示例,它啟動(dòng)指定的應(yīng)用程序,并向其發(fā)送500個(gè)偽隨機(jī)事件:

$ adb shell monkey -p your.package.name -v 500
使用android自動(dòng)化測(cè)試工具monkeyrunner啟動(dòng)應(yīng)用時(shí),需要填寫(xiě)被測(cè)程序的包名和啟動(dòng)的Activity,以下有兩種查看應(yīng)用包名package和入口activity名稱(chēng)的方法:

方法一:使用aapt ? ?//aapt是sdk自帶的一個(gè)工具,在sdk\builds-tools\目錄下

1.以ES文件瀏覽器為例,命令行中切換到aapt.exe目錄執(zhí)行:aapt dump badging E:\apk\es3.apk

2.

注:在android sdk目錄搜索可以找到aapt.exe,如果沒(méi)有可以下載apktool。

?

?

三、Monkey測(cè)試的一個(gè)實(shí)例

通過(guò)這個(gè)實(shí)例,我們能理解Monkey測(cè)試的步驟以及如何知道哪些應(yīng)用程序能夠用Monkey進(jìn)行測(cè)試。

Windows下(注:2—4步是為了查看我們可以測(cè)試哪些應(yīng)用程序包,可省略):

1、通過(guò)eclipse啟動(dòng)一個(gè)Android的emulator

2、在命令行中輸入:adb devices查看設(shè)備連接情況

C:\Documents and Settings\Administrator>adb devices

List of devices attached

emulator-5554?? device

3、在有設(shè)備連接的前提下,在命令行中輸入:adb shell 進(jìn)入shell界面

C:\Documents and Settings\Administrator>adb shell

#

4、查看data/data文件夾下的應(yīng)用程序包。注:我們能測(cè)試的應(yīng)用程序包都在這個(gè)目錄下面

C:\Documents and Settings\Administrator>adb shell

# ls data/data

ls data/data

5、以com.android.calculator2作為對(duì)象進(jìn)行MonkeyTest

#monkey -p com.android.calculator2 -v 500

其中-p表示對(duì)象包 –v 表示反饋信息級(jí)別

運(yùn)行過(guò)程中,Emulator中的應(yīng)用程序在不斷地切換畫(huà)面。

按照選定的不同級(jí)別的反饋信息,在Monkey中還可以看到其執(zhí)行過(guò)程報(bào)告和生成的事件。?

四、使用monkey help 命令查看命令參數(shù)

C:\Users\chenfenping>adb shell monkey -help
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
[-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
[--ignore-crashes] [--ignore-timeouts]
[--ignore-security-exceptions]
[--monitor-native-crashes] [--ignore-native-crashes]
[--kill-process-after-error] [--hprof]
[--pct-touch PERCENT] [--pct-motion PERCENT]
[--pct-trackball PERCENT] [--pct-syskeys PERCENT]
[--pct-nav PERCENT] [--pct-majornav PERCENT]
[--pct-appswitch PERCENT] [--pct-flip PERCENT]
[--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
[--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
[--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
[--wait-dbg] [--dbg-no-events]
[--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
[--port port]
[-s SEED] [-v [-v] ...]
[--throttle MILLISEC] [--randomize-throttle]
[--profile-wait MILLISEC]
[--device-sleep-time MILLISEC]
[--randomize-script]
[--script-log]
[--bugreport]
[--periodic-bugreport]
COUNT

1 參數(shù): -p

用于約束限制,用此參數(shù)指定一個(gè)或多個(gè)包(Package,即App)。指定包之后,monkey將只允許系統(tǒng)啟動(dòng)指定的APP,如果不指定包,將允許系統(tǒng)啟動(dòng)設(shè)備中的所有APP.

* 指定一個(gè)包: adb shell monkey -p cn.emoney.acg 10

* 指定多個(gè)包:adb shell monkey -p cn.emoney.acg –p cn.emoney.wea -p cn.emoney.acg 100

* 不指定包:adb shell monkey 100

?

2 參數(shù): -v

用于指定反饋信息級(jí)別(信息級(jí)別就是日志的詳細(xì)程度),總共分3個(gè)級(jí)別,分別對(duì)應(yīng)的參數(shù)如下表所示:

日志級(jí)別 Level0

示例 adb shell monkey -p cn.emoney.acg –v 100

說(shuō)明缺省值,僅提供啟動(dòng)提示、測(cè)試完成和最終結(jié)果等少量信息

?

日志級(jí)別 Level 1

示例 adb shell monkey -p cn.emoney.acg –v -v 100

說(shuō)明提供較為詳細(xì)的日志,包括每個(gè)發(fā)送到Activity的事件信息

?

日志級(jí)別 Level 2

示例 adb shell monkey -p cn.emoney.acg –v -v –v 100

說(shuō)明最詳細(xì)的日志,包括了測(cè)試中選中/未選中的Activity信息

3 參數(shù): -s

用于指定偽隨機(jī)數(shù)生成器的seed值,如果seed相同,則兩次Monkey測(cè)試所產(chǎn)生的事件序列也相同的。

Monkey 測(cè)試1:adb shell monkey -p cn.emoney.acg -s 10? 100

Monkey 測(cè)試2:adb shell monkey -p cn.emoney.acg –s 10 100

兩次測(cè)試的效果是相同的,因?yàn)槟M的用戶(hù)操作序列(每次操作按照一定的先后順序所組成的一系列操作,即一個(gè)序列)是一樣的。


4 參數(shù): --throttle<毫秒>

用于指定用戶(hù)操作(即事件)間的時(shí)延,單位是毫秒;

adb shell monkey -p cn.emoney.acg --throttle 5000 100

5 參數(shù): --ignore-crashes

用于指定當(dāng)應(yīng)用程序崩潰時(shí)(Force& Close錯(cuò)誤),Monkey是否停止運(yùn)行。如果使用此參數(shù),即使應(yīng)用程序崩潰,Monkey依然會(huì)發(fā)送事件,直到事件計(jì)數(shù)完成。

adb shellmonkey -p cn.emoney.acg --ignore-crashes 1000

測(cè)試過(guò)程中即使程序崩潰,Monkey依然會(huì)繼續(xù)發(fā)送事件直到事件數(shù)目達(dá)到1000為止

adb shellmonkey -p cn.emoney.acg 1000

測(cè)試過(guò)程中,如果acg程序崩潰,Monkey將會(huì)停止運(yùn)行

?

6 參數(shù): --ignore-timeouts

用于指定當(dāng)應(yīng)用程序發(fā)生ANR(Application No Responding)錯(cuò)誤時(shí),Monkey是否停止運(yùn)行。如果使用此參數(shù),即使應(yīng)用程序發(fā)生ANR錯(cuò)誤,Monkey依然會(huì)發(fā)送事件,直到事件計(jì)數(shù)完成。

adb shellmonkey -p cn.emoney.acg --ignore-timeouts 1000

?

7 參數(shù): --ignore-security-exceptions

用于指定當(dāng)應(yīng)用程序發(fā)生許可錯(cuò)誤時(shí)(如證書(shū)許可,網(wǎng)絡(luò)許可等),Monkey是否停止運(yùn)行。如果使用此參數(shù),即使應(yīng)用程序發(fā)生許可錯(cuò)誤,Monkey依然會(huì)發(fā)送事件,直到事件計(jì)數(shù)完成。

adb shellmonkey -p cn.emoney.acg --ignore-security-exception 1000

?


8 參數(shù): --kill-process-after-error


用于指定當(dāng)應(yīng)用程序發(fā)生錯(cuò)誤時(shí),是否停止其運(yùn)行。如果指定此參數(shù),當(dāng)應(yīng)用程序發(fā)生錯(cuò)誤時(shí),應(yīng)用程序停止運(yùn)行并保持在當(dāng)前狀態(tài)

(注意:應(yīng)用程序僅是靜止在發(fā)生錯(cuò)誤時(shí)的狀態(tài),系統(tǒng)并不會(huì)結(jié)束該應(yīng)用程序的進(jìn)程)。

adb shellmonkey -p cn.emoney.acg --kill-process-after-error 1000

?


9 參數(shù): --monitor-native-crashes

用于指定是否監(jiān)視并報(bào)告應(yīng)用程序發(fā)生崩潰的本地代碼。

adb shellmonkey -p cn.emoney.acg --monitor-native-crashes 1000

?

10 參數(shù): --pct-{+事件類(lèi)別}{+事件類(lèi)別百分比}

用于指定每種類(lèi)別事件的數(shù)目百分比(在Monkey事件序列中,該類(lèi)事件數(shù)目占總事件數(shù)目的百分比)
示例:
--pct-touch{+百分比}
調(diào)整觸摸事件的百分比(觸摸事件是一個(gè)down-up事件,它發(fā)生在屏幕上的某單一位置)

adb shell monkey -p cn.emoney.acg --pct-touch 10 1000


--pct-motion {+百分比}
調(diào)整動(dòng)作事件的百分比(動(dòng)作事件由屏幕上某處的一個(gè)down事件、一系列的偽隨件機(jī)事和一個(gè)up事件組成)

adb shell monkey -p cn.emoney.acg --pct-motion 20 1000


--pct-trackball {+百分比}
調(diào)整軌跡事件的百分比(軌跡事件由一個(gè)或幾個(gè)隨機(jī)的移動(dòng)組成,有時(shí)還伴隨有點(diǎn)擊)

adb shell monkey -p cn.emoney.acg --pct-trackball 30 1000


--pct-nav {+百分比}

調(diào)整“基本”導(dǎo)航事件的百分比(導(dǎo)航事件由來(lái)自方向輸入設(shè)備的up/down/left/right組成)

adb shell monkey -p cn.emoney.acg --pct-nav 40 1000


--pct-majornav {+百分比}
調(diào)整“主要”導(dǎo)航事件的百分比(這些導(dǎo)航事件通常引發(fā)圖形界面中的動(dòng)作,如:5-way鍵盤(pán)的中間按鍵、回退按鍵、菜單按鍵)

adb shell monkey -p cn.emoney.acg --pct-majornav 50 1000

七、輸出monkeylog

跑monkey的時(shí)候或者想抓程序log導(dǎo)出時(shí),有時(shí)會(huì)提示:cannot create D:monkeytest.txt: read-only file system

為什么有時(shí)候可以有時(shí)候不可以?

后來(lái)發(fā)現(xiàn)跟使用使用習(xí)慣不一樣,一會(huì)是先進(jìn)入adb shell 再用命令,一會(huì)是直接命令進(jìn)入。

進(jìn)入adb shell后再用命令就會(huì)失敗~

正確方法:退出shell或者執(zhí)行命令時(shí)先不要進(jìn)shell

C:\Documents and Settings\Administrator>adb shell monkey -p 包名

?-v 300 ?>e:\text.txt

?

進(jìn)入adb shell后就相當(dāng)于進(jìn)入linux的root下面,沒(méi)有權(quán)限在里面創(chuàng)建文件~

五、Monkey測(cè)試結(jié)果分析

一. 初步分析方法:

Monkey測(cè)試出現(xiàn)錯(cuò)誤后,一般的查錯(cuò)步驟為以下幾步:

1、找到是monkey里面的哪個(gè)地方出錯(cuò)

2、查看Monkey里面出錯(cuò)前的一些事件動(dòng)作,并手動(dòng)執(zhí)行該動(dòng)作

3、若以上步驟還不能找出,可以使用之前執(zhí)行的monkey命令再執(zhí)行一遍,注意seed值要一樣--復(fù)現(xiàn)

一般的測(cè)試結(jié)果分析:

1、 ANR問(wèn)題:在日志中搜索“ANR”

2、崩潰問(wèn)題:在日志中搜索“Exception”? Force Close

二. 詳細(xì)分析monkey日志:

將執(zhí)行Monkey生成的log,從手機(jī)中導(dǎo)出并打開(kāi)查看該log;在log的最開(kāi)始都會(huì)顯示Monkey執(zhí)行的seed值、執(zhí)行次數(shù)和測(cè)試的包名。

首先我們需要查看Monkey測(cè)試中是否出現(xiàn)了ANR或者異常,具體方法如上述。

然后我們要分析log中的具體信息,方法如下:

查看log中第一個(gè)Switch,主要是查看Monkey執(zhí)行的是那一個(gè)Activity,譬如下面的log中,執(zhí)行的是com.tencent.smtt.SplashActivity,在下一個(gè)swtich之間的,如果出現(xiàn)了崩潰或其他異常,可以在該Activity中查找問(wèn)題的所在。

:Switch:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.tencent.smtt/.SplashActivity;end

??// Allowing start of Intent {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]cmp=com.tencent.smtt/.SplashActivity } in package com.tencent.smtt

在下面的log中,Sending Pointer ACTION_DOWN和Sending Pointer ACTION_UP代表當(dāng)前執(zhí)行了一個(gè)單擊的操作;

Sleeping for 500 milliseconds這句log是執(zhí)行Monkey測(cè)試時(shí),throttle設(shè)定的間隔時(shí)間,每出現(xiàn)一次,就代表一個(gè)事件。

SendKey(ACTION_DOWN) //KEYCODE_DPAD_DOWN 代表當(dāng)前執(zhí)行了一個(gè)點(diǎn)擊下導(dǎo)航鍵的操作;

Sending Pointer ACTION_MOVE 代表當(dāng)前執(zhí)行了一個(gè)滑動(dòng)界面的操作。
:Sending Pointer ACTION_DOWN x=47.0 y=438.0
:Sending Pointer ACTION_MOVE x=-2.0 y=-4.0
ANR
如果Monkey測(cè)試順利執(zhí)行完成,在log的最后,會(huì)打印出當(dāng)前執(zhí)行事件的次數(shù)和所花費(fèi)的時(shí)間;// Monkey finished代表執(zhí)行完成。Monkey執(zhí)行中斷,在log的最后也能查看到當(dāng)前已執(zhí)行的次數(shù)。Monkey執(zhí)行完成的log具體如下:

Events injected: 6000

:Dropped: keys=0 pointers=9 trackballs=0 flips=0

## Network stats: elapsed time=808384ms (0ms mobile, 808384ms wifi, 0msnot connected)

// Monkey finished

范例:

Monkey測(cè)試結(jié)果:

# monkey -p wfh.LessonTable -v -v -v?200

:Monkey: seed=0?count=200

:AllowPackage: wfh.LessonTable

:IncludeCategory: android.intent.category.LAUNCHER

:IncludeCategory: android.intent.category.MONKEY

// Selecting main activities from category android.intent.category.LAUNCHER

//?? - NOT USING main activity com.android.browser.BrowserActivity (from package com.android.browser)

// Seeded: 0

// Event percentages:

//?? 0: 15.0%

//?? 1: 10.0%

//?? 2: 15.0%

//?? 3: 25.0%

//?? 4: 15.0%

//?? 5: 2.0%

//?? 6: 2.0%

//?? 7: 1.0%

//?? 8: 15.0%

?

:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=wfh.LessonTable/.MainTable;end

????// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=wfh.LessonTable/.MainTable } in package wfh.LessonTable

Sleeping?for?0?milliseconds

:SendKey (ACTION_DOWN):?21????// KEYCODE_DPAD_LEFT

:SendKey (ACTION_UP):?21????// KEYCODE_DPAD_LEFT

Sleeping?for?0?milliseconds??//------------------------------------用--throttle來(lái)設(shè)置一個(gè)起效的事件發(fā)生后時(shí)延時(shí)。

:Sending Pointer ACTION_DOWN x=0.0?y=0.0

:Sending Pointer ACTION_UP x=0.0?y=0.0

Sleeping?for?0?milliseconds

:Sending Pointer ACTION_MOVE x=0.0?y=0.0

當(dāng)測(cè)試到ACTION_MOVE x=0.0?y=0.0這個(gè)動(dòng)作時(shí),發(fā)生了FC(Force Close)錯(cuò)誤,以下為輸出錯(cuò)誤信息。同時(shí)在LogCat里面也有錯(cuò)誤輸出,而且LogCat里面的錯(cuò)誤信息更為詳細(xì),在實(shí)際的測(cè)試中應(yīng)該結(jié)合兩者輸出的信息進(jìn)行調(diào)試程序。

// CRASH: wfh.LessonTable (pid 1973)

// Short Msg: java.lang.NullPointerException

// Long Msg: java.lang.NullPointerException

// Build Label: android:generic/sdk/generic/:2.1-update1/ECLAIR/35983:eng/test-keys

// Build Changelist: 35983

// Build Time: 1273161972

// ID:

// Tag: AndroidRuntime

// java.lang.NullPointerException:

//?? at android.widget.TabHost.dispatchKeyEvent(TabHost.java:279)

//?? at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:748)

** Monkey aborted due to error.

Events injected:?190

:Dropped: keys=0?pointers=11?trackballs=0?flips=0

## Network stats: elapsed time=27954ms (27954ms mobile, 0ms wifi, 0ms not connected)

** System appears to have crashed at event?190?of?200?using seed?0

#

開(kāi)始monkey測(cè)試時(shí)android的LogCat輸出的信息:

11-01?08:52:53.712: DEBUG/AndroidRuntime(2077): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<

11-01?08:52:53.742: DEBUG/AndroidRuntime(2077): CheckJNI is ON

11-01?08:52:54.453: DEBUG/AndroidRuntime(2077): ---

以下為L(zhǎng)ogCat輸出的錯(cuò)誤信息,在以下的信息中首先從自己的包中找錯(cuò)誤,如果沒(méi)有自己的包的話就再找發(fā)生錯(cuò)誤的包的第一個(gè)發(fā)生了異常。由錯(cuò)誤提示可以看出很大的可能是因?yàn)門(mén)abHost引發(fā)的異常。經(jīng)過(guò)查看代碼發(fā)現(xiàn)是由于TabHost的編寫(xiě)不規(guī)范,TabHost與其中一個(gè)view放在了一起,在monkey測(cè)試做滾球上下滾動(dòng)時(shí)當(dāng)滾到TabHost時(shí)就發(fā)生了異常了。所以把TabHost與Activity分開(kāi)寫(xiě)就不會(huì)出現(xiàn)些問(wèn)題了。

11-01?08:53:27.113: ERROR/AndroidRuntime(1973): Uncaught handler: thread main exiting due to uncaught exception

11-01?08:53:27.133: ERROR/AndroidRuntime(1973): java.lang.NullPointerException

11-01?08:53:27.133: ERROR/AndroidRuntime(1973):???? at android.widget.TabHost.dispatchKeyEvent(TabHost.java:279)

11-01?08:53:27.133: ERROR/AndroidRuntime(1973):???? at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:748)

四、總結(jié):

在monkey測(cè)試中常用的命令組合有:

1、monkey -p com.yourpackage -v?500//簡(jiǎn)單的輸出測(cè)試的信息。

2、monkey -p com.yourpackage -v -v ?500?//以深度為二級(jí)輸出測(cè)試信息。

4、monkey -p com.yourpackage -s 數(shù)字 -v?500//為隨機(jī)數(shù)的事件序列定一個(gè)值,若出現(xiàn)問(wèn)題下次可以重復(fù)同樣的系列進(jìn)行排錯(cuò)。

5、monkey -p com.yourpackage -v --throttle?3000?500//為每一次執(zhí)行一次有效的事件后休眠3000毫秒。

?

五、附錄:

以下內(nèi)容為android系統(tǒng)中的keycode值,在以后的調(diào)試中會(huì)經(jīng)常需要查詢(xún):

字母和數(shù)字鍵的鍵碼值(keyCode)

按鍵

鍵碼

按鍵

鍵碼

按鍵

鍵碼

按鍵

鍵碼

A

65

J

74

S

83

1

49

B

66

K

75

T

84

2

50

C

67

L

76

U

85

3

51

D

68

M

77

V

86

4

52

E

69

N

78

W

87

5

53

F

70

O

79

X

88

6

54

G

71

P

80

Y

89

7

55

H

72

Q

81

Z

90

8

56

I

73

R

82

0

48

9

57

  

數(shù)字鍵盤(pán)上的鍵的鍵碼值(keyCode)

功能鍵鍵碼值(keyCode)

按鍵

鍵碼

按鍵

鍵碼

按鍵

鍵碼

按鍵

鍵碼

0

96

8

104

F1

112

F7

118

1

97

9

105

F2

113

F8

119

2

98

*

106

F3

114

F9

120

3

99

+

107

F4

115

F10

121

4

100

Enter

108

F5

116

F11

122

5

101

-

109

F6

117

F12

123

6

102

.

110

?

?

?

?

7

103

/

111

?

?

?

?

  

控制鍵鍵碼值(keyCode)

按鍵

鍵碼

按鍵

鍵碼

按鍵

鍵碼

按鍵

鍵碼

BackSpace

8

Esc

27

Right Arrow

39

-_

189

Tab

9

Spacebar

32

Dw Arrow

40

.>

190

Clear

12

Page Up

33

Insert

45

/?

191

Enter

13

Page Down

34

Delete

46

`~

192

Shift

16

End

35

Num Lock

144

[{

219

Control

17

Home

36

;:

186

\|

220

Alt

18

Left Arrow

37

=+

187

]}

221

Cape Lock

20

Up Arrow

38

,<

188

'"

222

?

?

多媒體鍵碼值(keyCode)

按鍵

鍵碼

按鍵

鍵碼

按鍵

鍵碼

按鍵

鍵碼

音量加

175

?

?

?

?

?

?

音量減

174

?

?

?

?

?

?

停止

179

?

?

?

?

?

?

靜音

173

?

?

?

?

?

?

瀏覽器

172

?

?

?

?

?

?

郵件

180

?

?

?

?

?

?

搜索

170

?

?

?

?

?

?

收藏

171

?

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/yueliangnini/p/8393653.html

總結(jié)

以上是生活随笔為你收集整理的Monkey 详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。