TestDevice

public class TestDevice
extends NativeDevice

java.lang.Object
   ↳ com.android.tradefed.device.NativeDevice
     ↳ com.android.tradefed.device.TestDevice


實作全堆疊 Android 裝置的 ITestDevice

摘要

巢狀類別

class TestDevice.MicrodroidBuilder

用於建立 Microdroid TestDevice 的建構工具。 

常數

String DISMISS_KEYGUARD_CMD

可用於關閉 Keyguard 的指令。

公用建構函式

TestDevice(IDevice device, IDeviceStateMonitor stateMonitor, IDeviceMonitor allocationMonitor)

公用方法

boolean canSwitchToHeadlessSystemUser()

傳回是否允許切換至無使用者介面系統使用者。

boolean clearErrorDialogs()

嘗試關閉裝置 UI 目前顯示的任何錯誤對話方塊。

int createUser(String name)

建立具有指定名稱和預設旗標 0 的使用者。

int createUser(String name, boolean guest, boolean ephemeral)

使用指定名稱和提供的旗標建立使用者

int createUser(String name, boolean guest, boolean ephemeral, boolean forTesting)

使用指定名稱和提供的旗標建立使用者

int createUserNoThrow(String name)

建立具有指定名稱和預設旗標 0 的使用者。

void disableKeyguard()

Attempts to disable the keyguard.

boolean doesFileExist(String deviceFilePath, int userId)

輔助方法,用於判斷特定使用者裝置上是否有檔案。

boolean doesFileExist(String deviceFilePath)

輔助方法,用於判斷裝置上是否有檔案。

File dumpHeap(String process, String devicePath)

嘗試從 system_server 傾印堆積。

getActiveApexes()

擷取裝置上啟用的 APEX 相關資訊。

getAllSettings(String namespace)

傳回所要求命名空間的鍵/值組合。

String getAndroidId(int userId)

Find and return the android-id associated to a userId, null if not found.

getAndroidIds()

建立與相符使用者 ID 相關聯的 Android ID 對應。

PackageInfo getAppPackageInfo(String packageName)

擷取裝置上安裝的套件相關資訊。

getAppPackageInfos()

擷取裝置上安裝的套件資訊。

InputStreamSource getBugreport()

從裝置擷取錯誤報告。

InputStreamSource getBugreportz()

從裝置擷取錯誤報告。

DeviceFoldableState getCurrentFoldableState()

傳回裝置目前的折疊狀態,如果發生問題則傳回 null。

int getCurrentUser()

傳回目前執行使用者的 ID。

getFoldableStates()

傳回裝置上的摺疊狀態清單。

getInstalledPackageNames()

擷取裝置上的應用程式套件名稱。

KeyguardControllerState getKeyguardState()

傳回物件以取得螢幕鎖定目前的狀態,如果系統不支援,則傳回空值。

Integer getMainUserId()

傳回主要使用者 ID。

getMainlineModuleInfo()

取得裝置上安裝的主線模組相關資訊。

int getMaxNumberOfRunningUsersSupported()

取得支援同時執行的使用者人數上限。

int getMaxNumberOfUsersSupported()

取得支援的使用者人數上限。

Integer getPrimaryUserId()

傳回主要使用者 ID。

InputStreamSource getScreenshot(String format, boolean rescale)

擷取裝置的螢幕截圖。

InputStreamSource getScreenshot(long displayId)

從指定顯示器 ID 的裝置擷取螢幕截圖。

InputStreamSource getScreenshot(String format)

擷取裝置的螢幕截圖。

InputStreamSource getScreenshot()

擷取裝置的螢幕截圖。

String getSetting(int userId, String namespace, String key)

傳回所要求設定的值。

String getSetting(String namespace, String key)

請參閱 getSetting(int, String, String),並在系統使用者上執行。

getUninstallablePackageNames()

擷取可解除安裝的應用程式套件名稱。

int getUserFlags(int userId)

找出並傳回指定使用者的檢舉。

getUserInfos()

取得裝置上 useId 對應 UserInfo 的對應項。

int getUserSerialNumber(int userId)

如果找到與 userId 相關聯的序號,則傳回該序號;否則傳回 -10000。

boolean hasFeature(String feature)

檢查裝置是否支援特定功能。

String installPackage(File packageFile, boolean reinstall, String... extraArgs)

在裝置上安裝 Android 套件。

String installPackage(File packageFile, File certFile, boolean reinstall, String... extraArgs)

在裝置上安裝 Android 套件。

String installPackage(File packageFile, boolean reinstall, boolean grantPermissions, String... extraArgs)

在裝置上安裝 Android 套件。

String installPackageForUser(File packageFile, boolean reinstall, int userId, String... extraArgs)

為特定使用者在裝置上安裝 Android 套件。

String installPackageForUser(File packageFile, boolean reinstall, boolean grantPermissions, int userId, String... extraArgs)

為特定使用者在裝置上安裝 Android 套件。

boolean installPackageWithIncrementalMode(File[] apkFiles, String[] extraArgs, String userId)

以遞增模式安裝 APK。

