adb 安装与使用(一)-程序员宅基地

技术标签: shell  测试  移动开发  

一、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
*** ***

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 ]
..................................

未完待续。。。 

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

转载于:https://www.cnblogs.com/xiaozhaoboke/p/11043668.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a6596250/article/details/102122677

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签