adb命令整理大全

     adb是什么?:adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。
      adb有什么用?:借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作!

常用命令:


1.显示当前运行的全部模拟器:    adb devices
2.启动ADB    adb start-server
3.停止ADB   adb kill-server
4.安装应用程序:      adb install -r [apk文件]
-l #锁定该程序-r #重新安装该程序,保存数据-s #安装在SD卡内,而不是设备内部存储
例:adb install --r D:\mm.apk
5.卸载应用程序:      adb uninstall [packagename]
例:adb uninstall com.tencent.mm
-k #不删除程序运行所产生的数据和缓存目录(如软件的数据库文件)
例:adb uninstall -k com.tencent.mm

6. 讲手机设备中的文件copy到本地计算机:     
adb pull 设备目录 本地目录例:adb pull /sdcard/mm.txt D:\(讲内存卡根目录的txt文件copy到D盘根目录)
7.将本地计算机的文件copy到手机设备中   
adb push 本地目录 手机设备目录例:adb push D:\mm.txt /sdcard
8.查看adb命令帮助信息:      adb help
9.截屏例:adb shell screencap -p 截图文件路径
10.查看指定包名应用的数据库储存信息(包括储存的SQL语句)
例:adb shell dumpsys dbinfo[packagename]

11.查看指定的进程或则进程id的内存信息  
adb shell dumpsys meminfo[packagename/pid]可以查看进程当前的内存情况
例:adb shell dumpsys meminfo com.tencent.mm
12.查看指定包名应用的详细信息(相当于AndroidMainfest.xml中内容)
adb shell dumpsys [packagename]例:adb shell dumpsys com.tencent.mm
13.查看当前应用的activity信息adb shell dumpsys activity top查看bug报告: 
adb bugreport 
14.列出手机装的所有apk包名
adb shell pm list packages
系统应用:adb shell pm list packages -s
第三方应用:adb shell pm list packages -3
使用grep过滤 :adb shell pm list packages | grep qq

15.清除应用缓存信息:
adb shell pm clear [packagename]
16.通过adb启动应用程序页面
adb shell am start -n[包名+activity名]
例:adb shell am start -n com.tencent.mm/.ui.SplashAcitvity
强制停止应用有些时候应用卡死了,需要强制停止,则执行以下命令:adb shell am force-stop <packagename>// 如:adb shell am force-stop cn.androidstar.demo
17、记录无线通讯日志:    
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录: 
    adb shell 
    logcat -b radio
18、获取设备的ID和序列号:     adb get-product 
     adb get-serialno

19、访问数据库SQLite3    adb shell 
     sqlite3#cd system/sd/data //进入系统内指定文件夹 
#ls //列表显示当前文件夹内容 
#rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件 
#rm xxx //删除文件xxx 
#rmdir xxx //删除xxx的文件夹

20.导出设备信息
adb get-serialno > 序列号.txt
adb shell cat /sys/class/net/wlan0/address > MAC地址.txt
adb shell getprop ro.product.model > 设备型号.txt
adb shell getprop ro.build.version.release> 系统版本.txt
adb shell pm list packages -s > 系统应用的所有包名.txt
adb shell pm list packages -3 > 第三方应用包名.txt
adb shell wm size > 屏幕分辨率.txt
adb shell wm density > 屏幕密度.txt
adb shell cat /proc/cpuinfo > CPU信息.txt
adb shell pm list permissions -f > 权限.txt
adb shell pm list users -f > 用户.txt

21.重启adb reboot
还有2个非常有用的命令:

22.备份adb backup 
[-f <file>] [-apk|-noapk][-shared|-noshared] [-all] [-system|nosystem] [<packages...>]
例:adb backup -f mm.ab -noapk -noshared -nosystemcom.tencent.mm你可以使用的最基本的命令是很简单的
adb backup -all
它将使用默认方式备份应用和设备的数据(不包含apk)到当前目录下并保存为文件backup.ab
※这个命令有可能不对每个设置都有效,如果你出现像这种 "adb: cannot open file ./backup.ab"的错误,使用 adb backup -all -fC:\backup.ab来代替,其中路径C:\可根据喜好替换
对各个参数的解释:
-f <file>
用这个来选择备份文件存储在哪里,例如-f /backup/mybackup.ab将会使文件存储在根磁盘(Windows的C盘等等)下一个名为backup的文件夹里,并且备份文件名为mybackup.ab
-apk|-noapk
这个决定是否在备份里包含apk或者仅仅只备份应用数据,个人推荐使用-apk以免有的应用在应用市场找不到,如果不使用则默认的是-noapk
-shared|-noshared
这个参数用于决定是否备份设备共享的SD card内容,默认是-noshare,主要包括内部存储中的音乐、图片和视频,因此为保险起见,建议加上-share
-all
这个参数是一种简单地表达“所有应用”的说法,package参数可以选择备份单独的应用,如果你不是备份某个应用,使用-all备份整个系统
-system|-nosystem
这个参数决定-all标签是否包含系统应用,默认的是-system,根据情况可选择是否用-nosystem
<packages...>
如果你知道应用安装包的名称(例如com.google.android.apps.plus),就可以使用该参数备份特定应用。
3.当决定如何执行备份后,输入你喜欢的命令,在华为G700上测试,使用命令
adb backup -apk -all

