adb操作及部分linux
ADB简介:
ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。安卓调试桥 (Android Debug Bridge, adb),是一种可以用来操作手机设备或模拟器的命令行工具。它存在于 sdk/platform-tools 目录下。虽然现在 Android Studio 已经将大部分 ADB 命令以图形化的形式实现了,但是了解一下还是有必要的。
查看屏幕分辨率: wm size 1280*720
使用screencap<filename> 命令来进行手机屏幕截图,例如:
adb shell screencap /sdcard/screen.png
图片保存到电脑:退出adb: exit
adb pull /sdcard/screen.png 指定保存的目录
adb pull 需要复制文件的目录 指定保存的目录
使用adb shell input tap命令来模拟屏幕点击事件
1.1. 四.事件输入:
查看屏幕分辨率: wm size
确认检测:960 540
策略提示确认:640 610
input:
使用adb shell input命令向屏幕输入一些信息,
例如:
adb shell input text "insert%stext%shere"
注意:%s表示空格。
使用adb shell input tap命令来模拟屏幕点击事件,例如:
adb shell input tap 500 1450
表示在屏幕上(500,1450)的坐标点上进行一次点击。
使用adb shell input swipe命令来模拟手势滑动事件,例如:
adb shell input swipe 100 500 100 1450 100
表示从屏幕坐标(100,500)开始,滑动到(100,1450)结束,整个过程耗时100ms.
使用上面的命令还可以模拟”**长按(long press)**操作,也就是2个坐标点相同,耗时超过500ms.
adb shell input swipe 100 500 100 500 500
使用adb shell input keyevent命令来模拟点按实体按钮的命令,例如:
adb shell input keyevent 25
该命令表示调低音量。数字25是在AOSP源码中的KeyEvent类里卖弄定义的一个事件常量。该类定义了将近300个事件常量。
adb shell am start -a "android.intent.action.VIEW" -d "https://www.google.com"
上面这个命令会启动浏览器打开谷歌网址页面。
还可以在上述命令后面添加**-e**来添加额外的信息。
使用下面的命令可以直接让手机重启:
adb shell am broadcast -a android.intent.action.BOOT_COMPILETED
五.事件输出:
1.2. 屏幕截图:
查看屏幕分辨率: wm size
使用screencap<filename> 命令来进行手机屏幕截图,例如:
adb shell screencap /sdcard/screen.png
图片保存到电脑:退出adb: exit
Adb pull /sdcard/screen.png 指定保存的目录
Adb pull 需要复制文件的目录 指定保存的目录
录制视频:
使用screenrecord [options] filename命令来录制屏幕视频,例如:
adb shell screenrecord /sdcard/demo.mp4
1
注:此命令适用于Android 4.4及以上的设备中。
录制视频也有参数选项,比如 --size 设置视频大小, --time-limit设置最大录制时长等。
查看当前连接设备:
adb devices
1
如果发现多个设备:
adb -s 设备号 其他指令
1
举例:
adb -s devicel install xxx.apk
查看顶部Activity:
windows环境下:
adb shell dumpsys activity | findstr "mFocusedActivity"
1
Linux、Mac环境下:
adb shell dumpsys activity | grep "mFocusedActivity"
1
查看日志:
adb logcat
1
安装apk文件:
adb install xxx.apk
1
此安装方式,如果已经存在,无法安装;
推荐使用覆盖安装:
adb install -r xxx.apk
1
比分直接RUN出来的包是test-onlu的无法安装,推荐使用**-t**
adb install -r -t xxx.apk
1
卸载App:
adb uninstall com.zhy.app
1
如果想要保留数据,则:
adb uninstall -k com.zhy.app
1
传递文件:
往手机SDCard传递文件:
adb push 文件名 手机端SDCard路径
1
例如:
adb push 帅照.jpg /sdcard/
从手机端下载文件:
adb pull /sdcard/xxx.txt
1
查看手机端安装的所有app包名:
adb shell pm list packages
1
启动Activity:
adb shell am start 包名/完整Activity路径
1
例如:
adb shell am start com.zhy.aaa/com.zhy.aaa.MainActivity
如果需要携带参数(携带一个Intent,Key 为name):
adb shell am start com.zhy.aaa/com.zhy.aaa.MainActivity -e name zhy
1
启动一个隐式的Intent:
adb shell am start -a "android.intent.action,VIEW" -d "https://www.google.com"
1
发送广播:
adb shell am broadcast -a "broadcastactionfilter"
1
-如果需要携带参数(携带一个Intent,key为name):
adb shell am broadcast -a "broadcastactionfilter" -e name zhy
1
启动服务:
adb shell am startservice "com.zhy.aaa/com.zhy.aaa.MyService"
1
屏幕截图:
可以使用screencap命令来进行手机屏幕截图,例如:
adb shell screencap /sdcard/screen.png
1
录制视频:
可以使用screenrecord[options] filename命令来录制屏幕视频,例如:
adb shell screenrecord /sdcard/demo.mp4
二. 安装和卸载
安装:
我们可以使用adb install [option] <path> 命令来将电脑上的一个APP安装到手机上,例如:
adb install crime.apk
注意:有时候apk文件不在你的启动cmd的路径下,记得添加apk文件在你电脑上的path路径。
如果当前连接的设备个数超过一个(比如开启多个模拟器)。
那么在安装操作之前,我们需要现在cmd中输入adb devices查看当前连接的设备的序列号,并复制你想要给哪个设备安装apk文件的设备序列号。然后指定要操作的设备的序列号,执行adb -s [serial_number] command 命令。
比如现在有多个设备连接了电脑并都打开了开发者模式,那么我如果直到了我当前华为设备的序列号后,输入下列命令:
adb -s A5R7N18202000063 install crime.apk
1
即可安装成功crime.apk文件了。
覆盖安装:
如果你当前要操作的手机设备已经安装了你想要安装的APP,你再去执行安装命令(即重复安装),就会报错:Failure [INSTALL_FAILED_ALREADY_EXISTS].解决方案为:覆盖安装:加上**-r**(replace)来替换当前已安装的应用。
adb install -r crime.apk
卸载:
卸载一个当前设备上的某个APP的命令为:adb uninstall [option]<packagename>,前提是你得直到你想要卸载的APP的包名。
注意:卸载APP知道它的包名;从电脑上安装APP到手机上只需要知道电脑中APK 的存放路径和APK文件名。
APP卸载后,其缓存文件一般也会被清除。
如果要想保留缓存文件,添加 -k,即:
adb uninstall -k 包名
如果想把手机中的文件拷贝到电脑中,使用**adb pull <remote> [local]**命令。其中,local地址为空,则会拷贝到电脑当前目录下:
例如:adb pull /sdcard/crime.apk
如果想要把电脑中的文件拷贝到手机里面,使用adb push <local> <remote> 命令:
adb push crime.apk /sdcard/data/data
2. Linux
find命令能够按多种方式指定查询条件,然后进行查询出指定的文件。
#find / -name file1
-name文件名:按找文件名进行查找。
-type文件类型:按文件类型进行查找。
-size[+| -]n(c|k):按照文件尺寸进行查找。
-perm[+| -]文件权限:按照文件权限进行查找。
压缩
gzip /home/file
解压gzip -d file.gz
解压.zip文件命令:unzip
压缩 Zip fili.zip file
解压tar -zxvf .tar.gz
压缩Tar -zcvf .tar.gz
1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、.tar.gz和.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压
查看压缩包内容:zip -sf @@.zip
Unzip -l @@.zip
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!