2018-08-10 17:29:26 qq_36788692 阅读数 146

问题描述:
运行java+appium后,提示adb启动失败,打开运行,cmd窗口,输入“adb start-server”。提示“adb server version (31) doesn’t match this client (36); killing”

问题定位:
此时是因为其他工具(pp助手 360助手等等)占用了adb的端口(adb端口默认是5037)

问题解决:
1.杀掉占用adb端口的其他进程(直接关闭应用程序是解决不了的)
5037为adb默认端口,若5037端口被占用,
a.查看占用端口的进程PID
C:\Users\guoxiuli>netstat -aon|findstr 5037
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 9092
b.通过PID查看所有进程
C:\Users\guoxiuli>tasklist /fi “PID eq 9092”
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
svchost.exe 3676 Services 0 13,800 K
c.杀死占用端口的进程
C:\Users\guoxiuli>taskkill /pid 9092 /f
成功: 已终止 PID 为 9092 的进程。
这里写图片描述
这里写图片描述
2.修改adb的端口
自己配置 adb server 端口,使用一个生僻的值。很简单,只要在系统环境变量中定义 ANDROID_ADB_SERVER_PORT 的值即可。
最好选择一个5位数的端口号(10000 ~ 65535),不易重复。
win下只要在环境变量中增加一个ANDROID_ADB_SERVER_PORT ,值填你自己定义的端口。
linux下只要 export $ANDROID_ADB_SERVER_PORT = 自定义端口,即可

2016-10-11 16:20:00 weixin_33816611 阅读数 2

adb 是PC和设备连接的桥梁,可以通过adb对devices进行相关操作

  • adb devices           列出你的devices
  • adb kill-server         杀掉adb服务(如果设备连接出问题,可尝试)
  • adb start-server      重启adb服务
  • adb shell                进入默认device的Linux shell,可以直接执行Linux命令
  • adb shell screenrecord /sdcard/runCase.mp4  录制视频保存,默认3min,也可以加--time-limit 60限制时间 
  • adb install jd.apk      向设备安装app
  • adb pull /sdcard/runCase.mp4 c:// 把手机中文件copy到电脑
  • adb push C://runCase.mp4 /sdcard/          把电脑中文件放到手机     

 以上就是一些基本的adb 命令

转载于:https://www.cnblogs.com/hanzhao1987/p/5949765.html

2015-01-04 16:16:40 y_chengyong 阅读数 437

adb命令

设备时,选择某个设备   adb -s emulator-5554(比如:adb -s eensms244 shell)

安装apk  adb install xxx.apk

杀掉连接服务 kill-server

开启连接服务 start-server

列出当前连接上的所有设备 adb devices


常用Linux指令

su:切换到超级用户

#:代表当前用户是root用户
$:代表当前用户是普通用户
rm:删除文件

rm 文件名.后缀名
ls
ls -l:查看目录下所有文件的详细信息
ls -a:查看隐藏文件
cd:切换目录,用法跟windows一样
cat:以文本形式输出文件内容,不要cat非文本文件
mv:把文件移动到指定位置的文件里
mv 文件名 路径/文件名
mkdir:创建文件夹
mkdir 文件夹名
rmdir:删除文件夹,如果文件夹不为空,删不了
touch:创建一个新的文件,没有内容
touch 文件名
chmod:change mode 修改文件访问权限
chmod 777 文件名
echo:重定向内容
echo 文本内容 > 文件名:把指定内容重定向到指定文件中
cat 文件名 > 文件名:把指定文件的内容重定向到指定文件中
sleep:睡眠,参数是秒
df:罗列出几个目录的空间信息
df sdcrad:罗列出指定目录的空间信息
id:列出当前用户的用户id和所在群组id
uid = 0,root用户
uid = 1000,system用户
uid = 2000,shell用户(命令行用户)
uid > 10000,普通用户(所有上层应用)
ps:罗列出系统运行的所有进程:包括java进程和c进程
kill:杀死指定进程
kill pid
chown:change owner
chown 0.0 文件名:把指定文件的拥有者改成root用户
mount:挂载指定的路径
mount -o remount rw /:重新挂载根目录为可读可写

mount -o remount rw /system:重新挂载system目录为可读可写



Android特有的指令
am

am start -n com.ycy.helloworld/com.ycy.helloworld.MainActivity:开启指定的activity
am kill com.ycy.helloworld:杀死指定的进程,但是不会杀死影响用户体验的进程
am force-stop com.ycy.helloworld:强制杀死指定进程
pm:

pm disable 包名:冻结指定应用
pm enable 包名:解冻指定应用
monkey:自动测试指令

monkey -p com.ycy.helloworld 1000:测试指定应用1000次

