首页
社区
课程
招聘
[分享]如何使用adb工具详细教程
发表于: 2016-2-23 16:35 6526

[分享]如何使用adb工具详细教程

2016-2-23 16:35
6526
给出常用几个的说明:
1. 查看设备

adb devices

这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示

Android系列教程(六) adb操作命令详解

2.安装软件

adb install

adb install :这个命令将指定的apk文件安装到设备上

Android系列教程(六) adb操作命令详解

3. 卸载软件

adb uninstall <软件名>

adb uninstall -k <软件名>

如果加 -k 参数,为卸载软件但是保留配置和缓存文件.

4. 进入设备或模拟器的shell:

adb shell

通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:

adb shell [command]

如:adb shell dmesg会打印出内核的调试信息。

5. 发布端口

可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:

adb forward tcp:5555 tcp:8000

6. 从电脑上发送文件到设备

adb push <本地路径> <远程路径>

用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)

7. 从设备上下载文件到电脑

adb pull <远程路径> <本地路径>

用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑

8、查看bug报告

adb bugreport

9、记录无线通讯日志

一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:

adb shell

logcat -b radio

10、获取设备的ID和序列号

adb get-product

adb get-serialno

adb shell

举一个最常用的例子:提取,并推送framework-res.apk。

提取系统上的framework-res.apk

进入“命令提示符”后,我们先执行一次"adb devices",确认是否已经连上

然后,再执行"adb remount"

接着,我们就可以提取了,按照上面第七点的格式输入执行"adb pull /system/framework/framework-res.apk D:"

当然后面的路径,D:是随你自己喜欢的,但是要注意空格

adb devices adb remount adb pull /system/framework/framework-res.apk D: 复制代码即可

这样D:上就会多了framework-res.apk这文件了

从新推送"framework-res.apk"

我们用到推送的指令,仿照上面第六点输入执行 "adb push D:framework-res.apk /system/framework"

这里我们不要忘了还要修改权限,执行"adb shell chmod 644 /system/framework/framework-res.apk"

当然,我们还需要重启一下,执行"adb reboot"

如何使用adb工具详细教程?
adb devices adb remount adb adb push D:framework-res.apk /system/framework adb shell chmod 644 /system/framework/framework-res.apk 复制代码即可

好了!至于其他的adb指令大家可以模仿着这个来用!!

其实原理都一样的
解决ADB端口占用问题

方式一
5037为adb默认端口,若5037端口被占用,
查看占用端口的进程PID
C:\Users\wwx229495>netstat -aon|findstr 5037
  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       3676

通过PID查看所有进程
C:\Users\wwx229495>tasklist /fi "PID eq 3676"

映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
svchost.exe                   3676 Services                   0     13,800 K

杀死占用端口的进程
C:\Users\wwx229495>taskkill /pid 3676 /f
成功: 已终止 PID 为 3676 的进程。

方式二
自己配置 adb server 端口,使用一个生僻的值。

很简单,只要在系统环境变量中定义 ANDROID_ADB_SERVER_PORT 的值即可。

最好选择一个5位数的端口号(10000 ~ 65535),不易重复。

win下只要在环境变量中增加一个ANDROID_ADB_SERVER_PORT ,值填你自己定义的端口。

linux下只要 export $ANDROID_ADB_SERVER_PORT = 自定义端口,即可。

打开adb shell,直接ps命令

\

如果查看某特定进程,比如《圣火英雄传》,用grep过滤(linux)

\
ps |grep 进程名

各列参数意义:

USER 进程当前用户;

PID Process ID,进程ID;

PPID Process Parent ID,进程的父进程ID;

VSIZE Virtual Size,进程的虚拟内存大小;

RSS Resident Set Size,实际驻留"在内存中"的内存大小;

WCHAN 休眠进程在内核中的地址;

PC Program Counter;

NAME 进程名;

如果想杀掉进程 kill pid

还可以根据进程id,查看进程加载了哪些库,cat /proc/pid/maps

# cat /proc/9562/maps
7429b000-74cd4000 r-xp 00000000 103:0d 390977 /data/app-lib/com.vega.one-1/libcocos2djs.so
40891000-40892000 rw-p 00005000 103:0c 1501 /system/lib/libGLESv2.so
40347000-4035d000 r-xp 00000000 103:0c 2003 /system/lib/libz.so

我们可以看出《圣火英雄传》是用cocos2d-js做的,依赖了gles、libz等库。如果想破解《圣火英雄传》的资源,可以从这几个库着手。具体怎么破解,请看破解TexturePacker加密资源。
自己总结的。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 6
活跃值: (1509)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
好文章啊   不错 谢谢分享
2016-2-23 17:42
0
雪    币: 60
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
+1 基础 + 释义
支持~
2016-2-23 20:06
0
雪    币: 144
活跃值: (178)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
前排支持
2016-2-23 20:29
0
雪    币: 8123
活跃值: (2601)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢,学习了
2016-2-24 08:32
0
雪    币: 289
活跃值: (67)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢分享,学习学习
2016-3-25 19:06
0
游客
登录 | 注册 方可回帖
返回
//