uiautomator2 server must be started before adb shell am instrument -w io.appium.uiautomator2.server.test/androidx.test.runner.AndroidJUnitRunner
(options ...AndroidDeviceOption)
| 81 | // uiautomator2 server must be started before |
| 82 | // adb shell am instrument -w io.appium.uiautomator2.server.test/androidx.test.runner.AndroidJUnitRunner |
| 83 | func NewAndroidDevice(options ...AndroidDeviceOption) (device *AndroidDevice, err error) { |
| 84 | device = &AndroidDevice{ |
| 85 | UIA2IP: UIA2ServerHost, |
| 86 | UIA2Port: UIA2ServerPort, |
| 87 | } |
| 88 | for _, option := range options { |
| 89 | option(device) |
| 90 | } |
| 91 | |
| 92 | deviceList, err := GetAndroidDevices(device.SerialNumber) |
| 93 | if err != nil { |
| 94 | return nil, err |
| 95 | } |
| 96 | |
| 97 | dev := deviceList[0] |
| 98 | device.SerialNumber = dev.Serial() |
| 99 | device.d = dev |
| 100 | device.logcat = NewAdbLogcat(device.SerialNumber) |
| 101 | |
| 102 | log.Info().Str("serial", device.SerialNumber).Msg("select android device") |
| 103 | return device, nil |
| 104 | } |
| 105 | |
| 106 | func GetAndroidDevices(serial ...string) (devices []*gadb.Device, err error) { |
| 107 | var adbClient gadb.Client |