• adb


    adb的全称为Android Debug Bridge 调试桥,是连接Android手机与PC端的桥梁,通过adb可以管理、操作模拟器和设备,如安装软件、查看设备软硬件参数、系统升级、运行shell命令等。那具体有哪些可用命令呢?下面我就一一道来。

    adb环境变量的配置

    工欲善其事,必先利其器。adb是一个可执行文件,在SDK文件目录platform-tools下。adb的操作是通过cmd命令的dos窗口来实现的。如果不配置环境变量,那么就要通过 cd命令进入adb.exe所在的文件目录下方能继续操作。不想偷懒的程序员不是个好厨子。所以,环境变量必须得配。这样减少碎片化时间,何乐而不为呢?

    配置流程:右键计算机->属性->选择高级系统设置->选择‘高级‘选项->点击环境变量->在变量PATH的末尾添加上adb.exe所在文件夹的路径。

    最后,再到cmd中验证一下:
    出现以上结果,就表示环境变量配置成功啦。

    命令实战

    1.版本信息

    命令adb version

    结果就是上面一张图里显示的结果。
    2.查询模拟器或手机状态
    命令adb devices 获取手机设备序列号和连接状态
    命令 adb get-serialno 获得设备序列号

    执行以上命令后,adb为每一个设备输出序列号和状态两个信息。序列号是由adb针对模拟器或安卓设备创建的唯一标识。格式是<设备类型>-<端口号>,例如:emulator-5558。状态有两种值,offline和device。Offline表示未连接或未响应,device表示已经连接到服务商。但是device并不能表示Android系统已经完全启动,只是表示这个状态是可以操作状态。

    3.设置操作对象

    如果有多个模拟器或者Android设备同时连接上adb,那么可以通过命令来选择指定的目标设备。

    在执行adb命令时 在一般命令前再加入 –s <序列号>即可。

     

    以上是针对设备0cc1fb0c进入shell命令模式。

    4.安装/卸载apk

     

    安装命令

    adb install <APK路径>  安装apk

    adb install -r <APK路径>  保留数据和缓存文件,重新安装APK

    adb install -s <APK路径>  安装apk到sd卡

    卸载命令

    adb uninstall <package> 卸载APP

    adb uninstall <package> 卸载APP但保留数据和缓存文件


     

    将APK安装到sd卡的命令执行失败了,因为设备上没有sd被挂载。

    5.获取设备硬件和软件参数

     

    命令

    adb shell ->cat/sys/class/net/wlan0/address  获取Mac地址

    abd shell –>cat /proc/cpuinfo 获取CPU信息

    adb shell ->cat /proc/meminfo 查看当前内存占用

    adb shell -> cat /proc/iomem 查看IO内存分区


    adb shell top  查看设备CPU和内存占用情况

    adb shell top –m 3 查看占用内存前3的APP


    adb shell top –n 1 刷新一次内存信息,然后返回

    adb shell ps 查看进程列表

    adb shell kill <pid>杀死一个进程

    adb shell ps –x <pid>查看指定进程状态

    adb shell service list 查看后台服务信息

    6.按键事件

    命令 adb shell input keyevent <no>

    No支持以下80多种不同的按键值

    0 --> "KEYCODE_UNKNOWN"
    1 -->  "KEYCODE_MENU"
    2 -->  "KEYCODE_SOFT_RIGHT"
    3 -->  "KEYCODE_HOME"
    4 -->  "KEYCODE_BACK"
    5 -->  "KEYCODE_CALL" 
    6 -->  "KEYCODE_ENDCALL" 
    7 -->  "KEYCODE_0" 
    8 -->  "KEYCODE_1" 
    9 -->  "KEYCODE_2" 
    10 -->  "KEYCODE_3"
    11 -->  "KEYCODE_4" 
    12 -->  "KEYCODE_5" 
    13 -->  "KEYCODE_6" 
    14 -->  "KEYCODE_7" 
    15 -->  "KEYCODE_8" 
    16 -->  "KEYCODE_9" 
    17 -->  "KEYCODE_STAR" 
    18 -->  "KEYCODE_POUND" 
    19 --> "KEYCODE_DPAD_UP" 
    20 --> "KEYCODE_DPAD_DOWN" 
    21 --> "KEYCODE_DPAD_LEFT" 
    22 -->  "KEYCODE_DPAD_RIGHT"
    23 -->  "KEYCODE_DPAD_CENTER"
    24 --> "KEYCODE_VOLUME_UP" 
    25 --> "KEYCODE_VOLUME_DOWN" 
    26 -->  "KEYCODE_POWER" 
    27 -->  "KEYCODE_CAMERA" 
    28 -->  "KEYCODE_CLEAR" 
    29 -->  "KEYCODE_A" 
    30 -->  "KEYCODE_B" 
    31 -->  "KEYCODE_C" 
    32 -->  "KEYCODE_D" 
    33 -->  "KEYCODE_E" 
    34 -->  "KEYCODE_F" 
    35 -->  "KEYCODE_G" 
    36 -->  "KEYCODE_H" 
    37 -->  "KEYCODE_I" 
    38 -->  "KEYCODE_J" 
    39 -->  "KEYCODE_K" 
    40 -->  "KEYCODE_L" 
    41 -->  "KEYCODE_M"
    42 -->  "KEYCODE_N" 
    43 -->  "KEYCODE_O" 
    44 -->  "KEYCODE_P" 
    45 -->  "KEYCODE_Q" 
    46 -->  "KEYCODE_R" 
    47 -->  "KEYCODE_S" 
    48 -->  "KEYCODE_T" 
    49 -->  "KEYCODE_U" 
    50 -->  "KEYCODE_V" 
    51 -->  "KEYCODE_W" 
    52 -->  "KEYCODE_X"
    53 -->  "KEYCODE_Y" 
    54 -->  "KEYCODE_Z" 
    55 -->  "KEYCODE_COMMA" 
    56 -->  "KEYCODE_PERIOD"
    57 --> "KEYCODE_ALT_LEFT" 
    58 --> "KEYCODE_ALT_RIGHT" 
    59 --> "KEYCODE_SHIFT_LEFT" 
    60 --> "KEYCODE_SHIFT_RIGHT" 
    61 -->  "KEYCODE_TAB" 
    62 -->  "KEYCODE_SPACE" 
    63 -->  "KEYCODE_SYM" 
    64 --> "KEYCODE_EXPLORER" 
    65 --> "KEYCODE_ENVELOPE" 
    66 -->  "KEYCODE_ENTER" 
    67 -->  "KEYCODE_DEL" 
    68 -->  "KEYCODE_GRAVE" 
    69 -->  "KEYCODE_MINUS" 
    70 -->  "KEYCODE_EQUALS" 
    71 --> "KEYCODE_LEFT_BRACKET" 
    72 -->  "KEYCODE_RIGHT_BRACKET" 
    73 -->  "KEYCODE_BACKSLASH"
    74 --> "KEYCODE_SEMICOLON" 
    75 -->  "KEYCODE_APOSTROPHE"
    76 -->  "KEYCODE_SLASH" 
    77 -->  "KEYCODE_AT" 
    78 -->  "KEYCODE_NUM" 
    79 --> "KEYCODE_HEADSETHOOK" 
    80 -->  "KEYCODE_FOCUS"
    81 -->  "KEYCODE_PLUS"
    82 -->  "KEYCODE_MENU"
    83 -->  "KEYCODE_NOTIFICATION"
    84 -->  "KEYCODE_SEARCH" 
    85 --> "TAG_LAST_KEYCODE" 

    例如:

    adb shell input keyevent 1 打开菜单

    adb shell input keyevent 26 按下电源键

    7.am命令

    adb shell am start com.dls.myview/com.dls.myview.LoginActivity 启动包名为com.dls.myview下的LoginActivity

    除了可以启动activity,广播、服务也可以启动。格式和上面一样。

    am broadcast <Intent> 启动广播

    am startservice <Intent> 启动服务

    am force-stop <PACKAGE> 强制终止app

    8.pm命令

    pm list packages 列出所有包名

    -f 列出所有apk路径以及包名

    -s 列出系统apk路径以及包名

    -3 列出用户apk路径以及包名

    -i 相应的报名查找

    pm list 

    pm list permission-groups 列出所有权限组

    pm list permissions –d 列出所有的危险权限

    pm list permissions –u 列出所有的危险和普通权限

    pm list features 列出所有功能

    pm list libraries 列出所有libraries

    pm path <package> APP安装目录文件夹路径

    pm install <package> 执行安装APK

    pm uninstall <package> 执行卸载APK

    pm clear <package> 清除apk缓存文件和数据

    9.adb服务相关

    adb kill-server 终止adb服务

    adb start-server 启动adb服务

    adb root 以root权限重启adb服务

    adb reboot 重启设备

    adb reboot bootloader 重启并进入刷机模式

    adb reboot recovery 重启进入恢复模式

    文件操作

    adbremount   将system分区重新挂载为可读写分区

    adbpush <local> <remote>  从本地复制文件到设备

    adbpull <remote> <local>  从设备复制文件到本地

    adbshell ls  列出目录下的文件和文件夹,等同于dos中的dir命令

    adbshell cd <folder>  进入文件夹,等同于dos中的cd 命令

    adbshell rename path/oldfilename path/newfilename  重命名文件

    adbshell rm /system/avi.apk   删除system/avi.apk //rm -f 1.apk 强制删除apk

    adbshell rm -r <folder>  删除文件夹及其下面所有文件

    adbshell mv path/file newpath/file  移动文件

    adbshell chmod 777 /system/fonts/DroidSansFallback.ttf  设置文件权限

    adbshell mkdir path/foldelname  新建文件夹

    adbshell cat <file>  查看文件内容

    10.使用技巧

    删除图形验证码 前提:手机ROOT和已开启开发者模式

    adb devices 获取到设备号

    adb remount 将设备设置为可写模式

    adb shell 进入shell模式

    rm /data/system/password.key 删除密码文件

    adb reboot //设备重启

    修改开关机动画

    adb devices

    adb remount

    adb pushpower_off.gif  /opl/data/res/images 关机动画

    adb pushboot_animation.gif  /opl/data/res/images 开机动画

    adb shell chmod644 /opl/data/res/images/power_off.gif

    adb shell chmod644 /opl/data/res/images/boot_animation.gif


    进入Doze模式(测试用)

    要求:Android NougatDeveloper Preview4或以上版本的设备。

    什么是Doze 模式?

    Android 6.0(API level 23)开始,Android提出了两个延长电池使用时间的省电特性给用户。用户管理可以在没有充电的情况下管理app的行为。当用户一段时间没有使用手机的时候,Doze模式通过延缓app后台的CPU和网络活动减少电量的消耗。

    命令

    adb shell dumpsysbattery unplug  使设备进入未连接充电模式

    adb shell dumpsysdeviceidle step [light|deep] 强行进入Doze模式

    adb shell dumpsys battery reset 退出doze模式

    启动虚拟机:

    连接夜神:adb connect 127.0.0.1:62001

    android -h:

    android create project -n hello -t 1 -p d:/hello -k com.android.n

    先将tcpdump文件上传至 安卓虚拟机 /data/local/

     

     用wireshark打开。


    adb pull <remote> <local>

    11. 向模拟器中写文件:

    adb push <local> <remote>

    12. 进入模拟器的shell模式:

    adb shell

    13. 启动SDK,文档,实例下载管理器:

    android

    14. 缷载apk包:

    adb shell

    cd data/data 查找包名

    exit

    adb uninstall apk包的包名

    15. 查看adb命令帮助信息:

    adb help

    17. 获取管理员权限:

    su root

    18. 启动Activity:

    adb shell am start -n 包名/包名.类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。

    19、访问数据库SQLite3

    adb shell
    sqlite3

    #cd system/sd/data //进入系统内指定文件夹
    #ls //列表显示当前文件夹内容
    #rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件
    #rm xxx //删除文件xxx
    #rmdir xxx //删除xxx的文件夹

     

     

     

  • 相关阅读:
    BZOJ 2339: [HNOI2011]卡农 DP+容斥原理
    BZOJ 2560: 串珠子 状压DP+容斥原理
    BZOJ 4455: [Zjoi2016]小星星 容斥原理+树形DP
    BZOJ 2660: [Beijing wc2012]最多的方案 DP+贪心
    【luogu3734】 [HAOI2017]方案数 组合计数
    BZOJ 1495: [NOI2006]网络收费 树形DP+复杂度分析
    在TTF字体中提取想要的文字
    dos命令创建安卓签名
    比较和排序(IComparable和IComparer以及它们的泛型实现)
    unity LineRenderer
  • 原文地址:https://www.cnblogs.com/minkillmax/p/8337274.html
Copyright © 2020-2023  润新知