Android之adb常用命令

5 篇文章 0 订阅

什么是adb?

  • 缩写:android debug bridge,是Android SDK提供的一个程序,路径:\SDK\platform-tools\adb.exe,
  • 配置:把adb 路径添加进系统环境变量path里面,例:D:\sdk\platform-tools; 这样在cmd 窗口就能响应adb命令,不用每次都进入adb目录。
     

什么是shell?

Shell俗称壳(用来区别于核 kernel),是指“为使用者提供操作界面”的软件(命令解析器)。说白了,它就是类似于Windows系统的cmd.exe的一个交互程序。作用:接收用户命令后,然后调用相应的应用程序。

 常见的shell有图形shell 和终端shell:

  1. 图形shell:如:Windows的explorer.exe、桌面、开始菜单,它们是一种图形shell
                       Linux的Gnome/Kde ....
  2. 终端Shell:如Windows下的cmd.exe,其他的操作系统都是比较强悍的;
    终端Shell最大的特点是字符操作,没有图形。试想,如果你的操作系统显卡驱动崩溃了,绘图功能不能用了,这就是最后的稻草了。事实上,几乎所有的显卡驱动都是在终端Shell下编写,然后用于绘制图形Shell....
    特别是在Linux、Mac、Android的终端Shell是非常的强大的。如:bash

搜索结果过多,需要过滤的话,可以利用find关键字: 

 

一些基本命令:
盘符跳转:
在 C:\Users\xglv     想要跳转到 E:/test,有以下方法:
     方法1:输入 cd ..     回车,直到回到根目录C,两个点是上一级目录,一个点是当前目录
                 在根目录C:下,一级级输入文件夹路径
                          cd E:
                          cd test
    (推荐) 方法2:输入:   cd /D E:\test    即可,记住:一定要加参数(/D) ,否则还是会返回原来的目录。


在“C:\Documents and Settings\Administrator>”,要进入E根目录时,直接输入盘符名+冒号即可切换,因为“盘符之间的切换是不需要CD命令“,
C:\Users\xglv>E:   即可

 

 

am命令:am可以理解是ActivityManager的缩写

直接启动指定Activity:adb shell am start -n package/.XXXactivity
适用于一个应用有多个Activity,不想从AActivity-->BActivity-->CActivity,而是直接运行CActivity,可以调用上述命令
。 

adb shell 
启动的方法为
# am start -n 包(package)名/包名.活动(activity)名称
启动的方法可以从每个应用的AndroidManifest.xml的文件中得到
Music 和 Video(音乐和视频)的启动方法为:
# am start -n com.android.music/com.android.music.MusicBrowserActivity
# am start -n com.android.music/com.android.music.VideoBrowserActivity
# am start -n com.android.music/com.android.music.MediaPlaybackActivity
Camera(照相机)的启动方法为:
# am start -n com.android.camera/com.android.camera.Camera
Browser(浏览器)的启动方法为:
# am start -n com.android.browser/com.android.browser.BrowserActivity
启动浏览器 :
am start -a android.intent.action.VIEW -d  http://www.google.cn/
拨打电话 :
am start -a android.intent.action.CALL -d tel:10086
启动 google map 直接定位到北京 :
am start -a android.intent.action.VIEW geo:0,0?q=beijing

 

命令作用例子
am start [options]启动Activityam start -n com.eg.Android.AlipayGphone/com.alipay.mobile.payee.ui.PayeeQRSetMoneyActivity
am startservice启动Serviceam startservice com.miui.powerkeeper
am stopservice停止Service 
am broadcast发送广播 
am killkill指定进程 
am force-stop强制停止某进程 
am hang系统hang住 
am restart重启手机 
am dumpheap将进程pid的堆信息输出到file 

am start [options] 的options参数
(1)am启动activity:
adb shell am start -n com.android.settings/com.android.settings.Settings
adb shell am start - com.android.settings/com.android.settings.Settings
(2)-a :am start -a -d
am start -a android.intent.action.DIAL -d tel:10010 //编辑电话(在拨号盘界面按下电话号码,但是不拨打)
am start -a android.intent.action.VIEW -d http://www.baidu.com  //打开某个网址
am start -a android.intent.action.MUSIC_PLAYER  //打开音乐播放器
(3)-d <DATA_URI>:启动时,要传入的URI
am start -d content://contacts/people/1
(4)-n :直接启动一个组件
adb shell am start -n com.android.settings/com.android.settings.Settings
(5)-t <MIME_TYPE>: 指定Intent MIME Type
am start -t image/png
(6)-c [-c ] …]:指定Intent category
am start -c android.intent.category.APP_CONTACTS
  

查看设备: 查看当前连接的设备

adb  devices

 

断开可用的无线设备

在Android Studio调试过程中,有时会发现弹出同一个局域网的其他设备,可以用以下命令关闭:
adb disconnect             

 

登录设备shell

  • 登录默认设备(当只有一台设备时)
adb  shell 
adb shell <command命令>
如:	adb  shell cat /proc/kmsg 

登录设备的shell,后面加<command命令>将是直接运行设备命令, 相当于执行远程命令

  • 登录指定设备(当存在一台设备时)--->  adb -s 【设备序列号】 shell