23.使用run-as在非root情况获取沙盒数据(前提是开启debuggable模式)
    1.   shell@android:/data $ run-as com.your.package 
    2.   run-as com.your.package 
    3.   shell@android:/data/data/com.your.package $ cd /data/data/com.your.package  
    4.  cd /data/data/com.your.package 
    5.  shell@android:/data/data/com.your.package $ ls  
    6.   ls  
    7.   cache  
    8.  databases 
    9. lib  
    10. shared_prefs  
    11. shell@android:/data/data/com.your.package $ cd databases  
    12. cd databases  
    13. shell@android:/data/data/com.your.package/databases $ ls  
    14. yourpackagename.db  
    15. $ cat preferences.db > /mnt/sdcard/yourpackagename.db    
将你要访问的package目录下的db文件拷贝到sdcard中,这样就可以正常访问了! 对文件进行增删

24:adb shell "run-aspackage.name chmod 666 /data/data/package.name/databases/file"
    adb pull /data/data/package.name/databases/file .
    adb shell "run-aspackage.name chmod 600 /data/data/package.name/databases/file"
    adb exec-out run-as package.name cat databases/file > file 

25. adb shellshell $ run-as com.example.packageshell $ chmod 666 databases/fileshell $     exit                                             
'run-as'shell $ cp /data/data/package.name/databases/file /sdcard/shell $ run-as com.example.packageshell $ chmod 600 databases/file> adb pull /sdcard/file .

26.更新一些反编译常用命令:
    1.查看当前进程的内存的加载情况啊:
      cat /proc/7654/maps 查看当前进程内存的映射情况
    2.查看当前应用使用的端口号信息:
      cat /proc/[pid]/net/tcp
    3.查看进程的状态信息:
      cat /proc/[pid]/status可以通过该命令获取到当前进程的包名,PID,PPID等等重要信息(比较实用的命令)
    4.查看一个dex文件的详细信息
       dexdump [dex文件路径]
    5.使用aapt命令获取apk的清单文件
      aapt dump xmltree [apk包] [需要查看的资源文件xml]
      例:aapt  dump xmltree mm.apk AndroidMainfest.xml > demo.txt(讲mm应用中的                
      AndroidMainfest.xml文件导入到新建的demo.txt文本中)
      这里可能大家有个误区,aapt命令是与adb命令不是同一个命令,如果要使用和adb一样需要配置环境变
      量,也可以在SDK的build-tools文件夹内,shift+右键在此处打开命令窗口使用该命令!

