Android开发调试工具ADB

#1.什么是ADB
#2.ADB的常用命令
#3.手持机和ADB如何连接使用
#4.批处理

1.ADB先容及环境搭建

adb的全名是Android调试桥,它充当调试桥。Adb是Android SDK中的工具,使用此工具,您可以直接操作和管理Android模拟器或真实的Android设备(例如G1手机)。

Android系统的adb的全名是Android Debug Bridge,在Android开发环境中,使用adb工具的前提是打开手机上的USB调试,然后通过数据线连接到计算机。通过adb,大家可以通过Eclipse中的DDMS(调试工具)轻松调试Android程序。Adb以一种特殊的方式工作,它监视Socket TCP 5554和其他端口,以允许IDE和Qemu进行通信,默认情况下,adb将守护程序相关的网络端口,因此,当大家运行Eclipse时,adb进程将自动运行。

image.png
android adb主要功能有:
1、运行设备的shell(命令行);
2、管理模拟器或设备的端口映射;
3、计算机和设备之间上传/下载文件;
4、 将本地apkApp安装到模拟器或android设备。

安卓系统常用adb命令:   
1、显示当前连接的设备:adb devices   
2、安装apk文件(必须保存和adb同目录,*为apk文件名称):adb install *.apk   
3、安装apk文件到sd卡(必须保存和adb同目录,*为apk文件名称):adb install -s *.apk   
4、复制文件到手机:adb push [需要推送的文件位置] [需要推送到手机的位置]  例:adb push C:muzi.zip /sdcard  
5、复制文件到电脑:adb pull [手机里文件位置] [需要复制到电脑上的位置]  例:adb pull sdcard/muzisoft.zip c:   
6、重启设备:adb reboot   
7、重启设备到recovery模式:adb reboot recovery   
8、重启到bootloader模式:adb reboot bootloader  常见adb错误信息: 灵活运用adb命令可以帮助大家避免一些需要刷机的情况,从而包住大家珍贵的个人资料。

Android Debug Bridge,Android调试桥接器,简称adb,是用于管理模拟器或真机状态的万能工具,采用了客户端-服务器模型,包括三个部分:

  • 1、客户端部分,运行在开发用的电脑上,可以在命令行中运行adb命令来调用该客户端,像ADB插件和DDMS这样的Android工具也可以调用adb客户端。
  • 2、服务端部分,是运行在开发用电脑上的后台进程,用于管理客户端与运行在模拟器或真机的守护进程通信。
  • 3、守护进程部分,运行于模拟器或手机的后台。
    当启动adb客户端时,客户端首先检测adb服务端进程是否运行,如果没有运行,则启动服务端。当服务端启动时,它会绑定到本地的TCP5037端口,并且监听从adb客户端发来的命令——所有的adb客户端都使用5037端口与adb服务端通信。
    接下来服务端与所有正在运行的模拟器或手机连接。它通过扫描5555-5585之间的奇数号端口来搜索模拟器或手机,一旦发现adb守护进程,就通过此端口进行连接。需要说明的是,每一个模拟器或手机使用一对有序的端口,偶数号端口用于控制台连接,奇数号端口用于adb连接

安卓adb官方下载地址


ADB和Fastboot for Windows

https://dl.google.com/android/repository/platform-tools-latest-windows.zip

ADB和Fastboot for Mac

https://dl.google.com/android/repository/platform-tools-latest-darwin.zip

 ADB和Fastboot for Linux

https://dl.google.com/android/repository/platform-tools-latest-linux.zip

由于这些是直接的 谷歌 链接,您可确保下载不仅是官方的,而且将始终能够获得最新版本的 ADB 和 Fastboot 。

Windows 操作系统下的 ADB 环境配置

image.png

image.png

image.png

image.png

image.png
使用 adb connect 去无线连接过同一网络环境下的 Android 设备,
$ ps aux | grep adb
192.168.57.102:5555 是手机的 ip 和端口,然后使用 adb connect
$ adb connect 192.168.57.102:5555
connected to 192.168.57.102:5555
最后输入熟悉的 adb shell 命令
$ adb shell
root@vbox86p:/ #

