概述
上节嘟宝工程结构详解,最后说到USB调式,这节把WIFI调试继续说明。在 Android 开发中,WiFi调试通过 Wi-Fi 网络(而非 USB 数据线)连接 Android 设备和开发电脑,进行应用安装、调试、日志查看等操作。好处在于摆脱线缆束缚,提升移动调试便利性;解决 USB 接口受限或无驱动问题。
WIFI调试
首次配对仍需 USB:Android 10 及以下通常需先用 USB 开启无线调试端口;Android 11+ 支持无线配对(扫码或配对码),但部分旧设备仍需 USB 触发,也就是说第一次调试,需用USB线授权。开启WIFi调试需要两个条件:
- 电脑安装adb工具,并设置环境变量
- Android 开启wifi调试
安装adb
ADB 工具包含在 Android SDK Platform-Tools 中。通过以下安装:
- 打开 SDK Manager,在 Android Studio 菜单栏中,点击 Tools > SDK Manager
- 在弹出的窗口中,切换到 SDK Tools
- 在列表中找到并勾选 Android SDK Platform-Tools
如下图:
- 配置ADB环境变量
打开环境变量:右键点击“此电脑” > “属性” > “高级系统设置” > “环境变量”。
编辑 Path 变量:在系统变量中找到 Path,双击编辑。点击新建,填入完整的 platform-tools 路径(例如:C:\Users\你的用户名\AppData\Local\Android\Sdk\platform-tools)
设置完成之后,重启电脑。在cmd中,输入adb version,如下图安装配置完成:
Android 开启WIFI调试
- 开启开发者选项:在手机上进入 设置 > 关于手机,连续多次点击版本号 ,直到提示您已处于开发者模式。
- 开启 USB 调试:返回>设置> 主界面,进入 开发者选项,找到并打开 USB 调试 开关。
- 首次连接WIFI调试,需要用数据线将手机连接到电脑授权。手机屏幕会弹出一个“允许 USB 调试吗?”的对话框,点击 确定 即可。
- 在开发者选项中界面界面中打开wifi调试:如下图:
- 开启无线调试与开启usb安装,点击无线调试几个字,弹出页面如下:
图中,显示adb所要连接设备的地址与端口。在cmd中,输入adb connect 192.168.188.107:40543即可成功连接。连接成功后,Android studio会出现手机的图标,如下图:
adb常用命令
- adb version 查看adb版本及其安装位置
- adb devices 显示所有通过adb连接的设备
- adb connect 192.168.1.106:105:5555 连接某个设备
- adb disconnect 192.168.1.106:105:5555 断开某个设备
- adb reboot 重启设备
- adb install app.apk 安装apk,注意apk的路径
- adb uninstall app.apk 卸载apk,注意apk路径
- adb shell 进入手机终端的shell,执行linux命令
修改嘟宝Android工程图标与名称
Android工程建立调试安装成功后,apk图标是默认Android小机器人,应用显示名称为拼音DuBao,我们并不想使用这些,而是更改为我们希望的样子。如下图默认样式
修改DuBao应用显示名称
应用显示名称,是app在桌面时,上面图标下面文字,如下图抖音与淘宝的样式:
修改应用显示名称的位置是在AndroidManifest.xml文件中,工程中如下图:
在AndroidManifest.xml,有个android:label标签,它是设置用户显示名称的,它默认设置是DuBao,实际指向的是@string/app_name,我们修改android:label的值看下效果:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.zilong.dubao">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="嘟宝"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.DuBao"
tools:targetApi="31">
<activity
android:name=".HelloWorldActivity"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
运行调试查看图片文字已经改变
说明已经修改成功,回头看android:label标签默认@string/app_name,@string/app_name是个字符串设置,我们通过修改@string/app_name,来修改应用显示名称,先恢复AndroidManifest.xml之前的配置。打开string.xml文件夹
如图,在values>string.xml中,看到app_name,设置的DuBao,修改如下
<resources>
<string name="app_name">嘟宝</string>
</resources>
调试运行后,发现也可正常修改。通过app_name修改的好处是,我在程序源码可使用app_name,日后维护只需要修改app_name指定的名称,无须多方修改。
修改嘟宝app应用图标
嘟宝默认图标是个小机器人,andorid studio工程默认不是通过指定图片,而是通过矢量图生成的图片,查看AndroidManifest.xml文件中,配置图片的选项:
android:icon="@mipmap/ic_launcher"
android:icon指向的是@mipmap/ic_launcher,找到这个文件,打开里面的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
它配置指向前背景与后背景,分别指向两个xml。而这两个xml的内容是绘制矢量图,下图:
绕来绕去,配置图标的根本方法还是在AndroidManifest配置,我们把android:icon指向准备好的图片。准备两张图片,一张方形、一张圆角。拷贝到drawable目录下,命名为fav.png,favround.png。
AndroidManifest代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.zilong.dubao">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@drawable/fav"
android:label="@string/app_name"
android:roundIcon="@drawable/favround"
android:supportsRtl="true"
android:theme="@style/Theme.DuBao"
tools:targetApi="31">
<activity
android:name=".HelloWorldActivity"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
调式运行如下图: