#! /usr/bin/env python ''' Copyright (C) 2012 Diego Torres Milano Created on Sep 8, 2012 @author: diego @see: http://code.google.com/p/android/issues/detail?id=36544 ''' import re import sys import os # This must be imported before MonkeyRunner and MonkeyDevice, # otherwise the import fails. # PyDev sets PYTHONPATH, use it try: for p in os.environ['PYTHONPATH'].split(':'): if not p in sys.path: sys.path.append(p) except: pass try: sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src')) except: pass from androidviewclient3.viewclient import ViewClient, View device, serialno = ViewClient.connectToDeviceOrExit() DEBUG = True FLAG_ACTIVITY_NEW_TASK = 0x10000000 # We are not using Settings as the bug describes because there's no WiFi dialog in emulator componentName = 'com.android.settings/.Settings'
#!/usr/bin/env python #! /usr/bin/env shebang monkeyrunner -plugin $ANDROID_VIEW_CLIENT_HOME/bin/androidviewclient-$ANDROID_VIEW_CLIENT_VERSION.jar @! # # Linux: #! /usr/local/bin/shebang monkeyrunner -plugin $AVC_HOME/bin/androidviewclient-$AVC_VERSION.jar @! # # Other: #! /path/to/monkeyrunner -plugin /path/to/androidviewclient/bin/androidviewclient-2.3.14.jar # # No shebang: # c:>path\to\monkeyrunner -plugin \path\to\androidviewclient-2.3.13.jar dump-all-windows-lib.py ''' Copyright (C) 2012 Diego Torres Milano Created on Apr 30, 2013 @author: diego ''' from androidviewclient3.viewclient import ViewClient kwargs2 = {'autodump': False, 'forceviewserveruse': True} vc = ViewClient(*ViewClient.connectToDeviceOrExit(), **kwargs2) windows = vc.list() for wId in windows.keys(): print(">>> window=", wId, windows[wId]) vc.dump(window=wId) vc.traverse(transform=ViewClient.TRAVERSE_CIT, indent=" ")
| / \ / \ / \ / \ \___ |/ \_/ \_/ \_/ \ o \ \_____/--< @author: Diego Torres Milano @author: Jennifer E. Swofford (ascii art snake) ''' import re import sys import os from androidviewclient3.viewclient import ViewClient if len(sys.argv) < 2: sys.exit("usage: %s /path/to/filename.png [serialno]" % sys.argv[0]) filename = sys.argv.pop(1) kwargs1 = {'verbose': False, 'ignoresecuredevice': False} device, serialno = ViewClient.connectToDeviceOrExit(**kwargs1) kwargs2 = { 'startviewserver': True, 'forceviewserveruse': False, 'autodump': False, 'ignoreuiautomatorkilled': True } vc = ViewClient(device, serialno, **kwargs2) vc.dump(window='-1') vc.findViewWithContentDescriptionOrRaise('''Home screen 3''').writeImageToFile( filename, 'PNG')
#! /usr/bin/env python ''' Copyright (C) 2012 Diego Torres Milano Created on Sep 8, 2012 @author: diego @see: http://code.google.com/p/android/issues/detail?id=36544 ''' import re import sys import os # This must be imported before MonkeyRunner and MonkeyDevice, # otherwise the import fails. # PyDev sets PYTHONPATH, use it try: for p in os.environ['PYTHONPATH'].split(':'): if not p in sys.path: sys.path.append(p) except: pass try: sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src')) except: pass from androidviewclient3.viewclient import ViewClient device, serialno = ViewClient.connectToDeviceOrExit() FLAG_ACTIVITY_NEW_TASK = 0x10000000 # We are not using Settings as the bug describes because there's no WiFi dialog in emulator #componentName = 'com.android.settings/.Settings' componentName = 'com.dtmilano.android.sampleui/.MainActivity'
#! /usr/bin/env python # -*- coding: utf-8 -*- ''' Copyright (C) 2013-2018 Diego Torres Milano Created on 2018-03-29 by Culebra v15.0.1 __ __ __ __ / \ / \ / \ / \ ____________________/ __\/ __\/ __\/ __\_____________________________ ___________________/ /__/ /__/ /__/ /________________________________ | / \ / \ / \ / \ \___ |/ \_/ \_/ \_/ \ o \ \_____/--< @author: Diego Torres Milano @author: Jennifer E. Swofford (ascii art snake) ''' import sys from androidviewclient3.viewclient import ViewClient TAG = 'CULEBRA' _s = 5 _v = '--verbose' in sys.argv kwargs1 = { 'ignoreversioncheck': False, 'verbose': False, 'ignoresecuredevice': False } device, serialno = ViewClient.connectToDeviceOrExit(**kwargs1) kwargs2 = { 'forceviewserveruse': False, 'useuiautomatorhelper': False, 'ignoreuiautomatorkilled': True,
#! /usr/bin/env python ''' Copyright (C) 2012 Diego Torres Milano Created on Oct 12, 2012 @author: diego ''' import re import sys import os try: sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src')) except: pass from androidviewclient3.viewclient import ViewClient VPS = "javascript:alert(document.getElementsByTagName('html')[0].innerHTML);" USE_BROWSER = True if USE_BROWSER: package = 'com.android.browser' activity = '.BrowserActivity' _id = 'id/no_id/12' else: package = 'com.android.chrome' activity = 'com.google.android.apps.chrome.Main' _id = 'id/no_id/28' component = package + "/" + activity uri = 'http://dtmilano.blogspot.com' device, serialno = ViewClient.connectToDeviceOrExit() device.startActivity(component=component, uri=uri) ViewClient.sleep(5)
#! /usr/bin/env python # -*- coding: utf-8 -*- """ Copyright (C) 2013-2018 Diego Torres Milano Created on 2018-03-29 by Culebra v15.1.0 __ __ __ __ / \ / \ / \ / \ ____________________/ __\/ __\/ __\/ __\_____________________________ ___________________/ /__/ /__/ /__/ /________________________________ | / \ / \ / \ / \ \___ |/ \_/ \_/ \_/ \ o \ \_____/--< @author: Diego Torres Milano @author: Jennifer E. Swofford (ascii art snake) """ import re import sys import os try: sys.path.insert( 0, os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src')) except: pass from androidviewclient3.viewclient import ViewClient TAG = 'CULEBRA' _s = 5 _v = '--verbose' in sys.argv kwargs1 = { 'ignoreversioncheck': False, 'verbose': False,
#! /usr/bin/env python ''' Copyright (C) 2012 Diego Torres Milano Created on Sep 5, 2012 @author: diego ''' import re import sys import os try: sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src')) except: pass from androidviewclient3.viewclient import ViewClient, View device, serialno = ViewClient.connectToDeviceOrExit() FLAG_ACTIVITY_NEW_TASK = 0x10000000 #09-06 01:01:34.964: I/ActivityManager(873): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.android.apis/.ApiDemos bnds=[784,346][880,442]} from pid 991 componentName = 'com.example.android.apis/.ApiDemos' device.startActivity(component=componentName, flags=FLAG_ACTIVITY_NEW_TASK) ViewClient.sleep(3) vc = ViewClient(device=device, serialno=serialno) app = vc.findViewWithText('App') if app: app.touch() ViewClient.sleep(3) # windows changed, request a new dump vc.dump() ad = vc.findViewWithText('Alert Dialogs') if ad:
#! /usr/bin/env python ''' Copyright (C) 2014 Diego Torres Milano Created on Apr 24, 2014 @author: diego ''' import sys import os try: sys.path.insert(0, os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src')) except: pass from androidviewclient3.viewclient import ViewClient kwargs1 = {'verbose': True, 'ignoresecuredevice': True} kwargs2 = {'startviewserver': True, 'forceviewserveruse': True, 'autodump': False, 'ignoreuiautomatorkilled': True} vc = ViewClient(*ViewClient.connectToDeviceOrExit(**kwargs1), **kwargs2) windows = vc.list() for wId in windows.keys(): print(">>> window=", wId, windows[wId]) vc.dump(window=wId) vc.traverse(transform=ViewClient.TRAVERSE_CITCD, indent=" ")