2.cmd常用命令及批处理常用命令

文件名是由文件路径和文件名称合起来的,如C:\DOS\COMMAND.COM。

DIR 显示文件和文件夹(目录)。
用法:DIR [文件名] [选项]
/A表示显示所有文件(即包括带隐含和系统属性的文件)
/S表示也显示子文件夹中的文件,
/P表示分屏显示,
/B表示只显示文件名,等等。 
如 DIR A*.EXE /A /P
此命令分屏显示当前文件夹下所有以A开头后缀为EXE的文件(夹)。

CD或CHDIR 改变当前文件夹。
用法:CD [文件夹名]
若无文件夹名则显示当前路径。

MD或MKDIR 建立文件夹。
用法:MD 文件夹名

RD或RMDIR 删除文件夹。
用法:RD 文件夹名
注意:此文件夹必须是空的。

DEL或ERASE 删除文件。
用法:DEL/ERASE 文件名

COPY 拷贝文件。
用法: COPY 文件名1 [文件名2] [选项]
如 COPY /B A+B C
此命令将两个二进制文件A和B合为一个文件C。

TYPE 显示文件内容。
用法:TYPE 文件名

REN或RENAME 改变文件名和文件夹(目录)名。
用法:REN 文件(夹)名1 文件(夹)名2

EDIT 编辑文件,在MS-DOS 7.x中还可以编辑二进制文件和多个文件。
用法:EDIT [文件名] [选项]
如 EDIT /70 C:\COMMAND.COM
此命令以二进制方式编辑C:\COMMAND.COM文件。

FORMAT 格式化磁盘。
用法:FORMAT 驱动器 [选项]
/Q是快速格式化,
/U表示无条件格式化(即无法使用UNFORMAT等命令恢复),
/V指定磁盘的卷标名,等等。它还有许多未公开参数。

MEM 显示内存状态。
用法:MEM [选项]
/C可列出所有程序的内存占用,
/D是显示驻留内存的程序及设备驱动程序的状态等详细信息,
/F显示空闲的内存总量,
/M显示内存中的模块信息,
/P则是分屏显示。
隐藏/A选项,可以显示HMA信息。

MOVE 移动文件或文件夹,还可以更改文件或文件夹的名称。 
用法:MOVE 文件[夹]1 文件[夹]2 
如 MOVE C:\*.EXE D: 
此命令可以将C盘根文件夹下所有扩展名为EXE的文件移到D盘上。

XCOPY 复制文件或文件夹。 
用法:XCOPY 文件[夹]名1 [文件[夹]名2] [选项]
/S可拷贝整个文件夹(包括子文件夹)中的文件
/E指定包括空文件夹,
/V表示复制完后检验复制出的文件的正确性,
/Y表示确认,等等。

CLS 清除屏幕。
用法:CLS

SYS 传导系统,即将系统文件(如IO.SYS等)从一处传输到指定的驱动器中。
用法:SYS 文件夹名 [驱动器]
如 SYS C:\DOS A:
此命令即可将位于C:\DOS文件夹下的系统文件传输到A盘中。

DATE 显示或设置日期。
用法:DATE [日期]

TIME 显示或设置时间。
用法:TIME [时间]

DOS还自带一些其它的命令,如SORT(排序),FIND(寻找字符)等。

@:将这个符号放在批文件中其它命令的前面,运行时将不显示命令本身。
如@ECHO OFF命令就在批文件首经常用到。

CALL:从一个批文件中调用另一个批文件,调用完后继续实行原来的批文件。
用法:CALL [批文件名]
注:也可以使用COMMAND /C命令完成同样的操作。

