一、ADB简介

1. 什么是adb?

  adb(Android Debug Bridage)是Android sdk的一个工具;

  adb 是用来连接安卓手机和PC端的桥梁,要有adb作为二者之间的维系,才能让用户在电脑上对手机进行全面的操作。

  Android 的初衷是用adb这样的一个工具来协助开发人员在开发和拷贝Android 应用的过程中更好的调试apk ,因此adb具有安装和卸载apk,拷贝推送文件,查看设备硬件信息,查看应用程序占用资源,在设备执行shell命令等功能!

2.adb的组成

  客户端client:运行在你的电脑上,你可以通过adb命令来调起一个客户端。其他的安卓工具例如:ADT插件、DDMS都可以创建出一个客户端

  服务器server:运行在你电脑上的后台,负责管理client和daemon进行通信。

  守护进程 daemon:运行在模拟器或者Android 设备的后台

二、adb的安装

1.下载解压:adt-bundle-windows-x86_64-20140702(自行百度下载)

2.  配置环境变量到path

  D:\appium\adt-bundle-windows-x86_64-20140702\sdk\platform-tools;
  D:\appium\adt-bundle-windows-x86_64-20140702\sdk\tools;

验证:

三、adb命令的使用

1.adb --help 查询帮助

C:\Users\Administrator\Desktop>adb --help
Android Debug Bridge version 1.0.40
Version 4986621
Installed as D:\android-sdk-windows-appium\platform-tools\adb.exe global options:
-a listen on all network interfaces, not just localhost
-d use USB device (error if multiple devices connected)
-e use TCP/IP device (error if multiple TCP/IP devices available)
-s SERIAL use device with given serial (overrides $ANDROID_SERIAL)
-t ID use device with given transport id
-H name of adb server host [default=localhost]
-P port of adb server [default=5037]
-L SOCKET listen on given socket for adb server [default=tcp:localhost:5037] general commands:
devices [-l] list connected devices (-l for long output)
help show this help message
version show version num
....................................................................

2.adb connect 127.0.0.1:62001(模拟器连接:adb 连接本地设备127.0.0.1,模拟器端口62001)

3.检测当前连接的设备,如果使用adb devices进行检测,发现没有任何设备信息,我们就需要检查是否有手机/模拟器连接上

详细可参考:https://www.cnblogs.com/yyoba/p/9263805.html

4. adb shell----登录设备shell (命令行的人机界面),ll ls 命令都可以使用,相当于远程进入到了linux命令环境,

5. adb pull <手机路径> <本机路径>  //从手机拉取信息放到本地电脑

C:\Users\Administrator\Desktop>adb shell 注释:进入人机界面
root@android:/ # cd /sdcard 注释:cd 进入adcard 目录
cd /sdcard
root@android:/sdcard # ll 注释:ll 展示当前目录下详细文件信息
ll
*** *** *** ***
drwxrwx--- root sdcard_r 2018-11-13 20:18 tencent
-rw-rw---- root sdcard_r 217 2018-07-06 21:18 thunder.txt 注释:准备将当前文件拉取到windows桌面test文件目录
root@android:/sdcard # exit
exit 注释:退出人机界面的命令 C:\Users\Administrator\Desktop>adb pull /sdcard/thunder.txt C:\Users\Administrator\Desktop\test
14 KB/s (217 bytes in 0.014s) 注释:adb pull linux下文件路径 windows下路径 //当前行展示下载速度和文件大小 C:\Users\Administrator\Desktop>

6.adb push <本机路径> <手机路径> 从本地推送信息到手机上去

C:\Users\Administrator\Desktop>adb push C:\Users\Administrator\Desktop\test\test_20190618142831.png /sdcard/
323 KB/s (106747 bytes in 0.322s) 注释:adb push 本地windows路径文件 linux文件保存路径,注意linux路径必须是/sdcard/否则写/sdcard则为文件并非目录 C:\Users\Administrator\Desktop>adb shell 注释:进入linux环境验证
root@android:/ # cd /sdcard/
cd /sdcard/
root@android:/sdcard # ll
ll
*** *** *** ***
drwxrwx--- root sdcard_r 2018-11-13 20:18 tencent
-rw-rw---- root sdcard_r 106747 2019-06-18 14:28 test_20190618142831.png 注释:从本地推送进来的文件在这里
-rw-rw---- root sdcard_r 217 2019-06-18 14:15 thunder.txt
root@android:/sdcard #

