Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Android MonkeyѹÁ¦²âÊÔ
 
×÷Õߣºmagicianyin
  2173  次浏览      30
2020-8-24 
 
±à¼­ÍƼö:

±¾ÎÄÖ÷Òª½éÉÜJAVA»·¾³µÄ´î½¨¡¢Android SDK¹¤¾ß°²×°¡¢Æô¶¯Ò»¸öAndroid»·¾³¡¢Android MonkeyѹÁ¦²âÊÔ¡¢·ÖÎö²âÊÔ±¨¸æ¡£
±¾ÎÄÀ´×ÔÓÚ²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

Ò». JAVA»·¾³µÄ´î½¨

1.°²×°jdk-8u151-windows-x64,¿ÉÒÔµ½¹ÙÍø»òÕßÓ¦ÓÃÖÐÐÄÏÂÔØ.

2.JAVA»·¾³±äÁ¿µÄ´î½¨:

ÔÚ"ÎҵĵçÄÔ"-"ÊôÐÔ"-"¸ß¼¶"-"»·¾³±äÁ¿"ÖÐ,µã»÷н¨,Ìîд±äÁ¿ÃûΪJAVA_HOME,±äÁ¿ÖµÎªJAVA°²×°µÄ·¾¶.

ÔÚϵͳ±äÁ¿ÖÐÕÒµ½Path,µã»÷±à¼­,Ìí¼Ó%JAVA_HOME%\bin;ºóµã»÷È·¶¨.

È»ºóÍê³Éºó,°´win+r½¡´ò¿ªÔËÐÐ,ÊäÈëcmd,ÔÚcmdÔËÐнçÃæÊäÈëJava -version»òJava¼ì²éÊÇ·ñÓа²×°³É¹¦.

¶þ. Android SDK¹¤¾ß°²×°

1.ÏÂÔØGoogleAndroidSDK,²¢ÇÒ°²×°

2.ÅäÖÃAndroid»·¾³±äÁ¿,ÓëJAVAÒ»Ñù,н¨ANDROID_HOME»·¾³±äÁ¿,ÔÚPath±à¼­¼ÓÈë%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;

3.´ò¿ªAndroid SDK Manager,Ñ¡ÔñĬÈÏÏÂÔØµÄ¹¤¾ß°ü

Ò»°ãĬÈÏÊÇÑ¡ÔñToolsµ×ÏÂǰ3¸ö,È»ºóÊÇAndroid×îеÄSDK Platform,Android TV Intel x86 Atom System Image,Google Play Intel x86 Atom System Image,Google APIs Intel x86 Atom System Image(È»ºó±¯¾çµÄ·¢ÏÖÕ⼸¸öÊÇ·ÃÎÊdll.google.comµÄ,È»ºó»ªÀöÀöµÄ±»Ç½ÁË,ÎÞÄξÍÑ¡ÔñµÍ°æ±¾µÄIntel x86 Atom System ImageÏÂÔØ,¿ÉÒÔ˳ÀûÏÂÔØ²¢ÇÒÄÜ´ò¿ªavd...)

ËùÒÔ,¿ÉÒÔ°´ÐèÑ¡ÔñÒªÏÂÔØµÄapi,²»Ò»¶¨ÏÂÔØ×îеÄAndroid°æ±¾

4.SDK»·¾³±äÁ¿¼ì²é

ÉÏÃæµÄtoolÏÂÔØÍêºó,´ò¿ªcmd½çÃæ,ÊäÈëadb,Èç¹ûÄܹ»³É¹¦·µ»Ø,Ôò˵Ã÷°²×°ºÍÅäÖóɹ¦

Èý. Æô¶¯Ò»¸öAndroid»·¾³

´ò¿ªAVD manager,,ÔÚDevice Definitions,Ñ¡ÔñÆäÖÐһ̨É豸,µã»÷create AVD

È»ºó°´ÕÕÌáʾ²Ù×÷ºó,ÔÚAndroid Virtual DeviceÖÐÉú³ÉÉ豸ºó,µã»÷ÓұߵÄstart

È»ºóÉú³ÉÄ£ÄâÆ÷

×¢Òâ:Èç¹ûÔÚÉú³ÉÄ£ÄâÆ÷µÄʱºò,±¨´íemulator: ERROR: x86 emulation currently requires hardware acceleration £¿¿ÉÒÔÔÚSDK manager×îÏÂÃæµÄextrasÖÐÕÒµ½intel x86 emulator accelerator(HAXM installer)À´°²×°.È»ºóÈç¹ûÔÚsdk managerÖÐÏÔʾhaxm installer not compatible with windows,ÔòÐèÒªÔÚintel¹ÙÍøÏÂÔØ,µØÖ·: ,È»ºó½âѹºó·ÅÔÚ sdk\extras\intel\ Hardware_Accelerated_Execution_Manager Îļþ¼ÐÖа²×°,Ôò¿ÉÒÔ´ò¿ªÄ£ÄâÆ÷.

