mac os开发android应用通过usb真机调试
当前开发用的ari,sublime + webstrom 开发node.js还比较流畅,还没有出现被堵被坑的局面.
尝试开发android应用时,各种坑,其中一个比较深的坑就是今天要和大家分享的.
mac OS如何真机调试android应用.
但凡接触过android开发的,都对他的模拟器有挥之不去的阴影,不明真相的童鞋可以玩一把模拟器,包你爽!
我在上上一篇博文关于node.js生成android和ios应用里用xcode编译然后模拟器截图,结尾还写到,安卓模拟器的截图以后奉上.
因为android的环境,依赖等一切问题已经影响到了我的食欲,直到今天终于调试成功一把,可惜是在真机,android模拟器调试也许会出现在梦里,所以那篇博文提到的以后,也就没有以后了!
但是真机调试也不是非常顺利,就以我自己用的MX3为例,和大家分享下:
首先android 真机调试需要 ADB 支持.
什么是ADB?
客户端和服务器端交互的一个程序,你操作的电脑就是客户端,而android设备就是服务器端.
所以你的第一步需要在你的电脑安装 adb 客户端,这个客户端在sdk里包含了.因为我下的是 android strdio 里面自带sdk,当然也包括 adb 客户端 (没有sdk的先下载)
下一步,需要设置 adb 系统环境变量
Mac三种设置环境变量的方法见另一篇帖子(点击查看)
我是在 .bash_profile 文件中设置.
我的sdk目录在 /Users/zhangzhi/Library/Android/sdk/
adb 客户端就包含在此目录下的 platform-tools 文件夹下,
所以设置环境变量如下:
$ nano .bash_profile
文件下面新加一行,如下:
export PATH=$PATH:/Users/zhangzhi/Library/Android/sdk/platform-tools
保存,退出,为了让变量及时生效,执行下面命令
$ source .bash_profile
检查是否生效,可以看下 adb 当前版本
$ adb -version
看到这个信息说明是adb 环境变量没有问题的.
下一步,adb 服务器端
上面我们说了,adb 的服务器端就是 android 设备,这里就是我的 MX3手机,服务器端不需要在手机上安装,默认就有,但是需要你打开 usb调试.
下一步,找一个连接电脑好手机的数据线
注意,这不是随随便便的线,比如我一开始用的移动电源的线就不行.
如何证明你找的线,行! 使用mac下一款软件 androidfiletransfer 这是mac os系统和安卓设备传输文件的软件,(没有安装的自己google )
打开这个软件,如果能识别你当前的安卓设备,说明你的线行!,识别不了请换其他数据线!
下一步,找到你android设备的 Vendor ID
这个id 就是 adb 设别设备的重要信息
如何查找此ID:
首先数据线连接电脑和手机,终端命令行运行指令 system_profiler SPUSBDataType
$ system_profiler SPUSBDataType
我只是截取了一部分,显示出了当前连接电脑的usb设备信息,看到是手机标识 M353 ,注意刚才说到的 Vendor ID ,找到并记录下来
MX3 对应的是 0x18d1
下一步,修改 adb 配置文件 adb_usb.ini
配置文件所在路径 ~/.android/adb_usb.ini
$ nano ~/.android/adb_usb.ini
打开后,直接在文件最后一行把 0x18d1 粘贴进去,保存,退出即可.
下一步,你需要重新启动 adb 服务.
$ adb kill-server $ adb start-server
然后查看 adb 是否识别出了 MX3 手机,运行命令
zhangzhi@moke:~/code$ adb devices List of devices attached 353BCHJEJYCW device
最后一行显示已经识别出来 MX3
如果到这一步不能识别的,可以尝试重新强制重启 Finder , adb 服务重启,甚至关闭 IDE 重新打开,或者把掉usb 线重现连接一次.