IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android adb 启动APP -> 正文阅读

[移动开发]Android adb 启动APP

启动命令

一 常规命令 + 包名/activity

adb shell am start -n package/launch activity

说明:package 是app的包名(android studio一般是gradle中的applicationId的值)
launch activity 是启动activity的完整路径(如果和package重叠的话,可简写)

例如:
applicationId:com.eagle.game
启动activity完整的路径是com.eagle.game.ui.StartActivity

具体的命令为:

adb shell am start -n com.eagle.game/com.eagle.game.ui.StartActivity

adb shell am start -n com.eagle.game/.ui.StartActivity

注意:包名和activity之间是有斜线,简写时注意斜线后的点。

输出:

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.eagle.game/.ui.StartActivity }

代表启动成功

二 常规命令 + 包名

adb shell am start -n package

这种命令需app的启动activity的intent-filter中配置属性:
<category android:name=“android.intent.category.DEFAULT”/>

即:

<activity
           android:name=".ui.StartActivity"
           android:banner="@drawable/gs_ic_launcher"
           android:icon="@drawable/gs_ic_launcher"
           android:label="@string/app_name"
           android:theme="@style/AppWelcome"
           android:logo="@drawable/gs_ic_launcher"
           android:screenOrientation="landscape">
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />
               <category android:name="android.intent.category.DEFAULT"/>
           </intent-filter>
       </activity>

但为了app的安全以及合规,一般是app是不会配置的。

命令关闭App

  1. cmd命令行中执行 adb shell am force-stop app包名

例如:adb shell am force-stop com.eagle.game

  1. cmd命令行中执行 adb shell pm clear app包名

例如:adb shell pm clear com.eagle.game

获取包名和activity的路径

回到第一种命令,关键是包名和actvity的路径,怎么获取呢

代码获取

从开发者处获取,gradle中的applicationId就是包名,从AndroidManifest.xml里面获取包名和启动的activty路径。

1 命令获取( 需要app运行在前台,停留在启动界面)

打开App,在cmd窗口中输入以下命令。

adb shell dumpsys window windows | findstr “Current”

如下图所示,/之前的就是package,之后的就是当前的activity, 有些应用启动时包含了欢迎页之类的,打开App的时候就自动切换了activity,那用这种方法就获取不了需要的activity。

C:\Users\Administrator>adb shell dumpsys window windows | findstr “Current”
mCurrentFocus=Window{64177ed u0 com.eagle.game/com.eagle.game.ui.StartActivity}

2命令获取(先执行命令,再点击app启动)

先输入:adb shell 回车

再输入:logcat | grep -i ActivityManager

启动app。

注意留意输出内容,可能刷得比较快。

在log中“ ActivityManager: START”之后的部分就含有am 命令需要的package和launch activity。如:

2129 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 hwFlg=0x10 cmp=com.eagle.game/.ui.StartActivity bnds=[288,396][540,690]} from uid 10063

中的com.eagle.game/.ui.StartActivity

命令获取都需要先启动app,这种情况下,实际上也用不着通过命令去启动。一般那种定制系统,如电视盒子,定制的平板手机,大屏一体机,没有列出某些app,无法通过桌面启动,在测试其他厂商的app的情况下可能需要通过命令去启动。
这种情况下可以先用手机启动后获取到包名和activity,再在定制系统中去用adb启动。

说明:本文是的实例是在windows 7 上进行的。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:31:59  更:2021-08-11 12:34:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 5:14:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码