7. adb logcat 实时打印日志

  adb logcat > 本地路径/文件名.txt   实时打印日志重定向到本地文件

adb logcat -v time > 本地路径/文件名.txt   实时打印日志重定向到本地文件(日志加时间)

C:\Users\Administrator\Desktop>adb logcat -v time >  C:\Users\Administrator\Desktop\tsd\log02.txt
07-30 23:15:34.750 I/NOX     (   68): Starting NOX
07-30 23:15:36.630 I/Vold ( 157): Vold 2.1 (the revenge) firing up
07-30 23:15:46.770 I/SystemServer( 492): Entered the Android system server!

8.adb install xxx.apk ----windos可以直接把apk拖动到cmd窗口释放自动加载apk路径,返回success 就说明安装成功了

C:\Users\Administrator\Desktop>adb install D:\appium\apk\com.baidu.BaiduMap-1.apk
3003 KB/s (69469888 bytes in 22.589s)
pkg: /data/local/tmp/com.baidu.BaiduMap-1.apk
Success

    

9.查看本机当前运行程序的包名:adb shell dumpsys activity | find "mFocusedActivity"

C:\Users\Administrator\Desktop>adb shell dumpsys activity | find "mFocusedActivity" 注释:查看当前运行程序的包名
mFocusedActivity: ActivityRecord{4a924628 u0 com.baidu.BaiduMap/com.baidu.baidumaps.guide.TermsActivity t8}
C:\Users\Administrator\Desktop>adb shell pm list packages 注释:查看当前所有程序的包名
*** ***
package:com.baidu.BaiduMap
package:com.android.wallpapercropper
package:com.android.location.fused
*** ***
adb shell pm path com.baidu.BaiduMap 注释:查看当前包所在手机中的详细位置

10.adb uninstall 包名  注释:卸载程序,示例如下

C:\Users\Administrator\Desktop>adb uninstall com.baidu.BaiduMap   注释:卸载百度地图应用程序
Success

11.扩展:卸载或者安装的时候保留数据和缓冲文件命令如下

adb install -r D:\appium\apk\com.baidu.BaiduMap-1.apk  注释:安装百度地图保留数据和缓冲文件,重新安装apk
adb uninstall -k com.baidu.BaiduMap   注释:卸载百度地图,但是保留数据和缓冲文件

12.adb connect/disconnect  通过WiFi进行远程连接手机进行调试

参考博文:https://www.cnblogs.com/xiaozhaoboke/p/11267102.html

13.adb 杀死和重启命令

adb kill-server   //终止adb服务
adb start-server//启动adb服务,结合adb kill-server 一起使用

14.adb shell pm list packages //列出当前设备所有的包名

C:\Users\Administrator\Desktop>adb shell pm list packages//列出所有包名
package:com.android.soundrecorder
package:com.android.defcontainer
package:com.tencent.mm
package:com.android.contacts
package:com.android.phone
package:io.appium.unlock
package:com.android.proxyhandler
package:io.appium.settings
...............................................
// -f 列出所有apk路径及包名
// -s 列出系统apk路径和包名
C:\Users\Administrator\Desktop>adb shell pm list packages -s
package:com.android.soundrecorder
package:com.android.defcontainer
package:com.android.contacts
package:com.android.phone
package:com.android.proxyhandler
....................................................
// -3 列出用户apk路径和包名
C:\Users\Administrator\Desktop>adb shell pm list packages -3
package:com.tencent.mm
package:io.appium.unlock
package:io.appium.settings
package:com.baidu.BaiduMap
package:com.ss.android.article.news

15.启动app

