1# [devil.android.device_utils](https://github.com/catapult-project/catapult/blob/master/devil/devil/android/device_utils.py) 2 3*This page was autogenerated by `devil/utils/markdown.py --module-link https://github.com/catapult-project/catapult/blob/master/devil/devil/android/device_utils.py`* 4 5## DeviceUtils 6 7### DeviceUtils.\_\_init\_\_ 8 9DeviceUtils constructor. 10``` 11 Args: 12 device: Either a device serial, an existing AdbWrapper instance, or an 13 an existing AndroidCommands instance. 14 enable_device_files_cache: For PushChangedFiles(), cache checksums of 15 pushed files rather than recomputing them on a subsequent call. 16 default_timeout: An integer containing the default number of seconds to 17 wait for an operation to complete if no explicit value is provided. 18 default_retries: An integer containing the default number or times an 19 operation should be retried on failure if no explicit value is provided. 20``` 21 22 23### DeviceUtils.\_\_eq\_\_ 24 25Checks whether |other| refers to the same device as |self|. 26``` 27 Args: 28 other: The object to compare to. This can be a basestring, an instance 29 of adb_wrapper.AdbWrapper, or an instance of DeviceUtils. 30 Returns: 31 Whether |other| refers to the same device as |self|. 32``` 33 34 35### DeviceUtils.\_\_lt\_\_ 36 37Compares two instances of DeviceUtils. 38``` 39 This merely compares their serial numbers. 40 41 Args: 42 other: The instance of DeviceUtils to compare to. 43 Returns: 44 Whether |self| is less than |other|. 45``` 46 47 48### DeviceUtils.\_\_str\_\_ 49 50Returns the device serial. 51### DeviceUtils.NeedsSU 52 53Checks whether 'su' is needed to access protected resources. 54``` 55 Args: 56 timeout: timeout in seconds 57 retries: number of retries 58 59 Returns: 60 True if 'su' is available on the device and is needed to to access 61 protected resources; False otherwise if either 'su' is not available 62 (e.g. because the device has a user build), or not needed (because adbd 63 already has root privileges). 64 65 Raises: 66 CommandTimeoutError on timeout. 67 DeviceUnreachableError on missing device. 68``` 69 70 71### DeviceUtils.IsOnline 72 73Checks whether the device is online. 74``` 75 Args: 76 timeout: timeout in seconds 77 retries: number of retries 78 79 Returns: 80 True if the device is online, False otherwise. 81 82 Raises: 83 CommandTimeoutError on timeout. 84``` 85 86 87### DeviceUtils.HasRoot 88 89Checks whether or not adbd has root privileges. 90``` 91 Args: 92 timeout: timeout in seconds 93 retries: number of retries 94 95 Returns: 96 True if adbd has root privileges, False otherwise. 97 98 Raises: 99 CommandTimeoutError on timeout. 100 DeviceUnreachableError on missing device. 101``` 102 103 104### DeviceUtils.EnableRoot 105 106Restarts adbd with root privileges. 107``` 108 Args: 109 timeout: timeout in seconds 110 retries: number of retries 111 112 Raises: 113 CommandFailedError if root could not be enabled. 114 CommandTimeoutError on timeout. 115``` 116 117 118### DeviceUtils.IsUserBuild 119 120Checks whether or not the device is running a user build. 121``` 122 Args: 123 timeout: timeout in seconds 124 retries: number of retries 125 126 Returns: 127 True if the device is running a user build, False otherwise (i.e. if 128 it's running a userdebug build). 129 130 Raises: 131 CommandTimeoutError on timeout. 132 DeviceUnreachableError on missing device. 133``` 134 135 136### DeviceUtils.GetExternalStoragePath 137 138Get the device's path to its SD card. 139``` 140 Args: 141 timeout: timeout in seconds 142 retries: number of retries 143 144 Returns: 145 The device's path to its SD card. 146 147 Raises: 148 CommandFailedError if the external storage path could not be determined. 149 CommandTimeoutError on timeout. 150 DeviceUnreachableError on missing device. 151``` 152 153 154### DeviceUtils.GetApplicationPaths 155 156Get the paths of the installed apks on the device for the given package. 157``` 158 Args: 159 package: Name of the package. 160 161 Returns: 162 List of paths to the apks on the device for the given package. 163``` 164 165 166### DeviceUtils.GetApplicationVersion 167 168Get the version name of a package installed on the device. 169``` 170 Args: 171 package: Name of the package. 172 173 Returns: 174 A string with the version name or None if the package is not found 175 on the device. 176``` 177 178 179### DeviceUtils.GetApplicationDataDirectory 180 181Get the data directory on the device for the given package. 182``` 183 Args: 184 package: Name of the package. 185 186 Returns: 187 The package's data directory. 188 Raises: 189 CommandFailedError if the package's data directory can't be found, 190 whether because it's not installed or otherwise. 191``` 192 193 194### DeviceUtils.WaitUntilFullyBooted 195 196Wait for the device to fully boot. 197``` 198 This means waiting for the device to boot, the package manager to be 199 available, and the SD card to be ready. It can optionally mean waiting 200 for wifi to come up, too. 201 202 Args: 203 wifi: A boolean indicating if we should wait for wifi to come up or not. 204 timeout: timeout in seconds 205 retries: number of retries 206 207 Raises: 208 CommandFailedError on failure. 209 CommandTimeoutError if one of the component waits times out. 210 DeviceUnreachableError if the device becomes unresponsive. 211``` 212 213 214### DeviceUtils.Reboot 215 216Reboot the device. 217``` 218 Args: 219 block: A boolean indicating if we should wait for the reboot to complete. 220 wifi: A boolean indicating if we should wait for wifi to be enabled after 221 the reboot. The option has no effect unless |block| is also True. 222 timeout: timeout in seconds 223 retries: number of retries 224 225 Raises: 226 CommandTimeoutError on timeout. 227 DeviceUnreachableError on missing device. 228``` 229 230 231### DeviceUtils.Install 232 233Install an APK. 234``` 235 Noop if an identical APK is already installed. 236 237 Args: 238 apk: An ApkHelper instance or string containing the path to the APK. 239 allow_downgrade: A boolean indicating if we should allow downgrades. 240 reinstall: A boolean indicating if we should keep any existing app data. 241 permissions: Set of permissions to set. If not set, finds permissions with 242 apk helper. To set no permissions, pass []. 243 timeout: timeout in seconds 244 retries: number of retries 245 246 Raises: 247 CommandFailedError if the installation fails. 248 CommandTimeoutError if the installation times out. 249 DeviceUnreachableError on missing device. 250``` 251 252 253### DeviceUtils.InstallSplitApk 254 255Install a split APK. 256``` 257 Noop if all of the APK splits are already installed. 258 259 Args: 260 base_apk: An ApkHelper instance or string containing the path to the base 261 APK. 262 split_apks: A list of strings of paths of all of the APK splits. 263 allow_downgrade: A boolean indicating if we should allow downgrades. 264 reinstall: A boolean indicating if we should keep any existing app data. 265 allow_cached_props: Whether to use cached values for device properties. 266 permissions: Set of permissions to set. If not set, finds permissions with 267 apk helper. To set no permissions, pass []. 268 timeout: timeout in seconds 269 retries: number of retries 270 271 Raises: 272 CommandFailedError if the installation fails. 273 CommandTimeoutError if the installation times out. 274 DeviceUnreachableError on missing device. 275 DeviceVersionError if device SDK is less than Android L. 276``` 277 278 279### DeviceUtils.Uninstall 280 281Remove the app |package\_name| from the device. 282``` 283 This is a no-op if the app is not already installed. 284 285 Args: 286 package_name: The package to uninstall. 287 keep_data: (optional) Whether to keep the data and cache directories. 288 timeout: Timeout in seconds. 289 retries: Number of retries. 290 291 Raises: 292 CommandFailedError if the uninstallation fails. 293 CommandTimeoutError if the uninstallation times out. 294 DeviceUnreachableError on missing device. 295``` 296 297 298### DeviceUtils.RunShellCommand 299 300Run an ADB shell command. 301``` 302 The command to run |cmd| should be a sequence of program arguments or else 303 a single string. 304 305 When |cmd| is a sequence, it is assumed to contain the name of the command 306 to run followed by its arguments. In this case, arguments are passed to the 307 command exactly as given, without any further processing by the shell. This 308 allows to easily pass arguments containing spaces or special characters 309 without having to worry about getting quoting right. Whenever possible, it 310 is recomended to pass |cmd| as a sequence. 311 312 When |cmd| is given as a string, it will be interpreted and run by the 313 shell on the device. 314 315 This behaviour is consistent with that of command runners in cmd_helper as 316 well as Python's own subprocess.Popen. 317 318 TODO(perezju) Change the default of |check_return| to True when callers 319 have switched to the new behaviour. 320 321 Args: 322 cmd: A string with the full command to run on the device, or a sequence 323 containing the command and its arguments. 324 check_return: A boolean indicating whether or not the return code should 325 be checked. 326 cwd: The device directory in which the command should be run. 327 env: The environment variables with which the command should be run. 328 run_as: A string containing the package as which the command should be 329 run. 330 as_root: A boolean indicating whether the shell command should be run 331 with root privileges. 332 single_line: A boolean indicating if only a single line of output is 333 expected. 334 large_output: Uses a work-around for large shell command output. Without 335 this large output will be truncated. 336 raw_output: Whether to only return the raw output 337 (no splitting into lines). 338 timeout: timeout in seconds 339 retries: number of retries 340 341 Returns: 342 If single_line is False, the output of the command as a list of lines, 343 otherwise, a string with the unique line of output emmited by the command 344 (with the optional newline at the end stripped). 345 346 Raises: 347 AdbCommandFailedError if check_return is True and the exit code of 348 the command run on the device is non-zero. 349 CommandFailedError if single_line is True but the output contains two or 350 more lines. 351 CommandTimeoutError on timeout. 352 DeviceUnreachableError on missing device. 353``` 354 355 356### DeviceUtils.KillAll 357 358Kill all processes with the given name on the device. 359``` 360 Args: 361 process_name: A string containing the name of the process to kill. 362 exact: A boolean indicating whether to kill all processes matching 363 the string |process_name| exactly, or all of those which contain 364 |process_name| as a substring. Defaults to False. 365 signum: An integer containing the signal number to send to kill. Defaults 366 to SIGKILL (9). 367 as_root: A boolean indicating whether the kill should be executed with 368 root privileges. 369 blocking: A boolean indicating whether we should wait until all processes 370 with the given |process_name| are dead. 371 quiet: A boolean indicating whether to ignore the fact that no processes 372 to kill were found. 373 timeout: timeout in seconds 374 retries: number of retries 375 376 Returns: 377 The number of processes attempted to kill. 378 379 Raises: 380 CommandFailedError if no process was killed and |quiet| is False. 381 CommandTimeoutError on timeout. 382 DeviceUnreachableError on missing device. 383``` 384 385 386### DeviceUtils.StartActivity 387 388Start package's activity on the device. 389``` 390 Args: 391 intent_obj: An Intent object to send. 392 blocking: A boolean indicating whether we should wait for the activity to 393 finish launching. 394 trace_file_name: If present, a string that both indicates that we want to 395 profile the activity and contains the path to which the 396 trace should be saved. 397 force_stop: A boolean indicating whether we should stop the activity 398 before starting it. 399 timeout: timeout in seconds 400 retries: number of retries 401 402 Raises: 403 CommandFailedError if the activity could not be started. 404 CommandTimeoutError on timeout. 405 DeviceUnreachableError on missing device. 406``` 407 408 409### DeviceUtils.StartInstrumentation 410 411### DeviceUtils.BroadcastIntent 412 413Send a broadcast intent. 414``` 415 Args: 416 intent: An Intent to broadcast. 417 timeout: timeout in seconds 418 retries: number of retries 419 420 Raises: 421 CommandTimeoutError on timeout. 422 DeviceUnreachableError on missing device. 423``` 424 425 426### DeviceUtils.GoHome 427 428Return to the home screen and obtain launcher focus. 429``` 430 This command launches the home screen and attempts to obtain 431 launcher focus until the timeout is reached. 432 433 Args: 434 timeout: timeout in seconds 435 retries: number of retries 436 437 Raises: 438 CommandTimeoutError on timeout. 439 DeviceUnreachableError on missing device. 440``` 441 442 443### DeviceUtils.ForceStop 444 445Close the application. 446``` 447 Args: 448 package: A string containing the name of the package to stop. 449 timeout: timeout in seconds 450 retries: number of retries 451 452 Raises: 453 CommandTimeoutError on timeout. 454 DeviceUnreachableError on missing device. 455``` 456 457 458### DeviceUtils.ClearApplicationState 459 460Clear all state for the given package. 461``` 462 Args: 463 package: A string containing the name of the package to stop. 464 permissions: List of permissions to set after clearing data. 465 timeout: timeout in seconds 466 retries: number of retries 467 468 Raises: 469 CommandTimeoutError on timeout. 470 DeviceUnreachableError on missing device. 471``` 472 473 474### DeviceUtils.SendKeyEvent 475 476Sends a keycode to the device. 477``` 478 See the devil.android.sdk.keyevent module for suitable keycode values. 479 480 Args: 481 keycode: A integer keycode to send to the device. 482 timeout: timeout in seconds 483 retries: number of retries 484 485 Raises: 486 CommandTimeoutError on timeout. 487 DeviceUnreachableError on missing device. 488``` 489 490 491### DeviceUtils.PushChangedFiles 492 493Push files to the device, skipping files that don't need updating. 494``` 495 When a directory is pushed, it is traversed recursively on the host and 496 all files in it are pushed to the device as needed. 497 Additionally, if delete_device_stale option is True, 498 files that exist on the device but don't exist on the host are deleted. 499 500 Args: 501 host_device_tuples: A list of (host_path, device_path) tuples, where 502 |host_path| is an absolute path of a file or directory on the host 503 that should be minimially pushed to the device, and |device_path| is 504 an absolute path of the destination on the device. 505 timeout: timeout in seconds 506 retries: number of retries 507 delete_device_stale: option to delete stale files on device 508 509 Raises: 510 CommandFailedError on failure. 511 CommandTimeoutError on timeout. 512 DeviceUnreachableError on missing device. 513``` 514 515 516### DeviceUtils.FileExists 517 518Checks whether the given file exists on the device. 519``` 520 Arguments are the same as PathExists. 521``` 522 523 524### DeviceUtils.PathExists 525 526Checks whether the given path(s) exists on the device. 527``` 528 Args: 529 device_path: A string containing the absolute path to the file on the 530 device, or an iterable of paths to check. 531 as_root: Whether root permissions should be use to check for the existence 532 of the given path(s). 533 timeout: timeout in seconds 534 retries: number of retries 535 536 Returns: 537 True if the all given paths exist on the device, False otherwise. 538 539 Raises: 540 CommandTimeoutError on timeout. 541 DeviceUnreachableError on missing device. 542``` 543 544 545### DeviceUtils.RemovePath 546 547Removes the given path(s) from the device. 548``` 549 Args: 550 device_path: A string containing the absolute path to the file on the 551 device, or an iterable of paths to check. 552 force: Whether to remove the path(s) with force (-f). 553 recursive: Whether to remove any directories in the path(s) recursively. 554 as_root: Whether root permissions should be use to remove the given 555 path(s). 556 timeout: timeout in seconds 557 retries: number of retries 558``` 559 560 561### DeviceUtils.PullFile 562 563Pull a file from the device. 564``` 565 Args: 566 device_path: A string containing the absolute path of the file to pull 567 from the device. 568 host_path: A string containing the absolute path of the destination on 569 the host. 570 timeout: timeout in seconds 571 retries: number of retries 572 573 Raises: 574 CommandFailedError on failure. 575 CommandTimeoutError on timeout. 576``` 577 578 579### DeviceUtils.ReadFile 580 581Reads the contents of a file from the device. 582``` 583 Args: 584 device_path: A string containing the absolute path of the file to read 585 from the device. 586 as_root: A boolean indicating whether the read should be executed with 587 root privileges. 588 force_pull: A boolean indicating whether to force the operation to be 589 performed by pulling a file from the device. The default is, when the 590 contents are short, to retrieve the contents using cat instead. 591 timeout: timeout in seconds 592 retries: number of retries 593 594 Returns: 595 The contents of |device_path| as a string. Contents are intepreted using 596 universal newlines, so the caller will see them encoded as ' 597'. Also, 598 all lines will be terminated. 599 600 Raises: 601 AdbCommandFailedError if the file can't be read. 602 CommandTimeoutError on timeout. 603 DeviceUnreachableError on missing device. 604``` 605 606 607### DeviceUtils.WriteFile 608 609Writes |contents| to a file on the device. 610``` 611 Args: 612 device_path: A string containing the absolute path to the file to write 613 on the device. 614 contents: A string containing the data to write to the device. 615 as_root: A boolean indicating whether the write should be executed with 616 root privileges (if available). 617 force_push: A boolean indicating whether to force the operation to be 618 performed by pushing a file to the device. The default is, when the 619 contents are short, to pass the contents using a shell script instead. 620 timeout: timeout in seconds 621 retries: number of retries 622 623 Raises: 624 CommandFailedError if the file could not be written on the device. 625 CommandTimeoutError on timeout. 626 DeviceUnreachableError on missing device. 627``` 628 629 630### DeviceUtils.ListDirectory 631 632List all files on a device directory. 633``` 634 Mirroring os.listdir (and most client expectations) the resulting list 635 does not include the special entries '.' and '..' even if they are present 636 in the directory. 637 638 Args: 639 device_path: A string containing the path of the directory on the device 640 to list. 641 as_root: A boolean indicating whether the to use root privileges to list 642 the directory contents. 643 timeout: timeout in seconds 644 retries: number of retries 645 646 Returns: 647 A list of filenames for all entries contained in the directory. 648 649 Raises: 650 AdbCommandFailedError if |device_path| does not specify a valid and 651 accessible directory in the device. 652 CommandTimeoutError on timeout. 653 DeviceUnreachableError on missing device. 654``` 655 656 657### DeviceUtils.StatDirectory 658 659List file and stat info for all entries on a device directory. 660``` 661 Implementation notes: this is currently implemented by parsing the output 662 of 'ls -a -l' on the device. Whether possible and convenient, we attempt to 663 make parsing strict and return values mirroring those of the standard |os| 664 and |stat| Python modules. 665 666 Mirroring os.listdir (and most client expectations) the resulting list 667 does not include the special entries '.' and '..' even if they are present 668 in the directory. 669 670 Args: 671 device_path: A string containing the path of the directory on the device 672 to list. 673 as_root: A boolean indicating whether the to use root privileges to list 674 the directory contents. 675 timeout: timeout in seconds 676 retries: number of retries 677 678 Returns: 679 A list of dictionaries, each containing the following keys: 680 filename: A string with the file name. 681 st_mode: File permissions, use the stat module to interpret these. 682 st_nlink: Number of hard links (may be missing). 683 st_owner: A string with the user name of the owner. 684 st_group: A string with the group name of the owner. 685 st_rdev_pair: Device type as (major, minior) (only if inode device). 686 st_size: Size of file, in bytes (may be missing for non-regular files). 687 st_mtime: Time of most recent modification, in seconds since epoch 688 (although resolution is in minutes). 689 symbolic_link_to: If entry is a symbolic link, path where it points to; 690 missing otherwise. 691 692 Raises: 693 AdbCommandFailedError if |device_path| does not specify a valid and 694 accessible directory in the device. 695 CommandTimeoutError on timeout. 696 DeviceUnreachableError on missing device. 697``` 698 699 700### DeviceUtils.StatPath 701 702Get the stat attributes of a file or directory on the device. 703``` 704 Args: 705 device_path: A string containing the path of a file or directory from 706 which to get attributes. 707 as_root: A boolean indicating whether the to use root privileges to 708 access the file information. 709 timeout: timeout in seconds 710 retries: number of retries 711 712 Returns: 713 A dictionary with the stat info collected; see StatDirectory for details. 714 715 Raises: 716 CommandFailedError if device_path cannot be found on the device. 717 CommandTimeoutError on timeout. 718 DeviceUnreachableError on missing device. 719``` 720 721 722### DeviceUtils.FileSize 723 724Get the size of a file on the device. 725``` 726 Note: This is implemented by parsing the output of the 'ls' command on 727 the device. On some Android versions, when passing a directory or special 728 file, the size is *not* reported and this function will throw an exception. 729 730 Args: 731 device_path: A string containing the path of a file on the device. 732 as_root: A boolean indicating whether the to use root privileges to 733 access the file information. 734 timeout: timeout in seconds 735 retries: number of retries 736 737 Returns: 738 The size of the file in bytes. 739 740 Raises: 741 CommandFailedError if device_path cannot be found on the device, or 742 its size cannot be determited for some reason. 743 CommandTimeoutError on timeout. 744 DeviceUnreachableError on missing device. 745``` 746 747 748### DeviceUtils.GetLanguage 749 750Returns the language setting on the device. 751``` 752 Args: 753 cache: Whether to use cached properties when available. 754``` 755 756 757### DeviceUtils.SetJavaAsserts 758 759Enables or disables Java asserts. 760``` 761 Args: 762 enabled: A boolean indicating whether Java asserts should be enabled 763 or disabled. 764 timeout: timeout in seconds 765 retries: number of retries 766 767 Returns: 768 True if the device-side property changed and a restart is required as a 769 result, False otherwise. 770 771 Raises: 772 CommandTimeoutError on timeout. 773``` 774 775 776### DeviceUtils.GetCountry 777 778Returns the country setting on the device. 779``` 780 Args: 781 cache: Whether to use cached properties when available. 782``` 783 784 785### DeviceUtils.GetProp 786 787Gets a property from the device. 788``` 789 Args: 790 property_name: A string containing the name of the property to get from 791 the device. 792 cache: Whether to use cached properties when available. 793 timeout: timeout in seconds 794 retries: number of retries 795 796 Returns: 797 The value of the device's |property_name| property. 798 799 Raises: 800 CommandTimeoutError on timeout. 801``` 802 803 804### DeviceUtils.SetProp 805 806Sets a property on the device. 807``` 808 Args: 809 property_name: A string containing the name of the property to set on 810 the device. 811 value: A string containing the value to set to the property on the 812 device. 813 check: A boolean indicating whether to check that the property was 814 successfully set on the device. 815 timeout: timeout in seconds 816 retries: number of retries 817 818 Raises: 819 CommandFailedError if check is true and the property was not correctly 820 set on the device (e.g. because it is not rooted). 821 CommandTimeoutError on timeout. 822``` 823 824 825### DeviceUtils.GetABI 826 827Gets the device main ABI. 828``` 829 Args: 830 timeout: timeout in seconds 831 retries: number of retries 832 833 Returns: 834 The device's main ABI name. 835 836 Raises: 837 CommandTimeoutError on timeout. 838``` 839 840 841### DeviceUtils.GetPids 842 843Returns the PIDs of processes with the given name. 844``` 845 Note that the |process_name| is often the package name. 846 847 Args: 848 process_name: A string containing the process name to get the PIDs for. 849 timeout: timeout in seconds 850 retries: number of retries 851 852 Returns: 853 A dict mapping process name to a list of PIDs for each process that 854 contained the provided |process_name|. 855 856 Raises: 857 CommandTimeoutError on timeout. 858 DeviceUnreachableError on missing device. 859``` 860 861 862### DeviceUtils.GetEnforce 863 864Get the current mode of SELinux. 865``` 866 Args: 867 timeout: timeout in seconds 868 retries: number of retries 869 870 Returns: 871 True (enforcing), False (permissive), or None (disabled). 872 873 Raises: 874 CommandFailedError on failure. 875 CommandTimeoutError on timeout. 876 DeviceUnreachableError on missing device. 877``` 878 879 880### DeviceUtils.SetEnforce 881 882Modify the mode SELinux is running in. 883``` 884 Args: 885 enabled: a boolean indicating whether to put SELinux in encorcing mode 886 (if True), or permissive mode (otherwise). 887 timeout: timeout in seconds 888 retries: number of retries 889 890 Raises: 891 CommandFailedError on failure. 892 CommandTimeoutError on timeout. 893 DeviceUnreachableError on missing device. 894``` 895 896 897### DeviceUtils.TakeScreenshot 898 899Takes a screenshot of the device. 900``` 901 Args: 902 host_path: A string containing the path on the host to save the 903 screenshot to. If None, a file name in the current 904 directory will be generated. 905 timeout: timeout in seconds 906 retries: number of retries 907 908 Returns: 909 The name of the file on the host to which the screenshot was saved. 910 911 Raises: 912 CommandFailedError on failure. 913 CommandTimeoutError on timeout. 914 DeviceUnreachableError on missing device. 915``` 916 917 918### DeviceUtils.GetMemoryUsageForPid 919 920Gets the memory usage for the given PID. 921``` 922 Args: 923 pid: PID of the process. 924 timeout: timeout in seconds 925 retries: number of retries 926 927 Returns: 928 A dict containing memory usage statistics for the PID. May include: 929 Size, Rss, Pss, Shared_Clean, Shared_Dirty, Private_Clean, 930 Private_Dirty, VmHWM 931 932 Raises: 933 CommandTimeoutError on timeout. 934``` 935 936 937### DeviceUtils.DismissCrashDialogIfNeeded 938 939Dismiss the error/ANR dialog if present. 940``` 941 Returns: Name of the crashed package if a dialog is focused, 942 None otherwise. 943``` 944 945 946### DeviceUtils.GetLogcatMonitor 947 948Returns a new LogcatMonitor associated with this device. 949``` 950 Parameters passed to this function are passed directly to 951 |logcat_monitor.LogcatMonitor| and are documented there. 952``` 953 954 955### DeviceUtils.GetClientCache 956 957Returns client cache. 958### DeviceUtils.LoadCacheData 959 960Initializes the cache from data created using DumpCacheData. 961``` 962 The cache is used only if its token matches the one found on the device. 963 This prevents a stale cache from being used (which can happen when sharing 964 devices). 965 966 Args: 967 data: A previously serialized cache (string). 968 timeout: timeout in seconds 969 retries: number of retries 970 971 Returns: 972 Whether the cache was loaded. 973``` 974 975 976### DeviceUtils.DumpCacheData 977 978Dumps the current cache state to a string. 979``` 980 Args: 981 timeout: timeout in seconds 982 retries: number of retries 983 984 Returns: 985 A serialized cache as a string. 986``` 987 988 989### DeviceUtils.RestartAdbd 990 991### DeviceUtils.GrantPermissions 992 993### DeviceUtils.IsScreenOn 994 995Determines if screen is on. 996``` 997 Dumpsys input_method exposes screen on/off state. Below is an explination of 998 the states. 999 1000 Pre-L: 1001 On: mScreenOn=true 1002 Off: mScreenOn=false 1003 L+: 1004 On: mInteractive=true 1005 Off: mInteractive=false 1006 1007 Returns: 1008 True if screen is on, false if it is off. 1009 1010 Raises: 1011 device_errors.CommandFailedError: If screen state cannot be found. 1012``` 1013 1014 1015### DeviceUtils.SetScreen 1016 1017Turns screen on and off. 1018``` 1019 Args: 1020 on: bool to decide state to switch to. True = on False = off. 1021``` 1022 1023 1024### GetAVDs 1025 1026Returns a list of Android Virtual Devices. 1027``` 1028 Returns: 1029 A list containing the configured AVDs. 1030``` 1031 1032 1033### RestartServer 1034 1035Restarts the adb server. 1036``` 1037 Raises: 1038 CommandFailedError if we fail to kill or restart the server. 1039``` 1040 1041 1042