ËÄ. Android MonkeyѹÁ¦²âÊÔ

´ò¿ªÄ£ÄâÆ÷ÖÐ,´ò¿ªcmd½çÃæ,ÊäÈëadb devices,¿´ÊÇ·ñÁ¬½ÓÁËÄ£ÄâÆ÷É豸

C:\Users\Administrator>adb devices
List of devices attached
emulator-5554 device

 

È»ºóÊäÈëadb shell½øÈëµ½shell½çÃæ

C:\Users\Administrator>adb shell
root@generic_x86:/ \#

Ñ¡Ôñcom.android.emailÕâ¸ö³ÌÐò×÷Ϊ¶ÔÏó½øÐÐMonkeyTest,ÔÚshell½çÃæÖÐÊäÈë

\#monkey -p com.android.email -v 100

ÆäÖÐ,-p±íʾָ¶¨Ò»¸ö»òÕß¶à¸ö°ü,ûÓÐÕâ¸ö²ÎÊýÔò²»Ö¸¶¨°ü;-v±íʾָ¶¨·´À¡ÐÅÏ¢¼¶±ð,100±íʾÆô¶¯¸Ãapp²¢·¢ËÍ100¸öËæ»úʼþ

root@generic\_x86:/ \# monkey -p com.android.email -v 100
WARNING: linker: libdvm.so has text relocations. This is wasting memory and is a
security risk. Please fix.
:Monkey: seed=1518372908154 count=100
:AllowPackage: com.android.email
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Event percentages:
// 0: 15.0% ´¥Ãþʼþ°Ù·Ö±È£¬¼´²ÎÊý¨Cpct-touch
// 1: 10.0% »¬¶¯Ê¼þ°Ù·Ö±È£¬¼´²ÎÊý¨Cpct-motion
// 2: 2.0% Ëõ·Åʼþ°Ù·Ö±È£¬¼´²ÎÊý¨Cpct-pinchzoom
// 3: 15.0% ¹ì¼£Çòʼþ°Ù·Ö±È£¬¼´²ÎÊý¨Cpct-trackball
// 4: -0.0% ÆÁÄ»Ðýתʼþ°Ù·Ö±È£¬¼´²ÎÊý¨Cpct-rotation
// 5: 25.0% »ù±¾µ¼º½Ê¼þ°Ù·Ö±È£¬¼´²ÎÊý¨Cpct-nav
// 6: 15.0% Ö÷Òªµ¼º½Ê¼þ°Ù·Ö±È£¬¼´²ÎÊý¨Cpct-majornav
// 7: 2.0% ϵͳʼþ°Ù·Ö±È£¬¼´²ÎÊý¨Cpct-syskeys
// 8: 2.0% ActivityÆô¶¯Ê¼þ°Ù·Ö±È£¬¼´²ÎÊý¨Cpct-appswitch
// 9: 1.0% ¼üÅÌ·­×ªÊ¼þ°Ù·Ö±È£¬¼´²ÎÊý¨Cpct-flip
// 10: 13.0% ÆäËûʼþ°Ù·Ö±È£¬¼´²ÎÊý¨Cpct-anyevent
:Switch: \#Intent;action= android.intent.action.MAIN; category=android.intent.categ
ory.LAUNCHER;launchFlags= 0x10200000;component= com.android.email/.activity.Welcom
e;end
// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.in
tent.category.LAUNCHER] cmp =com.android.email/.activity.Welcome } in package com
.android.email
:Sending Touch (ACTION\_DOWN) : 0:(176.0,915.0)
:Sending Touch (ACTION\_UP) : 0:(172.51561,943.72437)
:Sending Trackball (ACTION\_MOVE) : 0:(-2.0,1.0)
// Allowing start of Intent { act=android.intent.action.EDIT dat=content://u
i.email.android.com/settings cmp=com.android.email/.activity.setup.AccountSettin
gs } in package com.android.email
// Allowing start of Intent { cmp=com.android.email/.activity.setup.AccountS
etupBasics } in package com.android.email
// activityResuming(com.android.email)
:Sending Touch (ACTION\_DOWN): 0:(559.0,844.0)
:Sending Touch (ACTION\_UP): 0:(494.87607,782.93036)
:Sending Touch (ACTION\_DOWN): 0:(717.0,136.0)
:Sending Touch (ACTION\_UP): 0:(705.3432,121.778885)
:Sending Trackball (ACTION\_MOVE): 0:(-4.0,4.0)
:Sending Touch (ACTION\_DOWN): 0:(658.0,1007.0)
:Sending Touch (ACTION\_UP): 0:(638.68384,998.59467)
:Sending Touch (ACTION\_DOWN): 0:(443.0,542.0)
:Sending Touch (ACTION\_UP): 0:(419.82828,558.96)
:Sending Touch (ACTION\_DOWN): 0:(280.0,666.0)
:Sending Touch (ACTION\_UP): 0:(275.95532,654.7703)
:Sending Touch (ACTION\_DOWN): 0:(18.0,979.0)
:Sending Touch (ACTION\_UP): 0:(14.776767,980.841)
:Sending Trackball (ACTION\_MOVE): 0:(0.0,-3.0)
:Sending Touch (ACTION\_DOWN): 0:(253.0,1043.0)
:Sending Touch (ACTION\_UP): 0:(255.71083,1034.4076)
:Sending Trackball (ACTION_MOVE): 0:(2.0,3.0)
:Sending Trackball (ACTION\_UP): 0:(0.0,0.0)
:Sending Touch (ACTION\_DOWN): 0:(388.0,699.0)
:Sending Touch (ACTION\_UP): 0:(396.3903,699.357)
:Sending Trackball (ACTION\_MOVE): 0:(0.0,-1.0)
Events injected: 100
:Sending rotation degree=0, persist=false
:Dropped: keys=0 pointers=5 trackballs=0 flips=0 rotations=0
\## Network stats: elapsed time=2857ms (0ms mobile, 0ms wifi, 2857ms not connected)
// Monkey finished

 