adb shell am start -n 包名/入口列名
C:\Users\Administrator\Desktop>adb shell am start -n com.baidu.BaiduMap/com.baid
u.baidumaps.WelcomeScreen
Starting: Intent { cmp=com.baidu.BaiduMap/com.baidu.baidumaps.WelcomeScreen }

> 清除应用的数据和缓存

adb shell pm clear 包名
C:\Users\Administrator\Desktop>adb shell pm clear com.baidu.BaiduMap
Success

>坐标点击

adb shell input tap x轴坐标 y轴坐标
//需要打开
1.打开设置/关于手机或者平板电脑
2.连续点击五下版本号/提示开发者选项已经打开
3.在输入模块打开指针位置选项

例如根据坐标点击启动百度地图

16.aapt的使用

>获取apk的包名;进入aapt.exe目录>>打开cmd窗口>>输入:aapt dump badging 拖入apk 或者aapt dump badging 拖入apk | findstr package

D:\android-sdk-windows-appium\build-tools\28.0.3>aapt dump badging D:\appium\com
.baidu.BaiduMap-1.apk | findstr package
package: name='com.baidu.BaiduMap' versionCode='928' versionName='10.17.3' compi
leSdkVersion='29' compileSdkVersionCodename='10'

>获取apk的类名;进入aapt.exe目录>>打开cmd窗口>>输入:aapt dump badging 拖入apk 或者aapt dump badging 拖入apk | findstr launchable-activity

D:\android-sdk-windows-appium\build-tools\28.0.3>aapt dump badging D:\appium\com
.baidu.BaiduMap-1.apk | findstr launchable-activity
launchable-activity: name='com.baidu.baidumaps.WelcomeScreen' label='鐧惧害鍦板
浘' icon=''

17.查看安装包信息命令 adb shell dumpsys package 包名

C:\Users\Administrator\Desktop>adb shell dumpsys package com.android.browser
...............................
Packages:
Package [com.android.browser] (2e051e24):
userId=10061 gids=[3003, 1028, 1015, 1023, 1007]
pkg=Package{3fe56d36 com.android.browser}
codePath=/data/app/com.android.browser-1
resourcePath=/data/app/com.android.browser-1
legacyNativeLibraryDir=/data/app/com.android.browser-1/lib
primaryCpuAbi=armeabi-v7a
secondaryCpuAbi=null
versionCode=49202 targetSdk=25
versionName=4.9.3
splits=[base]
applicationInfo=ApplicationInfo{121cd625 com.android.browser}
flags=[ SYSTEM HAS_CODE ALLOW_CLEAR_USER_DATA UPDATED_SYSTEM_APP ALLOW_BACKUP KILL_AFTER_RESTORE LARGE_HEAP ]
..................................

未完待续。。。

总结:学习后小结,分享给需要的人,不足之处,后续补充修正!

