zoukankan      html  css  js  c++  java
  • adb 安装与使用(一)

    一、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:appiumadt-bundle-windows-x86_64-20140702sdkplatform-tools;
      D:appiumadt-bundle-windows-x86_64-20140702sdk ools;

    验证:

     三、adb命令的使用

    1.adb --help 查询帮助

    C:UsersAdministratorDesktop>adb --help
    Android Debug Bridge version 1.0.40
    Version 4986621
    Installed as D:android-sdk-windows-appiumplatform-toolsadb.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:UsersAdministratorDesktop>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:UsersAdministratorDesktop>adb pull /sdcard/thunder.txt C:UsersAdministratorDesktop	est   
    14 KB/s (217 bytes in 0.014s)    注释:adb pull linux下文件路径  windows下路径 //当前行展示下载速度和文件大小
    
    C:UsersAdministratorDesktop>

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

    C:UsersAdministratorDesktop>adb push C:UsersAdministratorDesktop	est	est_20190618142831.png /sdcard/
    323 KB/s (106747 bytes in 0.322s) 注释:adb push 本地windows路径文件 linux文件保存路径,注意linux路径必须是/sdcard/否则写/sdcard则为文件并非目录
    
    C:UsersAdministratorDesktop>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:UsersAdministratorDesktop>adb logcat -v time >  C:UsersAdministratorDesktop	sdlog02.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:UsersAdministratorDesktop>adb install D:appiumapkcom.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:UsersAdministratorDesktop>adb shell dumpsys activity | find "mFocusedActivity" 注释:查看当前运行程序的包名
      mFocusedActivity: ActivityRecord{4a924628 u0 com.baidu.BaiduMap/com.baidu.baidumaps.guide.TermsActivity t8}
    C:UsersAdministratorDesktop>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:UsersAdministratorDesktop>adb uninstall com.baidu.BaiduMap   注释:卸载百度地图应用程序
    Success

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

    adb install -r D:appiumapkcom.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:UsersAdministratorDesktop>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:UsersAdministratorDesktop>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:UsersAdministratorDesktop>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:UsersAdministratorDesktop>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:UsersAdministratorDesktop>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-appiumuild-tools28.0.3>aapt dump badging D:appiumcom
    .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-appiumuild-tools28.0.3>aapt dump badging D:appiumcom
    .baidu.BaiduMap-1.apk | findstr launchable-activity
    launchable-activity: name='com.baidu.baidumaps.WelcomeScreen'  label='鐧惧害鍦板
    浘' icon=''

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

    C:UsersAdministratorDesktop>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 ]
    ..................................

    未完待续。。。 

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

  • 相关阅读:
    [HTML]HTML5实现可编辑表格
    [xcode]instruments来检验你的app
    [xcode]Xcode查找函数(方法)调用及被调用
    [工具][windows][visualStudio][充电]番茄助手vaassist常见用法
    [算法]判断一个数是不是2的N次方
    [Ogre]纹理设置
    C++中的类型重定义
    [STL]set/multiset用法详解[自从VS2010开始,set的iterator类型自动就是const的引用类型]
    [Ogre][地形][原创]基于OgreTerrain的地形实现
    PHP模板引擎Smarty内建函数section,sectionelse用法详解
  • 原文地址:https://www.cnblogs.com/xiaozhaoboke/p/11043668.html
Copyright © 2011-2022 走看看