C:\Users\admin>adb devices
输出:List of devices attached
03ba45d84381a8d3        device
04e9a66c25234a67        device
FEJNOBD6IND6HU5H        device
C:\Users\admin>adb -s FEJNOBD6IND6HU5H shell
输出(登录成功):
root@4G+:/ #

 

关闭某个应用/进程

方法1:
adb shell
ps -A
kill 123456  //123456是进程PID,由第二步可得 

方法2:
adb shell
am force-stop com.lvxiangan.helloworld     // 包名

 

查看某个文件内容

cat  hello.text

 

文件夹创建及删除

mkdir Vw                                                            // 创建Vw 文件夹                

//删除       注意:删除 文件夹/文件 必须包含完整的路径
adb shell rm -r /data/local/tmp/local/tmp                            // 删除tmp文件夹及下面所有文件
adb shell rmdir /data/local/tmp/local/tmp                            // 删除空文件夹:如果不为空,则删除不了,报:Directory not empty
adb shell rm /data/local/tmp/local/tmp/*.*                            // 删除文件夹下所有的文件
adb shell rm /data/local/tmp/*.xml                                    // 删除文件夹下所有的xml文件
        
// 复制,将当前目录中的Res\QQ文件夹包括其中的文件复制到sd卡下目录下
D:\Workspace\aaa>adb push .\Res\QQ\   /sdcard/
        

 

 


 

安装软件:将指定的apk文件安装到设备上

adb  install <apk文件路径>
如: adb install com.sina.weibo    
参数“-r”,它是更新安装的意思,
参数 -s ,安装到sdcard.
补充:在命令行中先输入adb,然后直接把apk拉进去cmd即可
 

卸载软件

adb  uninstall <包名>
如: adb uninstall com.sina.weibo    
如果加 -k 参数,为卸载软件但是保留配置和缓存文件.
prop  /local/

 

同步更新

adb sync [ <directory> ]
如: adb sync /data/
如果不指定目录,将同时更新 /data 和 /system/

显示帮助信息

adb  help  注意没有横杠 -



把系统设置为可读写

adb  remount
设置手机系统的权限为可读写。
Android文件系统默认是只读权限,如果要对文件做删除/修改,需要用以上命令获取读写权限,当然,前提是有root权限。

 

重启adb.exe服务

adb kill-server              - kill the server if it is running
adb start-server             - ensure that there is a server running

5037为adb默认端口,通过一下命令查看该端口的使用情况:
netstat -aon|findstr "5037"
 

重启设备

adb reboot [bootloader|recovery]      - reboots the device, optionally into the bootloader or recovery program

查看Log

[adb] logcat [<option>] ... [<filter-spec>] ..

  • -b 加载一个可使用的日志缓冲区供查看,比如event 和radio . 默认值是main 。具体查看Viewing Alternative Log Buffers.
  • -c 清除屏幕的日志.
  • -d 输出日志到屏幕上.
  • -f 指定输出日志信息的 ,默认是stdout .
  • -g 输出指定的日志缓冲区,输出后退出.
  • -n 设置日志的最大数目 .,默认值是4,需要和 -r 选项一起使用。
  • -r 每 时输出日志,默认值为16,需要和-f 选项一起使用.
  • -s 设置默认的过滤级别为silent.
  • -v 设置日志输入格式,默认的是brief 格式

常用logcat命令如下:

  • 输出log到 123.txt
    adb logcat -v time > 123.txt

    time"格式 : "日期 时间 优先级 / 标签 (进程ID) : 进程名称 : 日志信息
    adb logcat -v time

    "long"格式 : " [ 日期 时间 进程ID : 线程ID 优先级 / 标签] 日志信息 "
    adb logcat -v long
  • 清空日志缓存                         adb logcat -c
  • 输出缓存日志                          adb logcat -d
  • 输出最近的5行日志                 adb logcat -t 5
  • 使用管道过滤日志
    过滤指定字符串                       adb logcat | grep wifi
  • 过滤忽略大小的字符串             adb logcat | grep -i wifi
  • 正则匹配V/ActivityManager      adb logcat | grep '^..Activity'


 

按键事件

可用于特殊按键模拟
input text <string>                        // 向设备输入一个字符串
input keyevent <event_code>     // 向设备发送一个Key事件
如: adb shell input keyevent 26   // 26 是电源键

 

pm 命令

命令作用
pm list packages列举app包信息
pm install [options]安装应用
pm uninstall [options]卸载应用
pm hide隐藏应用
pm unhide显示应用
pm get-install-location获取安装位置
pm clear清空App数据
pm force-dex-optdex优化
pm dumpdump信息

pm install [options] 的options参数

  • -r: 覆盖安装已存在Apk,并保持原有数据;
  • -d: 运行安装低版本Apk;
  • -t: 运行安装测试Apk
  • -i <installer_package_name style=“box-sizing: border-box;”>: 指定Apk的安装器;</installer_package_name>
  • -s: 安装apk到共享快存储,比如sdcard;
  • -f: 安装apk到内部系统内存
  • -l: 安装过程,持有转发锁
  • -g: 准许Apk manifest中的所有权限;

另外,这篇文章总结得也不错。

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值