1. 环境准备:ADB与Expo的安装与配置
第一次接触Android开发时,我被各种工具链搞得晕头转向。直到发现ADB和Expo这对黄金组合,才真正体会到什么叫"开发如丝般顺滑"。ADB就像是你和Android设备之间的对讲机,而Expo则是让你摆脱复杂配置的瑞士军刀。
先说ADB工具。它全称Android Debug Bridge,是Google官方提供的调试神器。我推荐直接去Android开发者官网下载独立的Platform Tools包,不用安装臃肿的Android Studio。下载后解压到C:\android-platform-tools这样的路径(Mac/Linux用户放~/android-platform-tools),然后把这个路径添加到系统环境变量PATH里。怎么添加?Windows用户按Win+R输入sysdm.cpl打开系统属性→高级→环境变量,找到Path点编辑新建;Mac/Linux用户修改~/.bashrc或~/.zshrc,加上export PATH=$PATH:~/android-platform-tools。
Expo的安装更简单。确保你已经有Node.js环境(建议16.x以上版本),打开终端运行:
npm install -g expo-cli这个命令会全局安装Expo命令行工具。我遇到过npm权限问题,如果报错可以试试前面加sudo(Mac/Linux)或用管理员权限打开终端(Windows)。
2. 设备连接:从USB调试到端口转发
连接真机调试是开发中最爽的环节,但也最容易踩坑。记得第一次用小米手机调试时,USB调试选项死活找不到,后来发现MIUI需要先在"我的设备"-"全部参数"里连点7次MIUI版本号才能激活开发者模式。
具体操作流程:
- 手机设置→关于手机→版本号连点7次
- 返回设置→系统和更新→开发者选项
- 开启USB调试和USB安装(后者对Expo很重要)
- 用原装数据线连接电脑(山寨线可能只能充电)
连接后终端输入:
adb devices如果看到一串设备ID说明连接成功。如果显示未授权,检查手机是否弹出授权对话框。我遇到过Win10驱动问题,可以试试adb kill-server再adb start-server。
更高级的玩法是无线调试。先用USB线连接,然后:
adb tcpip 5555 adb connect 手机IP:5555拔掉线也能调试了!不过Expo调试需要端口转发:
adb reverse tcp:8081 tcp:8081这个命令让手机的8081端口映射到电脑的8081端口,正是Expo开发服务器默认端口。
3. 项目创建:Expo的魔法起手式
用Expo创建新项目就像搭积木一样简单。找个合适的目录运行:
npx create-expo-app my-app cd my-app我习惯用TypeScript模板,可以加上--template参数。创建完成后目录结构非常清晰:
- assets放图片字体
- app是代码主目录(新版Expo结构)
- node_modules不用多说
- 配置文件expo.config.js是核心
启动开发服务器:
npm start这时会弹出二维码和本地调试地址。但别急着扫码!先说说我踩过的坑:如果报错说端口被占用,可能是之前进程没关干净。Windows用:
netstat -ano | findstr 8081 taskkill /PID 占用进程号 /FMac/Linux用:
lsof -i :8081 kill -9 进程号4. 实时调试:Expo Go的妙用
手机应用商店下载Expo Go(安卓可能需要Google Play,国内用户可以用应用宝)。打开App扫码就能看到你的应用了!这里有几个实用技巧:
- 摇一摇手机调出开发者菜单(模拟器按Ctrl+M)
- 开启"快速刷新"功能,保存代码秒更新
- 在电脑浏览器打开http://localhost:8081,能看到完整的调试日志
遇到白屏别慌,试试这些方法:
- 检查手机电脑是否同WiFi
- 关闭电脑防火墙试试
- 终端输入expo start --clear清除缓存
- 重启adb服务:adb kill-server && adb start-server
进阶玩法是用Android Studio的模拟器。先创建虚拟设备,然后:
expo start --android会自动启动模拟器并安装Expo Go。比真机调试更稳定,特别适合测试不同分辨率设备。
5. 常见问题排雷指南
ADB找不到设备:
- 换USB口试试(机箱后面的USB3.0口最稳)
- 检查数据线是否支持数据传输
- 手机下拉通知栏把USB模式从"仅充电"改为"文件传输"
Expo Go连接超时:
expo start --tunnel这个命令会通过ngrok创建外网链接,适合公司内网限制严格的情况
热更新失效: 修改expo.config.js:
{ "updates": { "fallbackToCacheTimeout": 0 } }安卓闪退问题:
adb logcat | grep -i exception这个命令能抓取崩溃日志,比Expo的日志更详细
6. 效率提升技巧
- 在VS Code安装Expo Tools插件,可以直接扫码启动
- 配置adb命令别名节省时间:
# 在~/.bashrc添加 alias adbd="adb devices" alias adbr="adb reverse tcp:8081 tcp:8081"- 使用expo-dev-client构建自定义开发客户端,可以添加原生模块
- 调试性能问题时,在开发者菜单打开"显示FPS"和"性能监视器"
我习惯的工作流是:
- 早晨adb devices检查连接
- expo start --clear开启新会话
- VS Code分屏一边写代码一边看日志
- 真机和模拟器同时测试
- 下班前adb logcat > log.txt保存当天日志
7. 从调试到发布
当项目准备上线时,Expo提供了便捷的构建命令:
expo build:android但在此之前,建议:
- 修改app.json中的name和slug
- 准备512x512的应用图标放在assets目录
- 配置splash屏幕:
{ "expo": { "splash": { "image": "./assets/splash.png", "resizeMode": "contain" } } }构建完成后用adb安装测试:
adb install app.apk测试无误后就可以上传到应用商店了。整个流程从开发到发布完全可以在命令行完成,这才是现代开发的魅力所在。