CHOICE:选择命令。这是一个DOS外部命令,但它主要用在批文件中。
CHOICE命令实行后将提示可选择的项目,这时通过一个按键来选则。
用法:CHOICE:[/C[:]按键表] [/N] [/S] [/T[:]选择值,秒数] [显示文本]
/C表示可选则的按键,
/N表示不要显示提示信息,
/S表示大小写字符敏感方式,
/T表示若在批定的时间内没有选则的话,自动实行/C中定义的某个选择值。显示文本是CHOICE命令实行时的提示信息。选择结果将用ERRORLEVEL值来表示。

ECHO:显示指定的信息。通常显示在屏幕上。
如ECHO Hello将在屏幕上显示Hello的字样。
另外,ECHO ON|OFF用来设置在批文件实行时是否显示命令本身。而ECHO OFF与@的意思一样,但它是一个单独的命令,而不能像@那样放在其它命令之前。

FOR:对于指定的文件运行相应的命令。
大家知道,DOS下许多命令支撑通配符,如?和*,可以一次指定一批文件,非常方便。
然而,并非所有的DOS命令都支撑通配符,如TYPE(文件内容显示命令)就不支撑。有了FOR命令就没有关系了,利于它可以使TYPE命令可以一次显示多个文件。
用法:FOR %变量名 IN (文件集) DO 命令 [命令参数]
注:以上是FOR命令的固定形式,IN和DO的位置必须正确,否则将提示语法错误。
如FOR %F IN (*.*) DO TYPE %F命令就可以实现TYPE命令一次显示多个文件。
注:%F是变量名,也可用%G等代替,但前后必须一致。在批文件中用%%F代替。

GOTO:转到批文件内部的某个标号下实行。
大家知道,在编程中往往需要重复或跳转到某个地方继续实行,如BASIC语言中的GOTO命令。批文件中的GOTO命令也可以完成类似的功能。
用法:GOTO [标号名]
其中,标号名是可以随意设置的,如Hello等。设置标号用“:”符号,如“:Hello”,这时用GOTO Hello命令将转到“:Hello”所在的位置继续实行批文件。

IF:条件判断命令。这是一项很有用的批处理命令。
用法1:IF [NOT] EXIST 文件名 命令 [命令参数]
意义:如果[不]存在某个文件将实行某个命令。
用法2:IF [NOT] ERRORLEVEL 错误返回代号 命令 [命令参数]
意义:如果错误返回代号[不]大于或等于指定的代号将实行某个命令。
其中,ERRORLEVEL表示错误返回代号,很有用。
对于很多DOS命令,由于实行的结果不同(如实行成功,实行失败,或被用户中断等),这些命令会返回不同的代号,以表示不同的结果。
IF ERRORLEVEL命令就根据这个不同结果而产生的不同代号来实行不同的命令,通常用在某条命令之后。
如IF ERRORLEVEL 1 ECHO OK!表示如果当前的错误返回代号大于或等于1时将在屏幕上显示“OK!”的字样。
用法3:IF [NOT] 字符串1==字符串2 命令 [命令参数] 
意义:当字符串1和字符串2[不]相等的时候实行某个命令。

PAUSE:暂停批文件的实行,并显示“按任意键继续”的字样。

REM:添加注解。用于增加文件可读性,将不被实行。也可以用::来代替。

SHIFT:在批文件中改变可替换参数的位置。
可替换参数是一种特殊的参数,只能用在批文件中。这些参数是由使用者在实行批处理命令时输入的。
比如,大家实行DIR /S /W命令,其中DIR是命令名,/S和/W是它的实行参数。
在批文件中,这些命令参数将被分别赋予到可替换参数中,如/S就成的%1,/W就可了%2,以至类推,而命令本身则被赋予%0中。
批文件就是利用可替换参数对实行时输入的参数来进行操作的。
比如现在有个批处理文件叫MYFILE.BAT,在命令行下实行MYFILE.BAT YES,于是%0的值就是MYFILE.BAT,%1的值就是“YES”,
可以在此批文件中用IF等命令判断出%1等参数的值,然后根据这些值的不同实行不同的操作,如IF "%1"=="YES" GOTO YES。
SHIFT命令不带任何参数,实行结果是将%0的值换成原%1的值,而原%1的值变成的原%2的值,以此类推。注意它的不可逆转性。
因为批处理文件实行时的运行参数可能很多,可能会超过10个,而可替换参数只能从%0到%9,若想取得%9以后的参数值,只能使用SHIFT命令。这时,整个参数列将向前推。

