Documentation ¶
Overview ¶
Package android contains support for dealing with android devices.
Index ¶
- Constants
- Variables
- func SetupLayers(ctx context.Context, d Device, appPkg string, layerPkgs []string, ...) (app.Cleanup, error)
- func SupportsVulkanLayersViaSystemSettings(d Device) bool
- type ActionExtra
- type ActivityAction
- type ActivityActions
- type BoolExtra
- type CustomExtras
- type Device
- type FloatExtra
- type InstalledPackage
- func (p *InstalledPackage) AppDir(ctx context.Context) (string, error)
- func (p *InstalledPackage) ClearCache(ctx context.Context) error
- func (p *InstalledPackage) FileDir(ctx context.Context) (string, error)
- func (p *InstalledPackage) GrantExternalStorageRW(ctx context.Context) error
- func (p *InstalledPackage) OBBExists(ctx context.Context) bool
- func (p *InstalledPackage) Path(ctx context.Context) (string, error)
- func (p *InstalledPackage) Pid(ctx context.Context) (int, error)
- func (p *InstalledPackage) Pull(ctx context.Context, target string) error
- func (p *InstalledPackage) PullOBB(ctx context.Context, target string) error
- func (p *InstalledPackage) PushOBB(ctx context.Context, obbPath string) error
- func (p *InstalledPackage) RemoveOBB(ctx context.Context) error
- func (p *InstalledPackage) SetWrapProperties(ctx context.Context, props ...string) error
- func (p *InstalledPackage) Stop(ctx context.Context) error
- func (p *InstalledPackage) String() string
- func (p *InstalledPackage) Uninstall(ctx context.Context) error
- func (p *InstalledPackage) WrapProperties(ctx context.Context) ([]string, error)
- type InstalledPackages
- func (l InstalledPackages) FindByName(s string) *InstalledPackage
- func (l InstalledPackages) FindByPartialName(s string) InstalledPackages
- func (l InstalledPackages) FindSingleByPartialName(s string) (*InstalledPackage, error)
- func (l InstalledPackages) Len() int
- func (l InstalledPackages) Less(i, j int) bool
- func (l InstalledPackages) Swap(i, j int)
- type IntExtra
- type LogcatMessage
- type LogcatPriority
- type LongExtra
- type ServiceAction
- type ServiceActions
- type StringExtra
- type URIExtra
Constants ¶
const ( // Verbose represents the 'V' logcat message priority. Verbose = LogcatPriority(iota) // Debug represents the 'D' logcat message priority. Debug // Info represents the 'I' logcat message priority. Info // Warning represents the 'W' logcat message priority. Warning // Error represents the 'E' logcat message priority. Error // Fatal represents the 'F' logcat message priority. Fatal )
Variables ¶
var ErrProcessNotFound = fmt.Errorf("Process not found")
ErrProcessNotFound is returned by InstalledPackage.Pid when no running process of the package is found.
Functions ¶
func SetupLayers ¶
func SetupLayers(ctx context.Context, d Device, appPkg string, layerPkgs []string, layers []string) (app.Cleanup, error)
SetupLayers initializes d to use Vulkan layers from layerPkgs limited to the app with package appPkg using the system settings and returns a cleanup to remove the layer settings.
func SupportsVulkanLayersViaSystemSettings ¶
SupportsVulkanLayersViaSystemSettings returns whether the given device supports loading Vulkan layers via the system settings.
Types ¶
type ActionExtra ¶
type ActionExtra interface { // Flags returns the formatted flags to pass to the Android am command. Flags() []string }
ActionExtra is the interface implemented by intent extras.
type ActivityAction ¶
type ActivityAction struct { // The action name. // Example: android.intent.action.MAIN Name string // The package that owns this activity action. Package *InstalledPackage // The activity that performs the action. // Example: FooBarAction Activity string }
ActivityAction represents an Android action that can be sent as an intent to an activity.
func (*ActivityAction) Component ¶
func (a *ActivityAction) Component() string
Component returns the component name with package name prefix. For example: "com.example.app/.ExampleActivity" or "com.example.app/com.foo.ExampleActivity"
func (*ActivityAction) String ¶
func (a *ActivityAction) String() string
type ActivityActions ¶
type ActivityActions []*ActivityAction
ActivityActions is a list of activity actions.
func (ActivityActions) FindByName ¶
func (l ActivityActions) FindByName(action, activity string) *ActivityAction
FindByName returns the service action with the specified names, or nil if no action with the matching names is found.
type CustomExtras ¶
type CustomExtras []string
CustomExtras is a list of custom intent extras
func (CustomExtras) Flags ¶
func (e CustomExtras) Flags() []string
Flags returns the formatted flags to pass to the Android am command.
type Device ¶
type Device interface { bind.DeviceWithShell // InstallAPK installs the specified APK to the device. If reinstall is true // and the package is already installed on the device then it will be replaced. InstallAPK(ctx context.Context, path string, reinstall bool, grantPermissions bool) error // SELinuxEnforcing returns true if the device is currently in a // SELinux enforcing mode, or false if the device is currently in a SELinux // permissive mode. SELinuxEnforcing(ctx context.Context) (bool, error) // SetSELinuxEnforcing changes the SELinux-enforcing mode. SetSELinuxEnforcing(ctx context.Context, enforce bool) error // StartActivity launches the specified action. StartActivity(ctx context.Context, a ActivityAction, extras ...ActionExtra) error // StartActivityForDebug launches an activity in debug mode. StartActivityForDebug(ctx context.Context, a ActivityAction, extras ...ActionExtra) error // StartService launches the specified service. StartService(ctx context.Context, a ServiceAction, extras ...ActionExtra) error // Pushes the local file to the remote one. Push(ctx context.Context, local, remote string) error // Pulls the remote file to the local one. Pull(ctx context.Context, remote, local string) error // RemoveFile removes the given file from the device RemoveFile(ctx context.Context, path string) error // KeyEvent simulates a key-event on the device. KeyEvent(ctx context.Context, key KeyCode) error // SendEvent simulates low-level user-input to the device. SendEvent(ctx context.Context, deviceID, eventType, eventCode, value int) error // SendTouch simulates touch-screen press or release. SendTouch(ctx context.Context, deviceID, x, y int, pressed bool) // GetTouchDimensions returns the resolution of the touch sensor. // This may be different to the dimensions of the LCD screen. GetTouchDimensions(ctx context.Context) (deviceID, minX, maxX, minY, maxY int, ok bool) // GetScreenDimensions returns the resolution of the display. GetScreenDimensions(ctx context.Context) (orientation, width, height int, ok bool) // InstalledPackages returns the sorted list of installed packages on the device. InstalledPackages(ctx context.Context) (InstalledPackages, error) // InstalledPackage returns information about a single installed package on the device. InstalledPackage(ctx context.Context, name string) (*InstalledPackage, error) // UnlockScreen returns true if it managed to turn on and unlock the screen. UnlockScreen(ctx context.Context) (bool, error) // Logcat writes all logcat messages reported by the device to the chan msgs, // blocking until the context is stopped. Logcat(ctx context.Context, msgs chan<- LogcatMessage) error // NativeBridgeABI returns the native ABI for the given emulated ABI for the // device by consulting the ro.dalvik.vm.isa.<emulated_isa>=<native_isa> // system properties. If there is no native ABI for the given ABI, then abi // is simply returned. NativeBridgeABI(ctx context.Context, abi *device.ABI) *device.ABI // ForceStop stops the everything associated with the given package. ForceStop(ctx context.Context, pkg string) error // SystemProperty returns the system property in string. SystemProperty(ctx context.Context, name string) (string, error) // SetSystemProperty sets the system property with the given string value. SetSystemProperty(ctx context.Context, name, value string) error // SystemSetting returns the system setting with the given namespaced key. SystemSetting(ctx context.Context, namespace, key string) (string, error) // SetSystemSetting sets the system setting with with the given namespaced // key to value. SetSystemSetting(ctx context.Context, namespace, key, value string) error // DeleteSystemSetting removes the system setting with with the given // namespaced key. DeleteSystemSetting(ctx context.Context, namespace, key string) error // StartPerfettoTrace starts a perfetto trace. StartPerfettoTrace(ctx context.Context, config *perfetto_pb.TraceConfig, out string, stop task.Signal, ready task.Task) error // SupportsAngle returns true if this device will work with ANGLE SupportsAngle(ctx context.Context) bool }
Device extends the bind.Device interface with capabilities specific to android devices.
type FloatExtra ¶
FloatExtra represents an extra with a float value.
func (FloatExtra) Flags ¶
func (e FloatExtra) Flags() []string
Flags returns the formatted flags to pass to the Android am command.
type InstalledPackage ¶
type InstalledPackage struct { Name string // Name of the package. Device Device // The device this package is installed on. ActivityActions ActivityActions // The activity actions this package supports. ServiceActions ServiceActions // The service actions this package supports. ABI *device.ABI // The ABI of the package or empty Debuggable bool // Whether the package is debuggable or not VersionCode int // The version code as reported by the manifest. VersionName string // The version name as reported by the manifest. MinSDK int // The minimum SDK reported by the manifest. TargetSdk int // The target SDK reported by the manifest. }
InstalledPackage describes a package installed on a device.
func (*InstalledPackage) AppDir ¶
func (p *InstalledPackage) AppDir(ctx context.Context) (string, error)
AppDir returns the absolute path of the installed packages files directory.
func (*InstalledPackage) ClearCache ¶
func (p *InstalledPackage) ClearCache(ctx context.Context) error
ClearCache deletes all data associated with a package.
func (*InstalledPackage) FileDir ¶
func (p *InstalledPackage) FileDir(ctx context.Context) (string, error)
FileDir returns the absolute path of the installed packages files directory.
func (*InstalledPackage) GrantExternalStorageRW ¶
func (p *InstalledPackage) GrantExternalStorageRW(ctx context.Context) error
GrantExternalStorageRW gives an installed package read and write permissions for external storage, this is mainly used to give an apk access to a pushed OBB file.
func (*InstalledPackage) OBBExists ¶
func (p *InstalledPackage) OBBExists(ctx context.Context) bool
OBBExists checks whether an OBB file exists in the matching location for this APK on the device's external storage.
func (*InstalledPackage) Path ¶
func (p *InstalledPackage) Path(ctx context.Context) (string, error)
Path returns the absolute path of the installed package on the device.
func (*InstalledPackage) Pid ¶
func (p *InstalledPackage) Pid(ctx context.Context) (int, error)
Pid returns the PID of the newest (if pgrep exists) running process belonging to the given package.
func (*InstalledPackage) Pull ¶
func (p *InstalledPackage) Pull(ctx context.Context, target string) error
Pull pulls the installed package from the device to the specified local directory.
func (*InstalledPackage) PullOBB ¶
func (p *InstalledPackage) PullOBB(ctx context.Context, target string) error
PullOBB pulls the matching OBB file from the device's external storage to the specified local directory.
func (*InstalledPackage) PushOBB ¶
func (p *InstalledPackage) PushOBB(ctx context.Context, obbPath string) error
PushOBB places a OBB file to the correct location for an APK to access.
func (*InstalledPackage) RemoveOBB ¶
func (p *InstalledPackage) RemoveOBB(ctx context.Context) error
RemoveOBB removes the OBB file for a specific package from external storage.
func (*InstalledPackage) SetWrapProperties ¶
func (p *InstalledPackage) SetWrapProperties(ctx context.Context, props ...string) error
SetWrapProperties sets the list of wrap-properties for the given installed package.
func (*InstalledPackage) Stop ¶
func (p *InstalledPackage) Stop(ctx context.Context) error
Stop stops any activities belonging to the package from running on the device.
func (*InstalledPackage) String ¶
func (p *InstalledPackage) String() string
String returns the package name.
func (*InstalledPackage) Uninstall ¶
func (p *InstalledPackage) Uninstall(ctx context.Context) error
Uninstall uninstalls the package from the device.
func (*InstalledPackage) WrapProperties ¶
func (p *InstalledPackage) WrapProperties(ctx context.Context) ([]string, error)
WrapProperties returns the list of wrap-properties for the given installed package.
type InstalledPackages ¶
type InstalledPackages []*InstalledPackage
InstalledPackages is a list of installed packages.
func (InstalledPackages) FindByName ¶
func (l InstalledPackages) FindByName(s string) *InstalledPackage
FindByName returns the installed package whose name exactly matches s.
func (InstalledPackages) FindByPartialName ¶
func (l InstalledPackages) FindByPartialName(s string) InstalledPackages
FindByPartialName returns a list of installed packages whose name contains or equals s (case insensitive).
func (InstalledPackages) FindSingleByPartialName ¶
func (l InstalledPackages) FindSingleByPartialName(s string) (*InstalledPackage, error)
FindSingleByPartialName returns the single installed package whose name contains or equals s (case insensitive). If none or more than one packages partially matches s then an error is returned. If a package exactly matches s then that is returned regardless of any partial matches.
func (InstalledPackages) Len ¶
func (l InstalledPackages) Len() int
func (InstalledPackages) Less ¶
func (l InstalledPackages) Less(i, j int) bool
func (InstalledPackages) Swap ¶
func (l InstalledPackages) Swap(i, j int)
type LogcatMessage ¶
type LogcatMessage struct { Timestamp time.Time Priority LogcatPriority Tag string ProcessID int ThreadID int Message string }
LogcatMessage represents a single logcat message.
func (LogcatMessage) Log ¶
func (m LogcatMessage) Log(ctx context.Context)
Log writes the LogcatMessage to ctx with the corresponding message severity.
type LogcatPriority ¶
type LogcatPriority int
LogcatPriority represents the priority of a logcat message.
func (LogcatPriority) Severity ¶
func (p LogcatPriority) Severity() log.Severity
Severity returns a Severity that closely corresponds to the priority.
type ServiceAction ¶
type ServiceAction struct { // The action name. // Example: android.intent.action.MAIN Name string // The package that owns this service action. Package *InstalledPackage // The service that performs the action. // Example: FooBarService Service string }
ServiceAction represents an Android action that can be sent as an intent to a service.
func (*ServiceAction) Component ¶
func (a *ServiceAction) Component() string
Component returns the component name with package name prefix. For example: "com.example.app/.ExampleService" or "com.example.app/com.foo.ExampleService"
func (*ServiceAction) String ¶
func (a *ServiceAction) String() string
type ServiceActions ¶
type ServiceActions []*ServiceAction
ServiceActions is a list of service actions.
func (ServiceActions) FindByName ¶
func (l ServiceActions) FindByName(action, service string) *ServiceAction
FindByName returns the service action with the specified names, or nil if no action with the matching names is found.
type StringExtra ¶
StringExtra represents an extra with a string value.
func (StringExtra) Flags ¶
func (e StringExtra) Flags() []string
Flags returns the formatted flags to pass to the Android am command.
Directories ¶
Path | Synopsis |
---|---|
Package adb provides an interface to the Android Debug Bridge.
|
Package adb provides an interface to the Android Debug Bridge. |
Package apk provides methods to get information (e.g.
|
Package apk provides methods to get information (e.g. |
Package binaryxml is a package for dealing with the binary format of the android manifest.
|
Package binaryxml is a package for dealing with the binary format of the android manifest. |
Package manifest supports reading and changing the android manifest xml file.
|
Package manifest supports reading and changing the android manifest xml file. |