<think>好的,我现在需要帮助用户了解ADB指令的用法,特别是关于如何正确使用adb指令的完整教程以及&&运算符的应用。首先,我应该回顾用户提供的系统级指令,确保回答符合格式要求,比如行内数学表达式用$...$,独立公式用$$...$$,正确使用中文,生成相关问题等。同时,用户提到参考了站内的引用内容,但看起来这些引用主要关于Shell运算符、磁盘信息提取、MySQL文本类型和脚本执行路径,可能和ADB直接关联不大。不过,我需要考虑如何将这些引用内容自然地融入到ADB的讲解中,或者判断是否需要忽略不相关的引用。 首先,ADB(Android Debug Bridge)是用于与Android设备通信的命令行工具,常用于安装应用、调试、文件传输等。用户需要完整的教程和&&运算符的使用。考虑到用户可能是在Shell环境下使用ADB命令,因此结合Shell的运算符,比如&&,是有意义的。例如,在Shell中,command1 && command2表示当command1成功执行后,才执行command2。这可以用于连续执行多个ADB命令,确保前一个成功后再执行下一个。 接下来,我需要整理ADB的基本用法,包括常见指令如设备连接、安装应用、文件传输、日志查看等。同时,需要特别说明&&运算符在ADB命令中的使用场景,比如在脚本中连续执行多个命令,或者在自动化测试流程中确保步骤顺序。 在结构上,按照用户的示例,先介绍ADB的基本概念,然后分步骤讲解安装配置、常用指令、&&运算符的应用,再提供示例代码或命令片段。之后生成相关问题,如ADB调试技巧、常见错误处理、高级功能等。 需要检查是否所有数学表达式或变量正确使用LaTeX格式,但ADB相关的指令可能不涉及太多数学公式,所以可能这部分内容较少,但如果有需要的地方,比如可能涉及端口号等,需用$符号包裹,例如端口号$5037$。 另外,用户提供的引用中,引用[1]关于Shell运算符,特别是{}和|的使用,虽然ADB本身不直接使用这些运算符,但在编写Shell脚本调用ADB命令时可能会用到,比如管道符处理ADB的输出,或者使用{}组合多个命令。因此可以在讲解ADB脚本示例时引用这些内容,例如将多个ADB命令组合在一起执行,或者通过管道处理日志输出。 引用[2]提到使用df、grep、awk和管道操作,这在处理ADB命令的输出时也可能有用,比如使用adb shell df | grep data 来过滤特定分区的信息,这里可以举例说明如何结合Shell命令处理ADB输出,并引用[2]作为管道操作的例子。 引用[3]关于MySQL的文本类型,可能与当前问题无关,但引用[4]提到执行脚本的路径,可以联想到在ADB中执行脚本或通过ADB推送脚本到设备中运行,比如adb push script.sh /sdcard/ 和 adb shell sh /sdcard/script.sh,这里可以引用[4]中的路径示例,说明如何执行设备上的脚本。 在生成回答时,需要确保每个引用在适当的地方被提及,例如在讲解Shell运算符结合ADB时引用[1],在处理ADB输出时引用[2],在涉及脚本路径时引用[4]。虽然引用[3]可能不相关,但可以忽略,只使用相关的引用。 最后,生成相关问题,可能包括ADB的高级用法、常见问题解决、与其他工具的结合使用等。 现在需要将以上思考整理成结构清晰的中文回答,符合用户的格式要求,并自然融入相关引用。</think>### ADB指令基础与`&&`运算符使用教程 Android Debug Bridge(ADB)是用于与Android设备通信的命令行工具,支持安装应用、调试、文件传输等功能。以下是ADB的常用指令及`&&`运算符的应用方法。 --- #### **1. ADB安装与配置** - **安装ADB工具**: 下载Android SDK或独立ADB工具包,并配置环境变量。例如,Linux/macOS中可添加路径到`~/.bashrc`: ```bash export PATH=$PATH:/path/to/adb ``` 引用[^4]中提到的脚本路径格式与此类似。 - **连接设备**: 使用USB连接设备并启用开发者模式,执行: ```bash adb devices # 查看已连接设备 ``` --- #### **2. 常用ADB指令** - **安装/卸载应用**: ```bash adb install app.apk # 安装应用 adb uninstall com.example.app # 卸载应用 ``` - **文件传输**: ```bash adb push local.txt /sdcard/ # 上传文件到设备 adb pull /sdcard/remote.txt . # 下载文件到本地 ``` - **日志查看**: ```bash adb logcat | grep "error" # 过滤日志中的错误信息,类似引用[^2]的管道操作 ``` --- #### **3. `&&`运算符在ADB中的应用** `&&`运算符用于**顺序执行命令**,仅当前一条命令成功时才会执行下一条。 **示例**: ```bash adb devices && adb install app.apk && adb shell am start com.example.app ``` - 若设备连接成功(`adb devices`),则安装应用; - 若安装成功,则启动应用。 **与Shell脚本结合**: 使用`{}`或`;`组合多个命令(引用[^1]): ```bash { adb shell df; adb logcat; } > output.txt # 将两条命令输出重定向到文件 ``` --- #### **4. 高级用法示例** - **自动化测试脚本**: ```bash adb connect 192.168.1.100:5555 && \ adb install test.apk && \ adb shell monkey -p com.example.app 100 ``` 此脚本依次执行设备连接、安装应用、启动压力测试。 - **结合管道处理输出**(引用): ```bash adb shell df | grep /data | awk '{print $5}' # 提取/data分区的使用率 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值