导航:首页 > 程序命令 > adb命令启动activity

adb命令启动activity

发布时间:2023-04-27 14:55:51

⑴ adb启动未导出activity

adb启动未导出activity,。adb驱动导出数据方法:点击左上角选项栏文件——导出——选择导出形式——点击下一步胡芹弊——选首老择保存路径——完成貌似导出的图片是BMP格式的裤族。

⑵ am start 启动activity 命令

使用am start命令启动android apk应用程序

启动tbox service test apk
adb root
adb shell
am start -n com.demo.hmi.xxxservices.xxx/贺历.MainActivity

程序的入口类可以从每个应用禅正搜的AndroidManifest.xml的文件中得到;
启动的方法可以从每个应用的AndroidManifest.xml的文件中得到;

还可以使用 pm 和 mpsys命令得知
这种情况下,只知清明道一个apk名字,也没有打开使用过,则使用

其中有如下一行,可知要启动的package和activity
a738865 com.demo.hmi.onstarservices.tbox/.MainActivity

⑶ vl播放器adb启动

启动命令团绝仔很简单: adb shell am start -n package/l...

2.

例如以下命令可以打开模拟器上的设置app。 adb shell am start -n ...

3.

命令之后显示“塌汪Starting: Intent { cmp=com....

4.

所以命令宏睁的关键是要获取package和launch activity

⑷ 干货|做App测试,那些必知必会的Adb常用命令

> 本文节选自霍格沃兹测试学院内部教材

为了让大家更好的学习Adb常用命令,我们先从安装Android环境搭建开始讲解哦。

安装jdk  

###  **  

**

 **  

**

### 因为 Android SDK 是依赖于 java 环境的,所以需要先把 java 的环境搭建好。Java

环境可以参考搭建帖子:https://ceshiren.com/t/topic/4001

安装Android SDK  

###  

###  

### adb 包含在 Android SDK 平台工具软件包中。具体的 Android SDK

环境搭建步骤请参考帖子:https://ceshiren.com/t/topic/4001

adb简介  

adb 全称为 Android Debug Bridge(Android 调试桥),是 Android SDK 中提供的用于管理 Android

模拟器或真机的工具。

adb 是一种功能强大的命令行工具,可让 PC 端与 Android 设备进行通信。adb 命令可执行各种设备操作,例如安装和调试应用。

adb组成  

采用了客户端-服务器(C/S)模型,包括三个部分:

  * adb client

  * adb server

  * adb daemon

ADB client:运行在电脑上,可以在命令行中运行 adb 命令来调用该客户端。Client 本质上就是 Shell,用来发送命令给

Server。发送命令时,首先检测 PC 上有没有启动 Server,如果没有 Server,则会自动启动一个,然后将命令发送到 Server。

ADB server:是运行在电脑上的后台进程,用于管理客户端与运行在模拟器或真机的守护进程通信。

ADB Daemon:守护进程作为一个后台进程在 Android 设备或模拟器系统中运行。它的作用是连接 adb 服务端,并且为运行在主机上的 adb

客户端提供一些服务。

adb工作原理  

当 adb 客户端启动时,客户端会先检查 adb 服务端是否启动。如果没有,会先启动服务端进程。adb 服务端在启动后,会与 5037 端口绑定,并监听

adb 客户端发出的命令。

然后,服务端会与所有正在运行的 Android 设备建立连接。它通过扫描 5555 到 5585 之间的奇数号端口查找 Android 设备。服务端一旦发现

Android 设备上的 adb 守护进程在运行,便会与相应的端口建立连接。每个 Android 设备都使用一对端口,偶数端口用于控制台连接,奇数端口用于

adb 连接。

例如:服务端与所有 Android 设备建立连接后,就可以使用 adb 命令来访问这些设备了。服务端会管理已经建立的连接,并处理来自 adb 客户端的命令。

启动adb调试  

### Android 真机可以通过 USB 连接到 adb,连接时需要在设备的系统设置中启用 USB 调试(位于开发者选项下),启动 USB

调试后,设备上的 adb 守护进程就会被启动,adb 服务端才可以和设备建立连接。除了用 USB 的方式连接之外,也可以通过 WLAN

的方式连接,这种方式不做赘述。

  1. 模拟器:不需要手动设置 USB 调试开关,默认是打开的

  2. 真机通过 USB 连接

    * 安装 Android 手机驱动

    * 设备启用 USB 调试

adb命令格式  

  * 

    adb [-d|-e|-s <serialNumber>] <command>

  * -d:指定当前唯一通过 USB 连接的 Android 设备为命令目标

  * -e:指定当前唯一运行的模拟器为命令目标

  * -s:指定相应 serialNumber 号的设备/模拟器为命令目标

方括号中的内容是可选的,尖括号内容的是必填的。方括号中参数可以指定设备,关于设备的指定有三个参数可以使用。-d、-e 和 -s,其中使用最多的是 -s

参数,在连接多台设备的时候,一般都是使用 -s 加上设备的序列号这种方式去指定具体设备。

adb 可以同时连接多台设备,但是一次只能对一台设备执行命令。所有连接多台设备的时候,是必须要制定设备,命令才可以执行成功的。

查询设备  

把 Android 设备连接到 adb 服务端后,需要确认设备的连接状态。这时可以使用查询命令进行查询。

 **连接模拟器** (以 mumu 模拟器为例)

  *   * 

    adb connect 127.0.0.1:7555adb devices

  * `adb connect` 命令可以通过 WLAN 的方式连接到模拟器,7555 为 mumu 模拟器的端口

  * `adb devices` 可以查询设备连接的状态

Windows 系统中,连接模拟器需要先执行 connect 命令去连接模拟器,127.0.0.1 是本地的 IP

地址,因为模拟器就是安装在本地的,所以要使用本地的 IP 地址,加上模拟器本身规定的一个端口号。mumu 的端口号是

7555,如果使用的是其他的模拟器的话,需要先去了解它的端口号是什么,然后再去连接。MacOS 系统中连接模拟器不需要先执行 connect 命令,直接执行

`adb devices` 命令即可。

 **连接真机**

 **  

**

真机直接用 USB 连接到电脑,不需要执行 connect 命令。

直接用 `adb devices`命令查看已经连接的设备列表即可。

    feier@ ~ % adb devices  

    List of devices attached  

    emulator-5554    device

直接命令后,如果设备已经成功连接,那么设备列表中就会展示已连接设备的信息。以图中的信息为例:

  * emualotr-5554:设备序列号

  * device:设备连接状态为成功

安装卸载应用  

测试过程中,如果需要安装或者卸载应用,可以直接用 adb 命令来操作。

  * 普通安装:`adb install <apk路径>`

  * 覆盖安装:`adb install -r <apk路径>`

  * 完全卸载:`adb uninstall <包名>`

  * 保留配置文件:`adb uninstall -k <包名> `

设备与电脑传输文件  

adb 命令支持电脑和 Android 设备之间的文件互传。比如我们需要提取 Android 设备中的日志文件到本地,就可以通过 adb 命令的方式来完成。

  * 从电脑上传文件至设备:`adb push <电脑路径> <设备路径>`

  * 从设备复制文件至电脑:`adb pull <设备路径> <电脑路径>`

日志  

打印链接设备的 log 信息

  * 屏幕输出日志:`adb logcat`

  * 通过标签过滤:`adb logcat -s 标签`

  * 显示时间:`adb logcat -v time`

  * 输出所有信息:`adb logcat -v long`

  * 输出日志到文件:`adb logcat -v time > log.txt`

  * 清除旧日志信息:`adb logcat -c`

adb shell命令  

使用 adb shell 命令相当于远程登录了 Android 系统,可以进入 Android 设备的系统内部。进入系统内部既可以执行一些简单的 Linux

命令也支持很多特有的命令。

使用 adb shell 命令有两种方式。

一种是直接在 adb shell 后面跟上命令。

  * 

    adb [-s serial_number] shell <command>

比如:

  *   *   *   *   *   *   *   *   *   *   * 

    feier@ ~ % adb shell .propdevetc...

另一种方式是在设备上启动交互式 shell

  * 

    adb [-s serial_number] shell

进入 shell 之后,再执行对应的命令。

比如我们进入设备内部,可以查看设备内部的目录结构和内容

  *   *   *   *   *   *   *   *   *   *   * 

    feier@ ~ % adb shellroot@x86:/ # .propdev...

要退出交互式 shell,可以按 Ctrl + D 键或输入 exit。

 **Android常用测试命令**  

下面整理出了Android常用的一些测试命令及用法。  

设备截图/录屏  

在测试过程中,如果需要截图或者是录屏,也可以直接使用 adb 命令来完成。

  * 截图:`adb shell screencap <设备路径>`

  * 录屏:`adb shell screenrecord <设备路径>`

调用Activity管理器  

在 adb shell 中,可以使用 Activity 管理器 (am) 工具发出命令以执行各种系统操作,如启动

Activity、强行停止进程、修改设备屏幕属性,等等。

在测试过程中,如果需要启动 app 或者强制关闭 app,可以通过 adb 命令来实现。

  * 启动应用:`adb shell am start -n <包名>/<Activity名>`

  * 强制停止应用:`adb shell am force-stop <包名>`

调用软件包管理器  

在 adb shell 中,可以使用软件包管理器 (pm) 工具发出命令,以对设备上安装的应用软件包执行操作和查询。

如果需要查询设备里都安装了什么应用,就可以使用 adb shell pm list 来查看,还可以加上不同的参数去查看不同类型的应用。而且也可以通过 adb

命令来清除应用相关的数据。

  * 显示设备中安装的所有应用:`adb shell pm list packages`

  * 只显示系统应用:`adb shell pm list packages -s`

  * 只显示第三方应用:`adb shell pm list packages -3`

  * 删除与软件包关联的所有数据:`adb shell pm clear <包名>`

adb shell mpsys  

mpsys 是一种在 Android 设备上运行的工具,可提供有关系统服务的信息。可以使用 adb 从命令行调用

mpsys,获取在连接的设备上运行的所有系统服务的诊断输出。

比如在测试中,如果需要通过 adb 命令启动 app,则需要知道 app 的包名和入口的 Activity

名。这个时候,就可以通过下面这条命令获取到这两个信息。

这个场景,需要先把要获取信息的应用启动,让它在前台运行,然后执行命令

`adb shell mpsys activity | grep mFocusedActivity`

  *   *   * 

    feier@ ~ % adb shell mpsys activity | grep mFocusedActivity  mFocusedActivity: ActivityRecord{9dae968 u0 com.xueqiu.android/.common.MainActivity t139}  

下方的日志中就会展示出来当前的包名和 Activity 名称。

  * 包名:`com.xueqiu.android`

  * Activity 名:`.common.MainActivity`

adb shell mpsys  

adb 命令还支持直接获取应用的页面信息。这个页面信息包含了页面中元素的属性,可以方便做自动化测试的时候去定位元素。获取到的页面布局会输出到一个 xml

文件中。

  * 当前窗口的 UI 布局简化信息:`adb shell uiautomator mp --compressed`

  *   * 

    feier@ ~ % adb shell uiautomator mp --compressedUI hierchary mped to: /sdcard/window_mp.xml

不指定输出文件路径时,mp 下来的文件默认存储路径为 `/sdcard/window_mp.xml`

可以通过 adb pull 命令把文件传输到电脑中,然后用 uiautomatorviewer 工具打开查看布局。

  * 指定输出文件路径:`adb shell uiautomator mp file <设备路径>`

adb常用命令就先讲到这里啦,下期我们分享App常见bug解析。大家还想看什么内容的文章也可以留言告诉我们哦!

 ** _ 

来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力

QQ交流群:484590337

公众号 TestingStudio

视频资料领取:https://qrcode.testing-studio.com/f?from=jianshu&url=https://ceshiren.com/t/topic/15844

点击查看更多信息

⑸ ADB 命令

查询设备
adb devices

查询手机中的用户
adb shell pm list users

查看设备上的应用包名:
adb shell pm list packages
adb shell pm list packages 打印设备/模拟器上的所有软件包
adb shell pm list packages -f 输出包和包相关联的文件
adb shell pm list packages -d 只输出禁用的包。由于本机禁用没有,输出为空。
adb shell pm list packages -e 只输出启用的包。
adb shell pm list packages -s 只输出系统的包。
adb shell pm list packages -3 只输出第三方的包。
adb shell pm list packages -i 只输出包和安装信息(安装来源)。
adb shell pm list packages -u 只输出包和未安装包信息(安装来源)
adb shell pm list packages -u -3 -e 组合使用

查询带有test的包名
adb shell pm list packages | findstr test

查询安装包路径
adb shell pm path [PackageName]

查询包对应的启动activity
adb shell pm query-activities -a android.intent.action.MAIN -c android.intent.category.LAUNCHER [PackageName]

启动应用
adb shell am start -n "[PackageName]/[ActivityName]" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
如:adb shell am start -n "com.example.test/com.example.test.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

卸载应用
adb shell pm uninstall -k --user 0 [PackageName] -k 表示保存数据 --user 指定用户 id,Android 系统支持多个用户,默认用户只有一个,id=0
如 adb shell pm uninstall com.example.test 对所有用户卸载com.example.test且不保存数据

停用应用
adb shell pm disable [PackageName]

启用应用
adb shell pm enable [PackageName]

清除应用数据
adb shell pm clear [PackageName]

设置应用安装位置
adb shell pm set-install-location
--[0/auto]:默认为自动
--[1/internal]:默认为安装在手机内部
--[2/external]:默认安装在外部存储

获取应用安装位置
adb shell pm get-install-location

查询操作过程中输出的日志
adb logcat > d:\log.txt

⑹ 使用adb查看别人家APP的数据

1.说明
2.使用adb命令获取指定应用的包名和Activity名称
3.使用adb命令启动/关闭APP
4.使用adb命令把手机中的apk导到电脑上
5.查看apk中的AndroidManifest.xml文件
6.使用adb命令进行数据备份
7.查看数据
8.结语

查看其它APP数据的前提是该APP默认开启数据备份,也就是allowBackup属性。
想问一下大家在平时的开发中对应用的安全性有很在意么?有可能大家会想到加密、混淆、apk加固,但还有一些其他细节的东西需要大家去了解。今天就介绍一下android:allowBackup属性。这个属性在开发的过程中通常是默认开启的,Google起初是为了防止数据丢失,留下了这个功能,但是这个属性也容易造成一些隐私数据的泄露。如果你想关闭可以把它设置为false。那么这个属性在哪里设置呢,就在AndroidManifest.xml文件中的application标签中。

要备份APP的数据,首先我们要知道这个APP的包名才可以进行备份。

在手机或模拟器上面运行APP,然后输入命令: adb shell mpsys activity top #
这时会输出很多东西,你可以用查找功能Ctrl+F,找到TASK,下图红框中就是要找的包名

命令: adb logcat| findstr START
然后在手机或模拟器上点击你想要获取的应用,这时就会在cmd中出现相应的包名和类名了。

启动APP的命令: adb shell am start -W -n package/activity

命令窗口通过adb shell 进入android 的Linux命令界面,输入am help看到如下信息:

它会展示出在不同场景下(比如start-activity、start-service等)不同参数代表的意义一些参数的意义,情况太多了这里就不细说了。

回到正题,后面的package和activity就是上面获取包名第二种方法中提到的cmp,比如我们要启动谷歌地图: adb shell am start -W -n com.google.android.apps.maps/com.google.android.maps.MapsActivity

在这里我们再做一个延伸, 用命令做APP的冷启动和热启动操作,然后记录启动的时间
我们看到上图中有三个数字ThisTime、TotalTime和WaitTime,这三个数字就是本次启动APP所花费的时间。
热启动时退出退出APP的命令: adb shell input keyevent 3 ,这就相当于按了手机的home键,然后我们再执行启动APP的命令,这样就完成了热启动。

我们看到热启动花费的时间比冷启动少了很多,一套冷、热启动的流程我们就走完了。接下来就看我们怎么去优化了,让它们变的更少。所以我们在平时做启动优化的时候可以把自己的APP和一些优秀的APP做一下对比看看还差多少。

上面已经说过了一种退出APP的方法了,接下来这个命令是相当于杀掉当前的APP进程。
命令: adb shell am force-stop package
这时候再使用启动命令,就相当于冷启动了。

有的时候我们在手机上查看和操作apk不是特别方便,而且通过文件管理找apk也很难找。接下来就介绍怎么用adb命令把手机中的apk导到电脑上。

通过包名获取apk在手机中的存储路径,命令 adb shell pm path package

导出apk文件,到当前目录下
命令: adb pull 路径

这一步就要看一下apk中有哪些东西了,主要还是看一下AndroidManifest.xml文件当中的allowBackup设置。
我平常用的方法就是吧apk文件的后缀该成zip,然后就可以看到里面的东西了。下面的是谷歌地图的apk的构成。

下面来看一下AndroidManifest.xml文件,会看到都是乱码,但是关键的信息还是可以获取的,我们目前想要的就是下图红框中的allowBackup属性,像谷歌的APP肯定是把它设置成false的,所以我们没办法备份它的信息的。

那么我们怎么看一个应用的allowBackup属性设置成true还是false呢,我的观察和实践出来的方法是看allowBackup后面有没有小方框,有就代表设置了true。如果有哪位大神知道好的可靠的方法还请留言告知。

下面是其他apk中的AndroidManifest.xml文件,后面带了个小方框。

在了解到APP可以备份之后,我们就可以开始做坏事了,哈哈。
备份的命令: adb backup -nosystem -all -noapk -noshared -f data.ab package

[-system | -nosystem] 是否备份系统
[-apk | -noapk] 是否备份apk安装文件
[-shared | -noshared] 是否备份手机存储空间
-f *.ab 存档格式一定要是.ab
package:包名

在运行命令之后,手机或模拟器会出现一个页面要求你输入备份密码,这个密码你可以随便输入,但你要记住,在后面查看ab文件的时候会用到。

输入密码,点击【备份我的数据】之后就开始备份了,备份完成之后会有提示,这时就是生产一个ab文件了。

ab文件大家很少接触,这里使用abe工具(链接: https://pan..com/s/1NPbhtF1fyJcHOm1CXwi9Dg


提取码:uns4 )解析ab文件 ,也是通过命令,把abe.jar和刚才生成的ab文件放到同一个文件夹中,然后运行命令: java -jar abe.jar unpack xxx.ab xxx.rar
(如果不想使用命令可以看看这篇文章 https://www.feifeiboke.com/android/3639.html

这个命令就是吧ab文件解析成rar文件,这样就能解压了,我们就能看到里面的东西。解压出来大概就是下面这个样子。其中比较重要的是db文件夹和sp文件夹,里面的数据我就不放了,容易引起不必要的误会。你可以自己动手试试。

写这篇文章还是提醒大家在平时的开发中要注重APP数据的安全问题,毕竟数据还是相当重要的。
如果有哪里写的不对的地方,请指出,我会及时改正。

⑺ android利用adb命令,获取当前界面(当前Task的栈顶).

开发项目中经常会遇到很多手机厂商制造的麻烦.如涉及权限,程序授权(受信任应用),或service自启动管理等.由于android手机种类繁多,厂商自制系统各自为王.弄得我们有时不得不针对固定的厂商或机型做定制开发.
本文就提供一种靠adb命令获取手机当前activity的方法!
1.首先 要配置adb环境变量 这里就不多说了,自己网络就好了,非常简单!
2.配置好环境变量后,就可以运用adb 命令了.
以OPPO r9S获取自启动管理界面为例:

将手机调好到指定界面后:打开cmd 输入
1) adb devices //查看链接设备
adb shell mpsys activity top //获取栈顶activity

![Q%T]T N0RQ0X{@ GP~TVZFG.png]( http://upload-images.jianshu.io/upload_images/3995903-d4895ea759168dc6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
2) 1.cmd命令中输入:adb shell 进入shell命令模式
2.shell中输入:logcat | grep ActivityManager 真机运行应用,可以实时 查看当前正在运行的Activity;
或者也可以用第二种方法.
至于用那种,看界面吧,这里第二种就不贴图了.读者自己去尝试吧!

补充:已测试手机(为service开启自启动或设置受保护程序);

阅读全文

与adb命令启动activity相关的资料

热点内容
无线通信的几个密钥算法 浏览:644
王者荣耀app数据修复在哪里 浏览:429
基于单片机饮水机温度控制系统的设计 浏览:455
c中委托被编译后的结构 浏览:152
飞燕app怎么注销账号 浏览:895
cad命令缩小 浏览:154
linux发展史 浏览:629
服务器选用什么CPU比较好 浏览:334
明星怎么宣传安卓 浏览:953
8255芯片编程 浏览:65
java文件bat运行 浏览:747
java常见笔试 浏览:529
360程序员模式 浏览:363
AQS算法的查询树构造 浏览:329
小猪微信营销源码 浏览:12
阿里云服务器能连接打印机吗 浏览:175
命令行参考 浏览:281
怎么初步认识编程 浏览:208
为什么程序员都喜欢谷歌 浏览:891
压缩性骨拆能自愈吗 浏览:277