adblinux安装
1. Ubuntu下adb的使用及常见问题处理
Ubuntu下adb的使用及常见问题处理
方案一:使用ubuntu系统自带的安装包
sudo apt-get install android-tools-adb
或者
sudo apt-get install adb
方案二:使用Android源码编译生成的adb文件
Android源码编译完成之后,会在编译过的项目目录下./out/host/linux-x86/bin/生成adb文件,需要将其拷贝到系统的/usr/bin目录下,并更改权限。
sudo cp /home/apuser/code/out/host/linux-x86/bin/adb /usr/bin
sudo chmod a+x /usr/bin/adb
说明:这个adb文件也可以在android-sdk-linux下的platform-tools目录下找到。
在终端运行 adb help或者adb查看adb是否安装成功。
adb help
或者
adb
正常情况下,可看到adb的版本信息,以及adb支持的相关指令和说明。
mkdir~/.android
echo 0x1782 > ~/.android/adb_usb.ini
可以查看/home/apuser/.android/adb_usb.ini是否生成成功,且内容为0x1782
这个0x1782是设备的VID号,可以使用lsusb指令查询自己设备的VID号是多少,如果是调试多个设备,可依次将设备的VID号添加到adb_usb.ini中
备注:展讯为0x1782,MTK为0x0e8d,高通为0x056c
到:/etc/udev/rules.d/51-android.rules命令:
cd /etc/udev/rules.d
sudo gedit/etc/udev/rules.d/51-android.rules
添加
SUBSYSTEM=="usb",SYSFS{idVendor}=="1782", MODE="0666",GROUP="plugdev"
其中 1782 为展讯设备号,也可以通过lsusb 来查看所有 usb 设备。
说明:
1、展讯的设备号是1782,MTK的设备号是0e8d,高通660的设备号是056c,
其他平台的可查找确认后,填写到这里。
2、如果没有/etc/udev/rules.d/51-android.rules 文件,需要自己创建一下。
3、修改/etc/udev/rules.d/51-android.rules不需要重启Linux机器,重新插拔一下设备就可以了。再次运行adb devices就可以看到你的设备已经连接。
在命令窗口执行adb shell; adb devices
可以shell登录手机,也可以出 log, logcate 具体命令还需要学习。
使用上文的步骤操作之后,大多数系统里adb都可以使用,但在有些版本的adb或者系统中仍会报如下问题:
apuser@ubuntu2:~/adbtools$ adb devices
List of devices attached
faf80ac1 no permissions (user in plugdev group; areyour udev rules wrong?); see [http://developer.android.com/tools/device.html]
可使用一下解决方案,进行解决
解决方案:
setp 1: lsusb 找到你手机的usb 地址
apuser@ ubuntu2:~/adbtools$ lsusb
Bus 002 Device 002: ID 1f75:0621 Innostor Technology Corporation
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 0bda:58db Realtek Semiconctor Corp.
Bus 001 Device 005: ID 8087:0a2b Intel Corp.
Bus 001 Device 004: ID 138a:0097 Validity Sensors, Inc.
Bus 001 Device 003: ID18f8:0f99
Bus 001 Device 014: ID 19d2:ffb0 ZTE WCDMA Technologies MSM
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
他会列出来所有的usb 设备。如果试下找不到,那么拔掉设备看下,哪了没有了就是哪个。
setp2: 配置规则文件
apuser@ ubuntu2:~/adbtools$ sudo gedit /etc/udev/rules.d/51-android.rules
[sudo] password for apuser:
之后把这些文本 到编辑器里面:
ATTR{idProct}=="ffb0",SYMLINK+="android_adb", MODE="0660",GROUP="plugdev", TAG+="uaccess", SYMLINK+="android"
注意:ffb0 是查找到的手机设备的usb 的地址。
Bus 001 Device 014: ID 19d2:ffb0 ZTE WCDMATechnologies MSM
改成你的地址。
如果没有/etc/udev/rules.d/51-android.rules 文件,麻烦自己创建一下。
setp3: 之后执行命令:
apuser@ ubuntu2:~/adbtools$ sudo usermod -a -G plugdev $(id -u -n)
apuser@ ubuntu2:~/adbtools$ sudo udevadm control --reload-rules
apuser@ ubuntu2:~/adbtools$ sudo service udev restart
apuser@ ubuntu2:~/adbtools$ sudo udevadm trigger
setp4: 之后重启adb
apuser@ ubuntu2:~/adbtools$ adb kill-server
apuser@ ubuntu2:~/adbtools$ adb start-server
apuser@ ubuntu2:~/adbtools$ adb devices
List of devices attached
faf80ac1 unauthorized
apuser @ ubuntu2:~$adb devices
List of devices attached
???????????? no permissions
提示很明确,就是adb权限有问题,而且
???????????? no permissions
这样的提示,说明使用的adb版本较低,最好使用高版本的adb,安装Ubuntu系统自带的adb可能会出现这种现象。如果adb版本比较高,就会出现如下提示:
faf80ac1no permissions……
使用adb shell 也会提示权限error
apuser@ ubuntu2:~$adb shell
error:insufficient permissions for device
根本原因是: adb server 需要以 root 的权限启动
临时方法 如下:
apuser@ubuntu2:~$sudo -s
[sudo]password for apuser:
root@ ubuntu2:~#adb kill-server; adb start-server
* daemon not running. starting it now *
* daemon started successfully *
apuser@ ubuntu2:~# exit
apuser @ ubuntu2:~$
再次执行adb shell就可以了。
该权限问题,可使用sudo启动adb来解决,但不是根本解决之道,因为每次都要sudo来提高权限,太麻烦,而且如果使用的eclpse,或者idle来调试时还是要面对该该问题。
最好按本文第一部分的方法安装adb。如果按本文第一部分安装了adb,但还出现改问题,可使用which adb查看,当前使用的adb那个路径下的adb.以确保使用正确的adb
3、如果需要调试多个设备,以下的添加方法可能更为合适
这个方案对于不出现user in plugdev group; are your udev rules wrong?问题的系统来说是可行,的,如果出现user in plugdev group; are your udev rules wrong?问题,就不用考虑了。
清空51-android.rules,添加如下一行,一劳永逸(需要测试好几种设备,每次都添加一个会很麻烦)。
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666", GROUP="plugdev"
我并不是很清楚具体的含义,只是模仿10-vboxdrv.rules来写的,这个是virtualbox的udev规则文件,因为名字开头数字大文件中记录的规则会覆盖名字开头数字小的文件中的规则,所以你需要尽可能设置的文件名大一些,51已经够用了(我原来想写在10-vboxdrv.rules,让他们用一个文件,但是失败了)
adb kill-server
sudo udevadmcontrol --reload-rules
sudo service udevrestart
sudo udevadmtrigger
lsusb
可将这些指令写入一个sh脚本中,配置完规则,或者要检查USB设备时,直接执行该脚本,以提高效率。
2. 如何在centos8中安装android-tools-adb
1、新建AndroidSDK文件夹
cd ~
mkdir AndroidSDK
2、上传tools_r25.2.3-linux.zip到AndroidSDK目录
tools_r25.2.3-linux.zip
3、解压tools_r25.2.3-linux.zip
unzip tools_r25.2.3-linux.zip
4、下载SDK,这一步需要在图形界面下操作,并且需要联网
cd ~/AndroidSDK/tools
./android
#在弹出的图形界面中选择ADB调试工具(Tools目录下的Android SDK Tools、Android Platform Tools、Android SDK Build-tools,根据android版本选择)和要安装的SDK,安装即可. 《linux 就该这么学》
5、配置环境变量
vi ~/.bashrc
#在最后一行下面添加以下代码:
export PATH=$PATH:/root/AndroidSDK/platform-tools
#按ESC键,再按冒号键,输入wq,回车,保存退出
#刷新配置
source .bashrc
3. 如何使用ADB进行调试
adb(Android Debug Bridge)是Android SDK中一个通用的调试工具。我们可以通过这个工具管理设备或手机模拟器的状态。adb其实是一个客户端-服务器端程序, 其中客户端是你用来操作的电脑,服务器端是android设备。
adb可以进行的操作包括:
1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;
2、在设备上运行shell命令;
3、管理设备或手机模拟器上的预定端口;
4、在设备或手机模拟器上复制或粘贴文件。
adb的安装
电脑上需要安装客户端,设备上不需要安装,客户端包含在sdk里,只需要在手机上打开选项settings--applications--development--USBdebugging。
对于Mac和Linux用户,下载好的sdk解压后,可以放~或者任意目录。然后修改~/.bash_profile文件,设置运行环境指向sdk的tools目录。
具体是打开~/.bash_profile文件(如果没有此文件也可以自行添加),在里面加入一行:
export PATH=${PATH}:<你的sdk目录>/tools
然后就可以使用adb命令了。
嫌安装麻烦的同学其实也可以省去上面安装步骤,直接输入完整路径来使用命令。
对于windows xp用户,需要先安装usb驱动,然后如果你只打算使用adb而不想下载整个sdk的话,可以下载这个单独的adb工具包,下载后解压,把里面的adb.exe 和 AdbWinApi.dll 两个文件放到系统盘的windows/system32 文件夹里就可以了。
adb的常用命令
1、安装应用到模拟器:
adb install <path_to_apk></path_to_apk>
比较郁闷的是,Android并没有提供一个卸载应用的命令,只能自己手动删除:
adb shell
cd /data/app
rm app.apk
2、进入设备或模拟器的shell:
adb shell
通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:
adb shell [command]
如:adb shell dmesg会打印出内核的调试信息。
3、发布端口:
你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
4、复制文件:
你可向一个设备或从一个设备中复制文件,复制一个文件或目录到设备或模拟器上:
adb push <source> <destination></destination></source>
如:adb push test.txt /tmp/test.txt
从设备或模拟器上复制一个文件或目录:
adb pull <source> <destination></destination></source>
如:adb pull /addroid/lib/libwebcore.so .
5、搜索模拟器/设备的实例:
取得当前运行的模拟器/设备的实例的列表及每个实例的状态:
adb devices
6、查看bug报告:
adb bugreport
7、记录无线通讯日志:
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
adb shell
logcat -b radio
8、获取设备的ID和序列号:
adb get-proct
adb get-serialno
9、访问数据库sqlite3
adb shell
sqlite3
4. linux系统下如何安装android sdk
一、下载android sdk
下载SDK,下载地址:http://developer.android.com/sdk/index.html,选择Linux(i386)。因为SDK只有32位的,如果装的是64位系统,则要安装ia32-libs,运行32位程序。
ubuntu安装命令:sudo apt-get install ia32-libs(在Ubuntu中的命令)。
centos安装命令:
yum install glibc.i686
下载完成后解压,在终端进入到SDK的根目录,然后执行:tools/android update sdk –no-ui即可开始和windows里面一样的更新。
二、配置环境变量
更新完成后配置环境变量。使用命令 vi /etc/profile 编辑文件profile,然后在下面增加下面内容:
export ANDROID_HOME=/opt/softwaretools/android-sdk-linux
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH
/opt/softwaretools/android-sdk-linux为SDK的根目录。
这个配置之后,以后要执行android里面的命令,就不是需要进到这个目录,直接可以在终端里面输入。
修改完成后,使用命令 :wq! 保存关闭文件,再执行命令 source /etc/profile 使配置生效一下。
在终端输入:android,如果Android SDK Manager窗口出来了,就证明环境配置成功。
三、配置AVD
1、进入$SDK_HOME/toos目录
2、命令窗口运行:./android avd