以上是DOS的自带批处理命令,可以看出,这些命令是非常少的,若要编写较复杂的程序,用以上的命令显然不可能实现。
这时就需要其它实用的批处理工具了,著名且实用的有TESTIF,STRING,ASET,BATCHMAN,WBAT等。
在批处理文件中使用以上的工具可以实现非常强大的功能,甚至可以完成许多高级语言程序的功能。

利用批处理安装常用App,大家需要对以下几个常识点进行掌握:
一.常用应用App的封装类型
1.installshield型:
 installshield是一款商业级别的安装程序封装工具,许多大型商业App都用它进行封装.例如:macromedia flash. pgtoshop等
 安装参数:-R   用于记录安装过程
            -s 用于进行App的自动安装
            -f1 指定setup.iss应答文件的路径
使用方法:
1)先用在命令行下用-R参数进行App的安装,其安装过程与正常安装没有本质的区别,
但在App安装结束后可以在 c:\windows(winxp系统)或c:\winnt(win2k系统)目录下找到一个名为setup.iss的文件,
它就是大家后面要用到的可以进行自动安装的重要应答文件.
2).将以上的setup.iss文件与你的安装程序放在同一目录下,利用-s参数进行全自动安装.
例如: start /wait   x:\phtoshop\setup.exe -s -f1 "y:\setup.iss"(如果setup.iss文件与安装程序在同一目录,可以省去-f1参数)

2.Inno setup 类型:
Inno setup 是一款完全免费的安装程序封装工具,其功能和稳定性均可与商业封装工具媲美.

安装参数:   /silent(/verysilent) 用于App的自动安装
                sp-     用于跳过安装程序的确认界面
使用方法: start /wait x:\thunder5.exe /verysilent sp-
说明:此安装参数的使用比较容易,但如果大家把它写入到批处理文件中进行大量的App安装时,有的App会在安装完成后自行启动,
比如迅雷,为不影响系统性能,大家可以结合其他的命令终止其进程,例如:
<u>复制代码</u>代码如下:

    @echo off
    start /wait x:\thunder5.exe /verysilent sp-
    echo.
taskkill.exe /F /IM Thunder5.exe

3.微软 Windows Installer技术打包程序
MicroSoft自家产品,许多App生产厂家现在都选择这种基于MicroSoft开发的封装方式
参数:/   /QB(/QN)用于自动安装App
      /REBOOT=suppress 安装后不重起
使用方法: start /wait x:\setup.exe /QB REBOOT=Suppress

4.Nullsoft SuperRMP Install System   (NSIS)类型,例如:winamp
使用参数: /S   用于自动安装App
例如: x:\winamp\setup.exe /S
说明:此类App安装后会给出一个文件关联确认窗口,目前无法跳过,但我可以给大家一个思路,就是结合VBS脚本中的Doskey命令来模仿键盘动作实现确认过程

二.测试方法与安装类型分析:
1.测试方法:可以用目前比较流行的虚拟机进行测试
2.安装类型分析:大部分安装程序可以通过鼠标右击安装程序---选择属性---版本来查看其封装类

三.在批处理文件中的要求
如果你打算自己结合WINXP光盘工具重新封装安装光盘,并且在利用winxp应答文件安装应用App,你必须明白批处理文件的位置应防在那里,这些你可以去阅读有关此方面的文章.

一、CMD命令:
开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本)。