String installPackages( packageFiles, boolean reinstall, String... extraArgs)

String installPackages( packageFiles, boolean reinstall, boolean grantPermissions, String... extraArgs)

String installPackagesForUser( packageFiles, boolean reinstall, int userId, String... extraArgs)

String installPackagesForUser( packageFiles, boolean reinstall, boolean grantPermissions, int userId, String... extraArgs)

String installRemotePackages( remoteApkPaths, boolean reinstall, String... extraArgs)

String installRemotePackages( remoteApkPaths, boolean reinstall, boolean grantPermissions, String... extraArgs)

boolean isAppEnumerationSupported()

檢查裝置上的平台是否支援應用程式列舉

boolean isHeadlessSystemUserMode()

傳回裝置是否使用無頭系統使用者模式。

boolean isMainUserPermanentAdmin()

傳回主要使用者是否為永久管理員,且無法刪除或降級為非管理員狀態。

boolean isMultiUserSupported()

判斷是否支援多位使用者。

boolean isPackageInstalled(String packageName, String userId)

查詢裝置的指定套件名稱和使用者 ID,檢查該使用者目前是否已安裝應用程式。

boolean isPackageInstalled(String packageName)

查詢裝置的指定套件名稱,檢查目前是否已安裝該套件。

boolean isUserRunning(int userId)

檢查特定使用者是否正在執行。

boolean isUserSecondary(int userId)

根據指定使用者的旗標,傳回該使用者是否為次要使用者。

boolean isUserVisible(int userId)

檢查指定使用者是否可見。

boolean isUserVisibleOnDisplay(int userId, int displayId)

檢查指定使用者是否在指定螢幕上可見。

boolean isVisibleBackgroundUsersOnDefaultDisplaySupported()

