adb命令和模拟机的交互

  • 前言
  • 一、adb命令和对应效果
  • 1.获取应用的包名,界面名命令
  • 1.1在自己安卓模拟器中打开页面如下:
  • 1.2在cmd输入如下命令:
  • 1.3/前面的就是包名,后面的就是界面名也叫启动名。
  • 2.获取已连接设备号
  • 2.1在cmd输入如下命令:
  • 3.本机推文件到安卓模拟器
  • 3.1推送前安卓存储根目录截图
  • 3.2在cmd输入如下命令:
  • 3.3表示推送成功,在安卓设置-存储-文件下可以看到a.txt
  • 4.本机从安卓模拟器拉文件到指定文件夹
  • 4.1拉取之前,修改安卓存储路径下文档的内容
  • 4.2在cmd输入如下命令:
  • 4.3推送后本地路径下可以看到a.txt
  • 5.获取app启动时间
  • 5.1在cmd输入如下命令:
  • 5.2看到手机上跳转到对应页面极为成功
  • 5.3返回值的解释
  • 6.其他命令
  • 二、android-sdk的原理



前言

在电脑上成功安装了android-sdk和genymontion后,可以直接在本机cmd窗口用adb命令来和安卓模拟器进行交互。


提示:以下是本篇文章正文内容,下面案例可供参考

一、adb命令和对应效果

提示:要打开自己的安卓模拟器

1.获取应用的包名,界面名命令

包名:是手机上应用的唯一标识
界面名:是应用中页面的唯一标识

1.1在自己安卓模拟器中打开页面如下:

安卓自动化app python 安卓自动化快捷指令_包名

1.2在cmd输入如下命令:
adb shell dumpsys window windows | findstr mFocusedApp

返回内容:

mFocusedApp=AppWindowToken{6aba2f2 token=Token{9a515fd ActivityRecord{f9d9254 u0 com.android.documentsui/.files.FilesActivity t39}}}
1.3/前面的就是包名,后面的就是界面名也叫启动名。

包名:

com.android.documentsui

界面名:

.files.FilesActivity
2.获取已连接设备号
2.1在cmd输入如下命令:
adb devices

返回内容:

192.168.127.101:5555    device

表示已经连上一个设备

3.本机推文件到安卓模拟器

将本机D盘下的a.txt文件推到安卓模拟器存储下,

a.txt文件内容截图

安卓自动化app python 安卓自动化快捷指令_安卓模拟器_02

3.1推送前安卓存储根目录截图

安卓设置-存储-文件下查看,无文件

安卓自动化app python 安卓自动化快捷指令_包名

3.2在cmd输入如下命令:

adb push 电脑的⽂件路径 ⼿机的⽂件夹路径

adb push D:\a.txt  /sdcard

返回内容:

D:\a.txt: 1 file pushed, 0 skipped. 0.0 MB/s (13 bytes in 0.007s)
3.3表示推送成功,在安卓设置-存储-文件下可以看到a.txt

推送后

安卓自动化app python 安卓自动化快捷指令_包名_04

4.本机从安卓模拟器拉文件到指定文件夹
4.1拉取之前,修改安卓存储路径下文档的内容

adb pull ⼿机的⽂件路径 电脑的⽂件夹路径

安卓自动化app python 安卓自动化快捷指令_安卓模拟器_05

4.2在cmd输入如下命令:
adb pull /sdcard/a.txt D:\dev7

返回内容:

/sdcard/a.txt: 1 file pulled, 0 skipped. 0.0 MB/s (21 bytes in 0.004s)

表示拉取成功,在电脑的D:\dev7下可以看到a.txt

4.3推送后本地路径下可以看到a.txt

安卓自动化app python 安卓自动化快捷指令_android_06

5.获取app启动时间

首先要用命令获取应用的包名和界面名,然后再把应用从内存中退出。

5.1在cmd输入如下命令:

adb shell am start -W 包名/启动名

adb shell am start -W com.android.documentsui/.files.FilesActivity

返回内容:

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.documentsui/.files.FilesActivity }
Status: ok
Activity: com.android.documentsui/.files.FilesActivity
ThisTime: 946
TotalTime: 946
WaitTime: 962
Complete
5.2看到手机上跳转到对应页面极为成功

安卓自动化app python 安卓自动化快捷指令_adb_07

5.3返回值的解释
  1. ThisTime :该界⾯ ( activity ) 启动耗时(毫秒)
  2. TotalTime :应⽤⾃身启动耗时 = ThisTime + 应⽤ application 等资源启动时间(毫秒)
  3. WaitTime :系统启动应⽤耗时 = TotalTime + 系统资源启动时间(毫秒)
6.其他命令

打开有bug的app,输入命令,获取log
adb logcat

安装 app 到⼿机
adb install 路 径/xx.apk

卸载⼿机上的 app,需要指定包名
adb uninstall 包名

进⼊到安卓⼿机内部的linux系统命令⾏中
adb shell

启动 adb 服务端,出 bug 时使⽤可以重启服务器,先关
闭再启动
adb start-server

停⽌ adb 服务端,出 bug 时使⽤可以重启服务器,先关
闭再启动
adb kill-server

查看 adb 帮助
adb --help

二、android-sdk的原理

  1. Client端:运⾏在本机中,即你的电脑,⽤来发送 adb 命令;
  2. Daemon 守护进程:运⾏在调试设备中,⼿机或模拟器,⽤来接收并执⾏ adb 命令;
  3. Server端:同样运⾏在本机中,⽤来管理 Client 端和⼿机的 Daemon 之间的通信。