二、CMD命令大全详解:
1、 gpedit.msc-----组策略。
2.、sndrec32-------录音机。
3、Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命令行工具。
它在 Windows NT/2000/XP 中均可使用 , 但在 Windows 98 中却没有集成这一个工具。
4、explorer-------打开资源管理器。
5、logoff---------注销命令。
6、shutdown-------60秒倒计时关机命令。
7、lusrmgr.msc----本机用户和组。
8、services.msc—本地服务设置。
9、oobe/msoobe /a----检查XP是否激活。
10、 notepad--------打开记事本。
11、cleanmgr-------垃圾整理。
12、net start messenger----开始信使服务。
13、 compmgmt.msc—计算机管理。
14、net stop messenger-----停止信使服务。
15、conf-----------启动netmeeting。
16、dvdplay--------DVD播放器。
17、charmap--------启动字符映射表。
18、 diskmgmt.msc—磁盘管理实用程序。
19、calc-----------启动计算器。
20、 dfrg.msc-------磁盘碎片整理程序。
21、chkdsk.exe-----Chkdsk磁盘检查。
22、devmgmt.msc— 设备管理器。
23、regsvr32 /u *.dll----停止dll文件运行。
24、 drwtsn32------ 系统医生。
25.、rononce -p----15秒关机。
26、dxdiag---------检查DirectX信息。
27、 regedt32-------注册表编辑器。
28、 Msconfig.exe—系统配置实用程序。
29、 rsop.msc-------组策略结果集。
30、mem.exe--------显示内存使用情况。
31、regedit.exe----注册表。
32、winchat--------XP自带局域网聊天。
33、progman--------程序管理器。
34、winmsd---------系统信息。
35、perfmon.msc----计算机性能监测程序。
36、 winver---------检查Windows版本。
37、sfc /scannow-----扫描错误并复原。
38、taskmgr-----任务管理器(2000/xp/2003)。
39、wmimgmt.msc----打开windows管理体系结构(WMI)。
40、wupdmgr--------windows更新程序。
41、wscript--------windows脚本宿主设置。
42、write----------写字板。
43、 wiaacmgr-------扫描仪和照相机向导。
44、 winchat--------XP自带局域网聊天。
45、 mspaint--------画图板。
46、 mstsc----------远程桌面连接。
47、magnify--------放大镜实用程序.
48.、mmc------------打开控制台。
49、mobsync--------同步命令。
50、iexpress-------木马捆绑工具,系统自带。
51、fsmgmt.msc-----共享文件夹管理器。
52、utilman--------辅助工具管理器。
53、 dcomcnfg-------打开系统组件服务。
54、 ddeshare-------打开DDE共享设置。
55、 osk------------打开屏幕键盘。
56、 ntbackup-------系统备份和还原。
57、 ntmsmgr、msc----移动存储管理器。
58、 ntmsoprq、msc—移动存储管理员操作请求。
59、 netstat -an----(TC)命令检查接口。
60、 syncapp--------创建一个公文包。
61、 sysedit--------系统配置编辑器。
62、 sigverif-------文件签名验证程序。
63、 ciadv、msc------索引服务程序。
64、 shrpubw--------创建共享文件夹。
65、 secpol、msc-----本地安全策略。
66、 syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码。
67、 services、msc—本地服务设置。
68、 Sndvol32-------音量控制程序。
69、 sfc、exe--------系统文件检查器。
70、 sfc /scannow—windows文件保护。
71、 ciadv、msc------索引服务程序。
72、 tourstart------xp概况(安装完成后出现的漫游xp程序)。
73、 taskmgr--------任务管理器。
74、 eventvwr-------事件查看器。
75、 eudcedit-------造字程序。
76、 compmgmt、msc—计算机管理。
77、 packager-------对象包装程序。
78、 perfmon、msc----计算机性能监测程序。
79、 charmap--------启动字符映射表。
80、 cliconfg-------SQL SERVER 客户端网络实用程序。
81、 Clipbrd--------剪贴板查看器。
82、 conf-----------启动netmeeting。
83、 certmgr、msc----证书管理实用程序。
84、 regsvr32 /u *、dll----停止dll文件运行。
85、 regsvr32 /u zipfldr、dll------取消ZIP支撑。
86、 cmd、exe--------CMD命令提示符。