2012-02-20 18:20:12 iteye_5911 阅读数 155
最进学到了adb工具的一些小技巧,记录在此。操作系统是windows用。

1. 显示系统中全部Android平台:
android list targets
2. 显示系统中全部AVD(模拟器):
android list avd
3. 创建AVD(模拟器):
android create avd --name 名称 --target 平台编号
4. 启动模拟器:
emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800)
5. 删除AVD(模拟器):
android delete avd --name 名称
6. 创建SDCard:
mksdcard 1024M ~/名称.img
7. AVD(模拟器)所在位置:
Linux(~/.android/avd) Windows(C:\Documents and Settings\Administrator\.android\avd)
8. 启动DDMS:
ddms
9. 显示当前运行的全部模拟器:
adb devices
10. 对某一模拟器执行命令:
abd -s 模拟器编号 命令
11. 安装应用程序:
adb install -r 应用程序.apk
12. 获取模拟器中的文件:
adb pull <remote> <local>
13. 向模拟器中写文件:
adb push <local> <remote>
14. 进入模拟器的shell模式:
adb shell
15. 启动SDK,文档,实例下载管理器:
android
16. 缷载apk包:
adb shell
cd data/app
rm apk包
exit
adb uninstall apk包的主包名
adb install -r apk包
17. 查看adb命令帮助信息:
adb help
18. 在命令行中查看LOG信息:
adb logcat -s 标签名
19. adb shell后面跟的命令主要来自:
源码\system\core\toolbox目录和源码\frameworks\base\cmds目录。
20. 删除系统应用:
adb remount (重新挂载系统分区,使系统分区重新可写)。
adb shell
cd system/app
rm *.apk
21. 获取管理员权限:
adb root
22. 启动Activity:
adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。
23、发布端口:
你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
24、复制文件:
你可向一个设备或从一个设备中复制文件,
复制一个文件或目录到设备或模拟器上:
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 .
25、搜索模拟器/设备的实例:
取得当前运行的模拟器/设备的实例的列表及每个实例的状态:
adb devices
26、查看bug报告:
adb bugreport
27、记录无线通讯日志:
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
adb shell
logcat -b radio
28、获取设备的ID和序列号:
adb get-product
adb get-serialno
29、访问数据库SQLite3
adb shell
sqlite3

#cd system/sd/data //进入系统内指定文件夹
#ls //列表显示当前文件夹内容
#rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件
#rm xxx //删除文件xxx
#rmdir xxx //删除xxx的文件夹


# 非阻塞logcat
使用-d参数,可以在读完所有log后返回,而不会一直等待,在自动化较有用。例如:
adb logcat -d -s xxx > xxx.log //得到filter为xxx的日志,存入xxx.log,然后返回。
# 用grep过滤log
windows也不要紧,grep有windows版本。其实,装了cygwin后,它就带了grep。
adb logcat | grep xxx //过滤出带xxx字样的log
# 在本地执行adb shell中的命令
我们常需要adb shell后,在设备上执行一些命令。其实可以不进入shell,直接执行设备上命令并输出到本地。例如:
adb shell "am start -n com.aaa.bbb/com.aaa.bbb.activity" //启动某程序
# 用top查看cpu使用率
可以在adb shell中,用top来查看cpu和内存等使用情况,-m参数可以只显示前几条,-n参数可以只刷新几次,然后返回,不再阻塞,在自动化时有用。例如:
adb shell "top -n 1" | grep com.aaa.bbb //不进入shell,直接在本地执行top,只执行一次,并过滤出com.aaa.bbb的那一行。通过输出,可以得到这个程序的cpu使用率,也可以判断此程序是否已退出。
# 用adb devices查看是否有已连接的设备
adb devices可以列出所有已连接的设备,并有online/offline的标志,根据分析输出可以得到是否有设备,有哪些设备。
# 批量上传/下载文件到设备
adb push和adb pull一次只能传一个文件,用for命令可以做到批量处理:
adb shell "mkdir /sdcard/yuv" //在设备上创建/sdcard/yuv目录
for %i in (*.yuv) do adb push %i /sdcard/yuv/ //将当前目录下所有扩展名为yuv的文件,上传到/sdcard/yuv/目录下
2016-07-06 11:39:39 bangrenzhuce 阅读数 1201

在cmd中输入adb shell进入linux shell环境前,需要把android模拟器打开(本文都是针对模拟器而言,并非真机)。如果启动好了模拟器,且输入adb shell命令后出现error: device not found错误提示,则可以杀掉adb进程然后重新启动该进程,在cmd中输入如下命令:

  adb kill-server

  adb start-server

没有更多推荐了,返回首页