傳回裝置是否允許使用者在 ERROR(/java.android.view.Display#DEFAULT_DISPLAY) 中啟動可見的背景。

boolean isVisibleBackgroundUsersSupported()

Returns whether the device allow users to be started visible in the background.

listDisplayIds()

收集裝置上「dumpsys SurfaceFlinger」回報的可用螢幕 ID 清單。

listDisplayIdsForStartingVisibleBackgroundUsers()

取得可用於 start a user visible in the background 的螢幕清單。

listUsers()

取得裝置上的使用者清單。

boolean logBugreport(String dataName, ITestLogger listener)

輔助方法,可擷取錯誤報告並記錄到回報者。

void notifySnapuserd(SnapuserdWaitPhase waitPhase)
void postInvocationTearDown(Throwable exception)

裝置專屬的額外必要清除步驟,會在叫用完成後執行。

boolean removeAdmin(String componentName, int userId)

移除指定使用者中指定的裝置管理員,如果成功則傳回 true,否則傳回 false

void removeOwners()

盡可能移除所有現有的裝置設定檔擁有者。

boolean removeUser(int userId)

從裝置中移除指定使用者。

boolean setDeviceOwner(String componentName, int userId)

在指定使用者中,將裝置管理員元件設為裝置擁有者。

void setFirstBootloaderReboot()
void setSetting(String namespace, String key, String value)

請參閱 setSetting(int, String, String, String),並在系統使用者上執行。

void setSetting(int userId, String namespace, String key, String value)

將設定值新增至特定使用者的命名空間。

void shutdownMicrodroid(ITestDevice microdroidDevice)

關閉 microdroid 裝置 (如有)。

boolean startUser(int userId)

如果指定使用者目前已停止,則會在背景啟動。

boolean startUser(int userId, boolean waitFlag)

如果指定使用者目前已停止,則會在背景啟動。

boolean startVisibleBackgroundUser(int userId, int displayId, boolean waitFlag)

在指定螢幕上啟動指定使用者 (即允許使用者在該螢幕上啟動活動)。

boolean stopUser(int userId)

停止指定使用者。

boolean stopUser(int userId, boolean waitFlag, boolean forceFlag)

停止特定使用者。

boolean supportsMicrodroid()

Checks the preconditions to run a microdroid.

boolean supportsMicrodroid(boolean protectedVm)

Checks the preconditions to run a microdroid.

boolean switchUser(int userId)

切換至其他使用者 ID,並使用預設逾時。

boolean switchUser(int userId, long timeout)

在提供的逾時期限內切換至其他 userId。

Bugreport takeBugreport()

擷取錯誤報告,並在 Bugreport 物件中傳回,以進行處理。

String uninstallPackage(String packageName)

從裝置解除安裝 Android 套件。

String uninstallPackageForUser(String packageName, int userId)

為特定使用者從裝置解除安裝 Android 套件。

void waitForSnapuserd(SnapuserdWaitPhase currentPhase)

受保護的方法

AaptParser createParser(File appFile)
void doAdbReboot(NativeDevice.RebootMode rebootMode, String reason)

執行 adb reboot。

InputStreamSource getBugreportInternal()
File getBugreportzInternal()

Internal Helper method to get the bugreportz zip file as a ERROR(/File).

long getCheckNewUserSleep()

公開測試。

long getHostCurrentTime()

公開測試

void prePostBootSetup()

允許每種裝置類型 (AndroidNativeDevice、TestDevice) 覆寫此方法,以進行特定的開機後設定。

常數

DISMISS_KEYGUARD_CMD

public static final String DISMISS_KEYGUARD_CMD

可用於關閉 Keyguard 的指令。

常數值: "input keyevent 82"

公用建構函式

TestDevice

public TestDevice (IDevice device, 
                IDeviceStateMonitor stateMonitor, 
                IDeviceMonitor allocationMonitor)

公用方法

canSwitchToHeadlessSystemUser

public boolean canSwitchToHeadlessSystemUser ()

傳回是否允許切換至無使用者介面系統使用者。

傳回
boolean

擲回
DeviceNotAvailableException

clearErrorDialogs

public boolean clearErrorDialogs ()

嘗試關閉裝置 UI 目前顯示的任何錯誤對話方塊。

傳回
boolean true 如果沒有對話方塊,或對話方塊已成功清除。 其他情況則為 false

擲回
DeviceNotAvailableException

createUser

public int createUser (String name)

建立具有指定名稱和預設旗標 0 的使用者。

參數
name String:要在裝置上建立的使用者

傳回
int 建立的使用者 ID 整數

擲回
DeviceNotAvailableException

createUser

public int createUser (String name, 
                boolean guest, 
                boolean ephemeral)

使用指定名稱和提供的旗標建立使用者

參數
name String:要在裝置上建立的使用者

guest boolean:在建立期間啟用使用者旗標 --guest

ephemeral boolean:在建立期間啟用使用者旗標 --ephemeral

傳回
int 所建立使用者的 ID

擲回
DeviceNotAvailableException

createUser

public int createUser (String name, 
                boolean guest, 
                boolean ephemeral, 
                boolean forTesting)

使用指定名稱和提供的旗標建立使用者

參數
name String:要在裝置上建立的使用者

guest boolean:在建立期間啟用使用者旗標 --guest

ephemeral boolean:在建立期間啟用使用者旗標 --ephemeral

forTesting boolean:在建立期間啟用測試專用的旗標 --for-testing

傳回
int 所建立使用者的 ID

擲回
DeviceNotAvailableException

createUserNoThrow

public int createUserNoThrow (String name)

建立具有指定名稱和預設旗標 0 的使用者。

參數
name String:要在裝置上建立的使用者

傳回
int 建立的使用者 ID 整數,或錯誤時為 -1。

擲回
DeviceNotAvailableException

disableKeyguard

public void disableKeyguard ()

嘗試停用 Keyguard。

首先,請等待輸入調度作業準備就緒,這大約會在裝置回報 BOOT_COMPLETE 時發生 (顯然是非同步作業),因為目前的架構實作偶爾會出現競爭情況。然後傳送指令來關閉 Keyguard (僅適用於非安全裝置)

擲回
DeviceNotAvailableException

doesFileExist

public boolean doesFileExist (String deviceFilePath, 
                int userId)

輔助方法,用於判斷特定使用者的裝置上是否有檔案。

參數
deviceFilePath String:裝置上要檢查的檔案絕對路徑

userId int:要檢查檔案是否存在的使用者 ID

傳回
boolean 如果檔案存在,則為 true,否則為 false

擲回
DeviceNotAvailableException

doesFileExist

public boolean doesFileExist (String deviceFilePath)

輔助方法,用於判斷裝置上是否有檔案。

參數
deviceFilePath String:裝置上要檢查的檔案絕對路徑

傳回
boolean 如果檔案存在,則為 true,否則為 false

擲回
DeviceNotAvailableException

dumpHeap

public File dumpHeap (String process, 
                String devicePath)

嘗試從 system_server 傾印堆積。呼叫端有責任清除傾印的檔案。

參數
process String:要傾印堆積的裝置程序名稱。

devicePath String:裝置上要放置傾印內容的路徑。這個位置必須是權限允許的位置。

傳回
File 包含報表的 ERROR(/File)。如果發生錯誤,則為空值。

擲回
DeviceNotAvailableException

getActiveApexes

public  getActiveApexes ()

擷取裝置上啟用的 APEX 相關資訊。

傳回
裝置目前已啟用 ERROR(/Set) 組 (共 ApexInfo 組)

擲回
DeviceNotAvailableException

getAllSettings

public  getAllSettings (String namespace)

傳回所要求命名空間的鍵/值組合。

參數
namespace String:必須是 {"system"、"secure"、"global"} 其中之一

傳回
鍵/值組合對應。如果系統不支援命名空間,則為空值。

擲回
DeviceNotAvailableException

getAndroidId

public String getAndroidId (int userId)

尋找並傳回與 userId 相關聯的 android-id,如果找不到則傳回 null。

參數
userId int

傳回
String

擲回
DeviceNotAvailableException

getAndroidIds

public  getAndroidIds ()

建立與相符使用者 ID 對應的 Android ID 對應。無法保證每個使用者 ID 都能在這個函式中找到相關聯的 Android ID,因此部分使用者 ID 可能會比對到空值。

傳回
找到與使用者 ID 相符的 Android ID 對應表。

擲回
DeviceNotAvailableException

getAppPackageInfo

public PackageInfo getAppPackageInfo (String packageName)

擷取裝置上安裝的套件資訊。

參數
packageName String

傳回
PackageInfo 如果無法擷取資訊,則為 PackageInfonull

擲回
DeviceNotAvailableException

getAppPackageInfos

public  getAppPackageInfos ()

擷取裝置上安裝的套件資訊。

傳回
裝置上安裝的 ERROR(/List) 版本。PackageInfo

擲回
DeviceNotAvailableException

getBugreport

public InputStreamSource getBugreport ()

從裝置擷取錯誤報告。

保證這項實作項目在沒有 SD 卡的裝置上 (或 SD 卡尚未掛接時) 仍可繼續運作。

傳回
InputStreamSource InputStreamSource,可視需要產生錯誤報告內容。如果失敗,InputStreamSource 會產生空白 ERROR(/InputStream)

getBugreportz

public InputStreamSource getBugreportz ()

從裝置擷取錯誤報告。ZIP 格式的錯誤報告包含主要錯誤報告,以及有助於偵錯的其他記錄檔。

僅支援「adb version」> 1.0.36

傳回
InputStreamSource 包含 bugreportz 的 zip 檔案的 InputStreamSource,如果失敗則傳回空值。

getCurrentFoldableState

public DeviceFoldableState getCurrentFoldableState ()

傳回裝置目前的折疊狀態,或在發生問題時傳回空值。

傳回
DeviceFoldableState

擲回
DeviceNotAvailableException

getCurrentUser

public int getCurrentUser ()

傳回目前執行使用者的 ID。如有錯誤,請傳回 -10000。

傳回
int

擲回
DeviceNotAvailableException

getFoldableStates

public  getFoldableStates ()

傳回裝置上的摺疊狀態清單。可使用「cmd device_state print-states」取得。

傳回

擲回
DeviceNotAvailableException

getInstalledPackageNames

public  getInstalledPackageNames ()

擷取裝置上的應用程式套件名稱。

傳回
裝置上目前安裝的 ERROR(/Set) 個套件名稱。String

擲回
DeviceNotAvailableException

getKeyguardState

public KeyguardControllerState getKeyguardState ()

傳回物件即可取得 Keyguard 的目前狀態,如果系統不支援,則傳回空值。

傳回
KeyguardControllerState 包含 Keyguard 狀態快照的 KeyguardControllerState,如果系統不支援 Keyguard 查詢,則傳回 Null。

擲回
DeviceNotAvailableException

getMainUserId

public Integer getMainUserId ()

傳回主要使用者 ID。

傳回
Integer 主要使用者的 userId (如有),如果沒有主要使用者,則為空值。

擲回
DeviceNotAvailableException

getMainlineModuleInfo

public  getMainlineModuleInfo ()

取得裝置上安裝的 Mainline 模組相關資訊。

傳回
裝置目前安裝的 ERROR(/Set)String主線模組。

擲回
DeviceNotAvailableException

getMaxNumberOfRunningUsersSupported

public int getMaxNumberOfRunningUsersSupported ()

取得支援同時執行的使用者人數上限。預設為 0。

傳回
int 表示同時執行的使用者人數的整數

擲回
DeviceNotAvailableException

getMaxNumberOfUsersSupported

public int getMaxNumberOfUsersSupported ()

取得支援的使用者人數上限。預設為 0。

傳回
int 整數,表示支援的使用者人數

擲回
DeviceNotAvailableException

getPrimaryUserId

public Integer getPrimaryUserId ()

傳回主要使用者 ID。

傳回
Integer 主要使用者的 userId (如有),如果沒有主要使用者,則為空值。

擲回
DeviceNotAvailableException

getScreenshot

public InputStreamSource getScreenshot (String format, 
                boolean rescale)

擷取裝置的螢幕截圖。建議改用 getScreenshot(String),並採用 JPEG 編碼,以縮小大小。

參數
format String:支援 PNG、JPEG

rescale boolean:是否應重新調整螢幕截圖大小,以縮減產生的圖片大小

傳回
InputStreamSource 螢幕截圖的格式,或 null (如果螢幕截圖未成功)。InputStreamSource

擲回
DeviceNotAvailableException

getScreenshot

public InputStreamSource getScreenshot (long displayId)

從指定顯示器 ID 的裝置擷取螢幕截圖。格式為 PNG。

TODO: extend the implementations above to support 'format' and 'rescale'

參數
displayId long:要擷取螢幕截圖的螢幕顯示 ID。

傳回
InputStreamSource 螢幕截圖的格式,或 null (如果螢幕截圖未成功)。InputStreamSource

擲回
DeviceNotAvailableException

getScreenshot

public InputStreamSource getScreenshot (String format)

擷取裝置的螢幕截圖。 建議改用 getScreenshot(format),並採用 JPEG 編碼,以縮減大小

參數
format String:支援 PNG、JPEG

傳回
InputStreamSource 螢幕截圖的格式,或 null (如果螢幕截圖未成功)。InputStreamSource

擲回
DeviceNotAvailableException

getScreenshot

public InputStreamSource getScreenshot ()

擷取裝置的螢幕截圖。

傳回
InputStreamSource png 格式的螢幕截圖 InputStreamSource,或 null (如果螢幕截圖失敗)。

擲回
DeviceNotAvailableException

getSetting

public String getSetting (int userId, 
                String namespace, 
                String key)

傳回所要求設定的值。 命名空間必須是「system」、「secure」或「global」其中之一

參數
userId int

namespace String

key String

傳回
String 與使用者命名空間:索引鍵相關聯的值。如果找不到,則為空值。

擲回
DeviceNotAvailableException

getSetting

public String getSetting (String namespace, 
                String key)

請參閱 getSetting(int, String, String),並在系統使用者上執行。

參數
namespace String

key String

傳回
String

擲回
DeviceNotAvailableException

getUninstallablePackageNames

public  getUninstallablePackageNames ()

擷取可解除安裝的應用程式套件名稱。目前定義為非系統套件和更新的系統套件。

傳回
裝置上目前安裝的ERROR(/Set)無法解除安裝String套件名稱。

擲回
DeviceNotAvailableException

getUserFlags

public int getUserFlags (int userId)

尋找並傳回指定使用者的標記。 旗標定義於 Android 開放原始碼計畫的「android.content.pm.UserInfo」類別中。

參數
userId int

傳回
int 如果找到與所提供 userId 相關聯的旗標,則傳回這些旗標;否則傳回 -10000。

擲回
DeviceNotAvailableException

getUserInfos

public  getUserInfos ()

取得裝置上 useId 對應 UserInfo 的對應項。如果裝置的輸出內容與預期不符,就會擲回 DeviceRuntimeException

傳回
UserInfo 物件清單。

擲回
DeviceNotAvailableException

getUserSerialNumber

public int getUserSerialNumber (int userId)

如果找到與 userId 相關聯的序號,則傳回該序號;否則傳回 -10000。

參數
userId int

傳回
int

擲回
DeviceNotAvailableException

hasFeature

public boolean hasFeature (String feature)

確認裝置是否支援某項功能。

參數
feature String:格式應為「feature:」或直接為「」。

傳回
boolean 如果找到特徵,則為 True,否則為 False。

擲回
DeviceNotAvailableException

installPackage

public String installPackage (File packageFile, 
                boolean reinstall, 
                String... extraArgs)

在裝置上安裝 Android 套件。

參數
packageFile File:要安裝的 APK 檔案

reinstall boolean:是否應執行重新安裝 (true)

extraArgs String:要傳遞的選用額外引數。如要查看可用選項,請參閱「adb shell pm -h」。

傳回
String 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

擲回
DeviceNotAvailableException

installPackage

public String installPackage (File packageFile, 
                File certFile, 
                boolean reinstall, 
                String... extraArgs)

在裝置上安裝 Android 套件。

注意:只有在安裝時需要明確控管執行階段權限授予作業的用途,才應呼叫這個函式。

參數
packageFile File:要安裝的 APK 檔案

certFile File:是否應執行重新安裝,true 表示是

reinstall boolean:是否應在安裝時授予所有執行階段權限

extraArgs String:要傳遞的選用額外引數。如要查看可用選項,請參閱「adb shell pm -h」。

傳回
String 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

擲回
DeviceNotAvailableException

installPackage

public String installPackage (File packageFile, 
                boolean reinstall, 
                boolean grantPermissions, 
                String... extraArgs)

在裝置上安裝 Android 套件。

注意:只有在安裝時需要明確控管執行階段權限授予作業的用途,才應呼叫這個函式。

參數
packageFile File:要安裝的 APK 檔案

reinstall boolean:是否應執行重新安裝,true 表示是

grantPermissions boolean:是否應在安裝時授予所有執行階段權限

extraArgs String:要傳遞的選用額外引數。如要查看可用選項,請參閱「adb shell pm -h」。

傳回
String 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

擲回
DeviceNotAvailableException

installPackageForUser

public String installPackageForUser (File packageFile, 
                boolean reinstall, 
                int userId, 
                String... extraArgs)

在裝置上為特定使用者安裝 Android 套件。

參數
packageFile File:要安裝的 APK 檔案

reinstall boolean:是否應執行重新安裝,true 表示是

userId int:要安裝的整數使用者 ID。

extraArgs String:要傳遞的選用額外引數。如要查看可用選項,請參閱「adb shell pm -h」。

傳回
String 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

擲回
DeviceNotAvailableException

installPackageForUser

public String installPackageForUser (File packageFile, 
                boolean reinstall, 
                boolean grantPermissions, 
                int userId, 
                String... extraArgs)

在裝置上為特定使用者安裝 Android 套件。

注意:只有在安裝時需要明確控管執行階段權限授予作業的用途,才應呼叫這個函式。

參數
packageFile File:要安裝的 APK 檔案

reinstall boolean:是否應執行重新安裝,true 表示是

grantPermissions boolean:是否應在安裝時授予所有執行階段權限

userId int:要安裝的整數使用者 ID。

extraArgs String:要傳遞的選用額外引數。如要查看可用選項,請參閱「adb shell pm -h」。

傳回
String 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

擲回
DeviceNotAvailableException

installPackageWithIncrementalMode

public boolean installPackageWithIncrementalMode (File[] apkFiles, 
                String[] extraArgs, 
                String userId)

以漸進模式安裝 APK。

參數
apkFiles File:要安裝的 APK 檔案。

extraArgs String

userId String

傳回
boolean

擲回
DeviceNotAvailableException

installPackages

public String installPackages ( packageFiles, 
                boolean reinstall, 
                String... extraArgs)

參數
packageFiles

reinstall boolean

extraArgs String

傳回
String

擲回
DeviceNotAvailableException

installPackages

public String installPackages ( packageFiles, 
                boolean reinstall, 
                boolean grantPermissions, 
                String... extraArgs)

參數
packageFiles

reinstall boolean

grantPermissions boolean

extraArgs String

傳回
String

擲回
DeviceNotAvailableException

installPackagesForUser

public String installPackagesForUser ( packageFiles, 
                boolean reinstall, 
                int userId, 
                String... extraArgs)

參數
packageFiles

reinstall boolean

userId int

extraArgs String

傳回
String

擲回
DeviceNotAvailableException

installPackagesForUser

public String installPackagesForUser ( packageFiles, 
                boolean reinstall, 
                boolean grantPermissions, 
                int userId, 
                String... extraArgs)

參數
packageFiles

reinstall boolean

grantPermissions boolean

userId int

extraArgs String

傳回
String

擲回
DeviceNotAvailableException

installRemotePackages

public String installRemotePackages ( remoteApkPaths, 
                boolean reinstall, 
                String... extraArgs)

參數
remoteApkPaths

reinstall boolean

extraArgs String

傳回
String

擲回
DeviceNotAvailableException

installRemotePackages

public String installRemotePackages ( remoteApkPaths, 
                boolean reinstall, 
                boolean grantPermissions, 
                String... extraArgs)

參數
remoteApkPaths

reinstall boolean

grantPermissions boolean

extraArgs String

傳回
String

擲回
DeviceNotAvailableException

isAppEnumerationSupported

public boolean isAppEnumerationSupported ()

檢查裝置上的平台是否支援應用程式列舉

傳回
boolean 如果支援應用程式列舉,則為 True,否則為 False

擲回
DeviceNotAvailableException

isHeadlessSystemUserMode

public boolean isHeadlessSystemUserMode ()

傳回裝置是否使用無頭系統使用者模式。

傳回
boolean

擲回
DeviceNotAvailableException

isMainUserPermanentAdmin

public boolean isMainUserPermanentAdmin ()

傳回主要使用者是否為永久管理員,且無法刪除或降級為非管理員狀態。

傳回
boolean

擲回
DeviceNotAvailableException

isMultiUserSupported

public boolean isMultiUserSupported ()

判斷是否支援多位使用者。

傳回
boolean 如果支援多使用者,則為 true,否則為 false

擲回
DeviceNotAvailableException

isPackageInstalled

public boolean isPackageInstalled (String packageName, 
                String userId)

針對特定套件名稱和使用者 ID 查詢裝置,檢查該使用者目前是否已安裝應用程式。

參數
packageName String:我們要檢查是否已安裝的套件。

userId String:我們要檢查套件是否已為該使用者安裝。如果為空值,系統會使用主要使用者零。

傳回
boolean 如果套件回報為已安裝,則為 True。否則傳回「false」。

擲回
DeviceNotAvailableException

isPackageInstalled

public boolean isPackageInstalled (String packageName)

查詢裝置的指定套件名稱,檢查目前是否已安裝。

參數
packageName String

傳回
boolean 如果套件回報為已安裝,則為 True。否則傳回「false」。

擲回
DeviceNotAvailableException

isUserRunning

public boolean isUserRunning (int userId)

檢查特定使用者是否正在執行。

參數
userId int

傳回
boolean 如果使用者正在跑步,則為 True;否則為 False。

擲回
DeviceNotAvailableException

isUserSecondary

public boolean isUserSecondary (int userId)

根據指定使用者的旗標,傳回該使用者是否為次要使用者。

參數
userId int

傳回
boolean 如果使用者是次要使用者,則為 true,否則為 false。

擲回
DeviceNotAvailableException

isUserVisible

public boolean isUserVisible (int userId)

檢查指定使用者是否可見。

「可見」使用者是指與「真人」使用者互動的使用者,因此能夠啟動啟動活動 (通常是在預設螢幕上)。

參數
userId int

傳回
boolean

擲回
DeviceNotAvailableException

isUserVisibleOnDisplay

public boolean isUserVisibleOnDisplay (int userId, 
                int displayId)

檢查指定使用者是否在指定螢幕上可見。

「可見」使用者是指與「真人」使用者互動的使用者,因此能夠在該螢幕中啟動活動。

參數
userId int

displayId int

傳回
boolean

擲回
DeviceNotAvailableException

isVisibleBackgroundUsersOnDefaultDisplaySupported

public boolean isVisibleBackgroundUsersOnDefaultDisplaySupported ()

傳回裝置是否允許使用者在 ERROR(/java.android.view.Display#DEFAULT_DISPLAY) 中啟動可見的背景服務。

如果是,您可以呼叫 startVisibleBackgroundUser(int, int, boolean),並傳遞 listDisplayIdsForStartingVisibleBackgroundUsers() 傳回的顯示畫面 (應包含 ERROR(/java.android.view.Display#DEFAULT_DISPLAY))。

傳回
boolean

擲回
DeviceNotAvailableException

isVisibleBackgroundUsersSupported

public boolean isVisibleBackgroundUsersSupported ()

傳回裝置是否允許使用者在背景啟動可見的應用程式。

如果是,您可以呼叫 startVisibleBackgroundUser(int, int, boolean),並傳遞 listDisplayIdsForStartingVisibleBackgroundUsers() 傳回的顯示器。

傳回
boolean

擲回
DeviceNotAvailableException

listDisplayIds

public  listDisplayIds ()

收集裝置上「dumpsys SurfaceFlinger」回報的可用螢幕 ID 清單。

傳回
螢幕清單。Default 一律會傳回預設螢幕 0。

擲回
DeviceNotAvailableException

listDisplayIdsForStartingVisibleBackgroundUsers

public  listDisplayIdsForStartingVisibleBackgroundUsers ()

取得可用於 start a user visible in the background 的螢幕清單。

傳回

擲回
DeviceNotAvailableException

listUsers

public  listUsers ()

取得裝置上的使用者清單。如果裝置的輸出內容與預期不符,系統會擲回 DeviceRuntimeException

傳回
使用者 ID 清單。

擲回
DeviceNotAvailableException

logBugreport

public boolean logBugreport (String dataName, 
                ITestLogger listener)

輔助方法:擷取錯誤報告並記錄給回報者。

參數
dataName String:要回報錯誤報告的名稱。

listener ITestLogger:用於記錄錯誤報告的 ITestLogger

傳回
boolean 如果記錄成功,則為 True,否則為 False。

notifySnapuserd

public void notifySnapuserd (SnapuserdWaitPhase waitPhase)

參數
waitPhase SnapuserdWaitPhase

postInvocationTearDown

public void postInvocationTearDown (Throwable exception)

裝置專屬的額外必要清除步驟,會在叫用完成後執行。

參數
exception Throwable:如果有的話,這是因叫用失敗而引發的最終例外狀況。

removeAdmin

public boolean removeAdmin (String componentName, 
                int userId)

移除指定使用者中指定的裝置管理員,如果成功則傳回 true,否則傳回 false

參數
componentName String:要移除的裝置管理員。

userId int:裝置管理員所在的使用者。

傳回
boolean 成功時為 True,否則為 False。

擲回
DeviceNotAvailableException

removeOwners

public void removeOwners ()

盡可能移除所有現有的裝置設定檔擁有者。

擲回
DeviceNotAvailableException

removeUser

public boolean removeUser (int userId)

從裝置中移除指定使用者。

參數
userId int:要移除的使用者

傳回
boolean 如果成功移除使用者,則為 true,否則為 false。

擲回
DeviceNotAvailableException

setDeviceOwner

public boolean setDeviceOwner (String componentName, 
                int userId)

將裝置管理員元件設為指定使用者的裝置擁有者。

參數
componentName String:裝置管理員成為裝置擁有者。

userId int:裝置擁有者居住的國家/地區。

傳回
boolean 成功時為 True,否則為 False。

擲回
DeviceNotAvailableException

setFirstBootloaderReboot

public void setFirstBootloaderReboot ()

setSetting

public void setSetting (String namespace, 
                String key, 
                String value)

請參閱 setSetting(int, String, String, String),並在系統使用者上執行。

參數
namespace String

key String

value String

擲回
DeviceNotAvailableException

setSetting

public void setSetting (int userId, 
                String namespace, 
                String key, 
                String value)

為特定使用者的命名空間新增設定值。部分設定必須重新啟動裝置後才能使用。命名空間必須是「system」、「secure」或「global」其中之一

參數
userId int

namespace String

key String

value String

擲回
DeviceNotAvailableException

shutdownMicrodroid

public void shutdownMicrodroid (ITestDevice microdroidDevice)

關閉 microdroid 裝置 (如有)。

參數
microdroidDevice ITestDevice

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

startUser

public boolean startUser (int userId)

如果指定使用者目前已停止,則會在背景啟動。如果使用者已在背景執行,這個方法會是 NOOP。

參數
userId int:要在背景啟動的使用者

傳回
boolean 如果使用者已成功在背景啟動,則為 true。

擲回
DeviceNotAvailableException

startUser

public boolean startUser (int userId, 
                boolean waitFlag)

如果指定使用者目前已停止,則會在背景啟動。如果使用者已在背景執行,這個方法會是 NOOP。可提供額外旗標,等待作業生效。

參數
userId int:要在背景啟動的使用者

waitFlag boolean:會讓指令等待使用者啟動並解鎖。

傳回
boolean 如果使用者已成功在背景啟動,則為 true。

擲回
DeviceNotAvailableException

startVisibleBackgroundUser

public boolean startVisibleBackgroundUser (int userId, 
                int displayId, 
                boolean waitFlag)

在指定螢幕中啟動指定使用者 (即允許使用者在該螢幕中啟動活動)。

注意: 這項指令不會檢查使用者是否存在、顯示器是否可用、device supports such feature 等。

參數
userId int:要在背景啟動的使用者

displayId int:要開始顯示的使用者可見內容

waitFlag boolean:會讓指令等待使用者啟動並解鎖。

傳回
boolean true (如果使用者已成功在背景啟動可見的活動)。

擲回
DeviceNotAvailableException

stopUser

public boolean stopUser (int userId)

停止指定使用者。如果使用者已停止,這個方法會是 NOOP。 無法停止目前使用者和系統使用者。

參數
userId int:要停止的使用者。

傳回
boolean 如果使用者已成功停止,則為 true。

擲回
DeviceNotAvailableException

stopUser

public boolean stopUser (int userId, 
                boolean waitFlag, 
                boolean forceFlag)

停止特定使用者。可以提供額外旗標,等待作業生效,並強制終止使用者。無法停止目前使用者和系統使用者。

參數
userId int:要停止的使用者。

waitFlag boolean:指令會等待使用者停止。

forceFlag boolean:會強制停止使用者。

傳回
boolean 如果使用者已成功停止,則為 true。

擲回
DeviceNotAvailableException

supportsMicrodroid

public boolean supportsMicrodroid ()

檢查執行 Microdroid 的先決條件。

傳回
boolean 如果滿足前提條件,則傳回 true,否則傳回 false。

supportsMicrodroid

public boolean supportsMicrodroid (boolean protectedVm)

檢查執行 Microdroid 的先決條件。

參數
protectedVm boolean:如果 microdroid 預計在受保護的 VM 上執行,則為 true。

傳回
boolean 如果滿足前提條件,則傳回 true,否則傳回 false。

switchUser

public boolean switchUser (int userId)

切換至其他使用者 ID,並使用預設逾時。switchUser(int, long)

參數
userId int

傳回
boolean 如果新使用者 ID 與使用者 ID 供應商相符,則為 True。否則傳回「false」。

擲回
DeviceNotAvailableException

switchUser

public boolean switchUser (int userId, 
                long timeout)

在提供的逾時期限內切換至其他使用者 ID。 使用者變更成功後,嘗試停用 Keyguard。

參數
userId int

timeout long:等待時間,之後會傳回 false,表示切換使用者失敗。

傳回
boolean 如果新使用者 ID 與使用者 ID 供應商相符,則為 True。否則傳回「false」。

擲回
DeviceNotAvailableException

takeBugreport

public Bugreport takeBugreport ()

擷取錯誤報告,並在 Bugreport 物件中傳回,以進行處理。如有問題,則傳回空值。Bugreport 物件參照的檔案必須透過 Bugreport.close() 清理。

傳回
Bugreport

uninstallPackage

public String uninstallPackage (String packageName)

從裝置解除安裝 Android 套件。

參數
packageName String:要解除安裝的 Android 套件

傳回
String 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

擲回
DeviceNotAvailableException

uninstallPackageForUser

public String uninstallPackageForUser (String packageName, 
                int userId)

為特定使用者從裝置解除安裝 Android 套件。

參數
packageName String:要解除安裝的 Android 套件

userId int:要解除安裝的整數使用者 ID。

傳回
String 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

擲回
DeviceNotAvailableException

waitForSnapuserd

public void waitForSnapuserd (SnapuserdWaitPhase currentPhase)

參數
currentPhase SnapuserdWaitPhase

擲回
DeviceNotAvailableException

受保護的方法

createParser

protected AaptParser createParser (File appFile)

參數
appFile File

傳回
AaptParser

doAdbReboot

protected void doAdbReboot (NativeDevice.RebootMode rebootMode, 
                String reason)

執行 adb 重新啟動。

參數
rebootMode NativeDevice.RebootMode:這次重新啟動的模式。

reason String:這次重新啟動的原因。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getBugreportInternal

protected InputStreamSource getBugreportInternal ()

傳回
InputStreamSource

getBugreportzInternal

protected File getBugreportzInternal ()

Internal Helper method to get the bugreportz zip file as a ERROR(/File).

傳回
File

getCheckNewUserSleep

protected long getCheckNewUserSleep ()

公開測試。

傳回
long

getHostCurrentTime

protected long getHostCurrentTime ()

可供測試

傳回
long

prePostBootSetup

protected void prePostBootSetup ()

允許每個裝置類型 (AndroidNativeDevice、TestDevice) 覆寫這個方法,以進行特定開機後設定。

擲回
DeviceNotAvailableException