Linux中,如何实现文档共享以及权限设定
有这样一个需求,在linux中新建两个用户,这里定义为userA和userB。要实现下面的要求:
userA登录后,在其家目录下能看到userA和userB目录,并且对userA有读写实行权限,对userB目录有读的权限;
userB登录后,在其家目录下能看到userA和userB目录,并且对userB有读写实行权限,对userA目录有读的权限;
为了实现这样的要求,首先需要将两个用户附属到同一个用户组下。

root用户登录
先新建用户组:**groupadd usergroup**
检查创建是否成功

cat/etc/group文件最后一列应该是刚才创建的用户组名称
创建用户A:useradd -d /home/userA -m -g usergroup userA
设置权限:chmod -R 770 /home/userA
设置密码:passwd userA
userA登录:su - userA
查看用户路径是否正确:pwd
创建文件夹:mkdir userA
设置目录访问权限:chmod -R 750 userA
查看权限是否正确:ls -l
切换到root目录:exit
创建用户userB:useradd -d /home/userB -m -g usergroup userB
设置权限:chmod -R 770 /home/userB
设置密码:passwd userB
切换到userB:su - userB
查看用户路径是否正确:pwd
创建文件夹:mkdir userB
设置目录访问权限:chmod -R 750 userB
查看权限是否正确:ls -l
这样userA和userB都拥有了自己目录的访问权限,同时相同用户组下的用户也只能读取该用户下共享的文件,不能修改和删除。
在用户userA中添加用户userB的连接:
用户userA登录:ln -s /home/userB/userB userB
查看连接是否正确:readlink userB
在用户userB中添加用户userA的连接:
用户userB登录:ln -s /home/userA/userA userA
查看连接是否正确:readlink userA
这样,用户userA登录后就能看到
-userA
-userB
目录结构了,同时对userA有读写权限,对userB只有读权限
用户userB登陆后也能看到:
-userA
-userB
目录结构,同时对userB有读写权限,对userA只有读权限。

@echo off
color 0A
set /p a=添加刘林锋共享文件夹按y键 退出按n键,请输入并按回车:
if /i "%a%"=="n" exit
if /i "%a%"=="y" goto :2
cls&%0
:2
net use X: \\69A000101484248\bats
pause
@echo off
echo 安装ihaier
echo 请稍等。。。
start /wait X:\iHaierSetup_1.1.8_2003261911.exe /S
echo ihaier安装已完成。
pause
echo 安装压缩App
echo 请稍等。。。
start /wait X:\压缩App\BANDIZIP-SETUP.EXE /S
echo 压缩App安装已完成。
pause
echo 安装AdobeReader
echo 请稍等。。。
start /wait X:\AdobeReader 8.0\AdbeRdr812_zh_CN.exe /S
echo AdobeReader安装已完成。
pause
echo 安装printer
echo 请稍等。。。
start /wait X:\lwewmfp_20160912\Setup.exe /S
echo printer安装已完成。
pause
echo 安装DLP
echo 请稍等。。。
start /wait X:\DLP_Win64.exe /S
echo DLP安装已完成。
pause
echo 安装联软
echo 请稍等。。。
start /wait X:\联软新\lva_setupfull_20181122102851.exe /S
echo 联软安装已完成。
pause
echo 安装防毒墙
echo 请稍等。。。
start /wait X:\12.192_64bit.exe /S
echo 防毒墙安装已完成。
pause
echo 安装SmartIT
echo 请稍等。。。
start /wait X:\SmartIT客户端安装卸载SmartIT客户端安装卸载\安装程序20161014\ITSetup.exe /S
echo SmartIT安装已完成。
pause
@echo off
set /p a=是否删除共享文件夹,删除按y键 退出按n键,请输入并按回车:
if /i "%a%"=="n" exit
if /i "%a%"=="y" goto :3
cls&%0
:3
net use X: /delete
pause

ADB常用命令及其用法大全
adb工具环境配置和操作命令详解
前端开发者必备的Nginx常识
使用UltraISO制作U盘启动安装系统的方法

推荐阅读更多精彩内容