com.android.email×îºóÍ£ÁôµÄÒ³Ãæ

×¢Òâ:Ò²¿ÉÒÔÍ˳öshell½çÃæºó,¿ÉÒÔÖ±½ÓÊäÈëadb shell monkey -p com.android.email -v 100 > d:\monkeytest.txt½«½á¹ûµ¼Èëµ½txtÎļþÖÐ

Îå. ·ÖÎö²âÊÔ±¨¸æ

×¢ÒâseedÖµ

:Monkey: seed=1518372908154 count=100 ûÓÐÖ¸¶¨seedÖµÊÇ,»áËæ»úÉú³É,¿ÉÒÔͨ¹ýÉ趨seedֵʹµÃ²âÊÔ²úÉúµÄËæ»ú²Ù×÷ÐòÁÐÍêÈ«Ïàͬ

²éÕÒÓÐÎÞÈÕÖ¾ÖеÄÎÞÏìÓ¦ÎÊÌâºÍ±ÀÀ£ÎÊÌâ

ÎÞÏìÓ¦ÎÊÌâËÑË÷"ANR"

±¼À£ÎÊÌâËÑË÷"CRASH"

ÄÚ´æÐ¹Â©ÎÊÌâËÑË÷"GC",²¢½øÒ»²½·ÖÎö

Òì³£ÎÊÌâËÑË÷"Exception",Èç³öÏÖNullpointerException,Ôò³öÏÖ¿ÕÖ¸Õë,ÐèÒªÖØÊÓ

ÓÐÕâÀàµÄÇé¿öÔÙ½øÐоßÌå·ÖÎö

 
   
2173 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]
 
×îÐÂÎÄÕÂ
Flutter-Ä㻹ÔÚÀÄÓÃStatefulWidgetÂð
ÒÆ¶¯APP°²È«²âÊÔÒªµã
ÉîÈëdz³ö Kotlin Э³Ì
iOS ×é¼þ»¯ ¡ª¡ª ·ÓÉÉè¼ÆË¼Â··ÖÎö
ÒÆ¶¯¶Ë¿çƽ̨¿ª·¢µÄÉî¶È½âÎö
×îпγÌ
Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò¿ª·¢
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
AndroidÓ¦Óø߼¶¿ª·¢
ÒÆ¶¯»¥ÁªÍøÓ¦Óÿª·¢£¨iOS£¬Android£¬HTML5)
³É¹¦°¸Àý
±±¾© iOS¿ª·¢¼¼ÊõÉîÈëÑо¿
ijÆóÒµ Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò¿ª·¢
ÖÐÌå²Ê Android²úÆ·¼¶²âÊÔ
ÒÆ¶¯Í¨ÐÅ ÒÆ¶¯»¥ÁªÍøÓ¦Óÿª·¢Ô­Àí
ijµçÁ¦ÐÐ android¿ª·¢Æ½Ì¨×î¼Ñ