adb 安装与使用(一)的更多相关文章

  1. android 入门-使用adb安装及卸载apk

     我想用adb 安装apk 到设备上现在出现了2个. 提示我没有找到设备    安装不用进去adb shell 这是你存放apk文件夹路径 下面安装apk到手机上(usb一定要连接成功否则读取不到手机 ...

  2. 【APP问题定位(三)】adb安装

    先来剧透一下我们需要使用的工具 bin包               一个安装目录,可以免安装直接调用adb命令 Android SDK platform tools 下面依次为大家介绍,第1个和第2 ...

  3. adb安装apk

    1.    安装配置 1.1安装包 下载adb.zip,解压至本机 1.2环境配置 将adb安装路径加入path中 2.    安装apk 使用数据线将Android手机与电脑连接,打开手机usb调试 ...

  4. adb导出安卓 把手机内存文件导入到电脑里 adb安装软件

    记得先找对路劲adb shellls 最上面的ls: ./ 打头的没有权限.而下面的这些acct sdcard等 都有权限. 然后cd sdcardls 看下目录,发现gxm文件夹在sdcard下面. ...

  5. adb安装启动Touch校正软件

    /********************************************************************************* * adb安装启动Touch校正软 ...

  6. ubuntu adb 安装

    ubuntu 下adb 安装,其实就是下载一个adb,然后给它赋予可执行权限,最后在环境变量里添加一下罢了.具体如下 1.下载adb 这个工具其实是在sdk工具包里面的platform-tools文件 ...

  7. 使用adb安装apk到手机

    [ADB]Android debug bridge.Android手机实际是基于Linux系统的.通过USB线将android手机与电脑连起来,在电脑上dos命令行中敲adb shell命令,可以登录 ...

  8. Android调试桥 adb安装详解

    Android调试桥(adb) 一.简介 Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Uni ...

  9. adb安装apk包时提示:device unauthorized

    adb install apk时提示device unauthorized,手机上还没出现usb是否允许调试的询问弹框: 解决方法: 1.cmd输入:adb kill-server,点击回车键 2.c ...

  10. adb 安装失败

    打开Terminal终端:Ctrl + Alt + T 按顺序执行以下三条命令:                   sudo add-apt-repository ppa:nilarrimogard ...

随机推荐

  1. pypandoc库实现文档转换

    写在前面: 对于python程序员来说,文件格式之间转换很常用,尤其是把我们爬虫爬到的内容转换成想要的文档格式时.这几天看到一个网站上有许多文章,个人很喜欢,直接复制太麻烦,为了将爬到的html文件以 ...

  2. Linux服务器通用安全加固指南

    一.基本系统安全 1.保护引导过程(以Grub引导为例) 在 /etc/inittab 中添加 sp:S:respawn:/sbin/sulogin,以确保当切换到单用户模式时 运行级的配置要求输入  ...

  3. Ubuntu怎么开启/关闭防火墙

    在Ubuntu中,使用sudo ufw status命令查看当前防火墙状态. 不活动,是关闭状态. 在Ubuntu中,使用sudo ufw enable命令来开启防火墙. 在Ubuntu中,使用sud ...

  4. Selenium自动化结合Mysql数据项目实战操作

    前言 web自动化结合Mysql做一些实战操作,今天实战的场景是通过读取web页面字段名与数据库相应的表中的字段名进行对比 - 注:商城是自己搭建在本地,小伙伴需要源码请私聊 解决思路 第一步:获取w ...

  5. 实现线程按顺序输出ABC

    线程按顺序输出ABC 实现描述:建立三个线程A.B.C,分别按照顺序输出十次ABC 首先建立一个方法,按照条件进行输出 class PrintABC{ private int index=0; pub ...

  6. FastAPI(64)- Settings and Environment Variables 配置项和环境变量

    背景 在许多情况下,应用程序可能需要一些外部设置或配置,例如密钥.数据库凭据.电子邮件服务凭据等. 大多数这些设置都是可变的(可以更改),例如数据库 URL,很多可能是敏感数据,比如密码 出于这个原因 ...

  7. The Data Way Vol.1|风口下的开源市场:如何看待开源与商业的关系?

    关于「The Data Way」 「The Data Way」是由 SphereEx 公司出品的一档播客节目.这里有开源.数据.技术的故事,同时我们关注开发者的工作日常,也讨论开发者的生活日常:我们聚 ...

  8. 题解 最长道路tree

    题目传送门 题目大意 给出一个\(n\)个点的树,每个点有点权,定义一条链的贡献为该链的点数乘上链上的权值和,求出树上所有链中的权值最大值. \(n\le 5\times 10^4\) 思路 算是我入 ...

  9. CTF入门记录(1

    (https://ctf-wiki.org) 00 基础了解 CTF简介 (wolai.com) 00-1 CTF题目类型 Web 大部分情况下和网.Web.HTTP等相关技能有关. Web攻防的一些 ...

  10. 工作3年的Java程序员,轻松拿到阿里P6Offer,只因为他搞明白了Redis这几个问题!!

    Redis中的多路复用模型 Redis6用到了多线程?那多线程应用在哪些地方,引入多线程后,又改如何保证线程安全性呢? 同时,如何在性能和线程安全性方面做好平衡? 关于Redis的单线程模型 在Red ...