今天因为工作需要用ubuntu20.04系统连接adb进行相关操作,此处简单记一下相关操作步骤和细节,供大家参考:
1、首先usb数据线连接手机至ubuntu20.04所在硬件设备(笔者此处为台式机),然后运行 lsusb,查看相关列表如下:
root@server:~/.android/avd# lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 12d1:107e Huawei Technologies Co., Ltd.
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
可以看到第三行 Huawei Technologies,显然提示已经找到了华为手机。
接下来安装相关软件:
pip install -e uiautomator2
pip install -U weditor
然后运行
python -m uiautomator2 init
通常情况下很可能会报错 runtimeerror usb device xxxx is offline
这证明此时还没有顺利实现手机通过adb链接成功。
$cd ~/.android
$touch adb_usb.ini创建该文件。
$vim adb_usb.ini编辑该文件,添加以下内容
0x12d1
上述adb_usb.ini文件中的12d1来自于第一图中的12d1:107e
vim /etc/udev/rules.d/70-android.rules
添加内容为:
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="107e",MODE="0666", GROUP="plugdev"
其中的12d1与107e需要根据lsusb实际端口进行修改。
chmod +755 /etc/udev/rules.d/70-android.rules
除此之外,还需要在手机端做相应的设置,简单而已就是需要打开手机的开发者模式
即从手机中选择“设置”图标,打开后出现“系统和更新”,然后选择“开发者选项”,在新页面中,打开“开发人员选项”,并在该窗口中向下滑动菜单至“调试”一栏,打开“USB调试”,即可。
现在回到Ubuntu20.04系统中,在命令行模式下输入如下内容:
service udev restart
sudo adb kill-server
sudo adb start-server
adb devices
至此,adb devices就应该显示出已经连接的手机设备,例如:
接下来用简单代码测试一下:
import uiautomator2 as u2
d=u2.connect("KWG5T16A18019728")
print(d.info)
如果顺利运行,则应该出现类似如下所示的运行结果:
至此,已经实现了手机与ubuntu20.04的adb连接与测试。
另外说一句,网上有大侠的帖子中提到需要安装HiSuite,很不可思议的是我在华为应用市场中没有找到。所以没有安装,目前也可以正常使用了。谢谢