Android adb 启动APP

目录

  • 启动命令
    • 一 常规命令 + 包名/activity
    • 二 常规命令 + 包名
    • 命令关闭App
  • 获取包名和activity的路径
    • 代码获取
    • 1 命令获取( 需要app运行在前台,停留在启动界面)
    • 2命令获取(先执行命令,再点击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”/>

即:

<activityandroid: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 上进行的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python语言使用什么语句实现上下文管理协议_Python 上下文管理器

上下文管理器在使用Python编程中&#xff0c;可以会经常碰到这种情况&#xff1a;有一个特殊的语句块&#xff0c;在执行这个语句块之前需要先执行一些准备动作&#xff1b;当语句块执行完成后&#xff0c;需要继续执行一些收尾动作。例如&#xff1a;当需要操作文件或数据库的…

Android日志[基础篇]Android Log日志输出

Android日志[基础篇]二 Android Studio修改LogCat日志的颜色 android.util.Log输出日志的常用方法如下&#xff1a; Log.v(String tag, String msg)Log.d(String tag, String msg)Log.i(String tag, String msg)Log.w(String tag, String msg)Log.e(String tag, String msg) …

python函数应用_python 函数应用

#函数的参数就是个变量#定义函数的时候&#xff0c;使用关键字参数&#xff0c;可以指定默认值def hello(namereboot,age1):return hello %s,your age is %s %(name,age)print hello(reboot,3)print hello(3,reboot)#print hello(age3,namereboot)print hello(reboot)def f(n):…

Android日志[基础篇]二 Android Studio修改LogCat日志的颜色

上一篇提到Android日志的5个级别的日志输出&#xff0c;在logcat里面设置自己喜欢或习惯的颜色&#xff0c;本文不只讲Android Sudio修改logcat的日志颜色。 代码和效果 代码 private void logColor(){Log.v(TAG,"logColor verbose");Log.d(TAG,"logColor de…

readfile函数使用方法_1分钟学会LOOKUP函数,有网友说使用这个方法,初学者秒变大神...

Hi&#xff0c;大家好&#xff0c;本专栏将会从零开始和大家用图文的方式&#xff0c;30天让你从不会到熟练使用函数&#xff0c;0基础开始学习Excel函数&#xff0c;让你喜欢上它&#xff01;有兴趣的小伙伴可以持续关注我&#xff0c;或者在专栏进行查看学习&#xff0c;愿与…

Android JNI Attempt to remove non-JNI local reference, dumping thread

Attempt to remove non-JNI local reference, dumping thread 解决办法&#xff1a; 去除Jni代码 env->DeleteLocalRef(javaObject);注意&#xff1a;是java层传递给jni层的对象不需用了DeleteLocalRef来进行对象删除&#xff0c;jni层创建的对象仍然需要保留代码。 这个…

背景图层和普通图层的区别_图层样式(一)—高级混合选项

一、图层顺序为了便于说明&#xff0c;首先建立例子&#xff0c;新建图层&#xff0c;用画笔随便画个圈&#xff0c;新建蒙版随便画一笔&#xff0c;然后把所有图层样式加给它。可以看到样式从上到下的顺序&#xff0c;这也是它们混合的图层顺序。图层顺序我的效果&#xff0c;…

Android9.0 http网络请求失败问题的处理

目录处理方法(任意一种)&#xff1a;APP改用https请求targetSdkVersion 降到27以下配置network-security-config&#xff08;推荐&#xff09;原因出错案例处理方法(任意一种)&#xff1a; APP改用https请求 这种方式是最佳方法&#xff0c;需要前后端协调&#xff0c;后端得…

代码里无图片地址_项目实战:爬高清图片

↑ 关注 星标 &#xff0c;后台回复【大礼包】送你2TPython自学资料好消息&#xff1a;Python学习交流群&#xff0c;已经建立&#xff0c;猛戳加入之前我发过一些爬虫的文章&#xff0c;不过一直没发过爬取图片的&#xff0c;今天就给大家分享一篇吧&#xff01;/1 前言/上篇…

Android TextView通过SpannableString设置字体、大小、颜色、样式、超级链接

代码应该都能看明白 public class MainActivity extends ActionBarActivity {private TextView tv, tv2;private SpannableString sStr, sStr2;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.act…

winform项目_winform项目——仿QQ即时通讯程序01:原理及项目分析

即时通讯程序&#xff0c;腾讯QQ可以说是一家独大&#xff0c;虽然市场上仍然有类似QQ的即时通讯程序&#xff0c;但是基本上面向的对象都是特定人群。那么&#xff0c;现在做一个即时通讯的软件还有意义吗&#xff1f;在我看来&#xff0c;意义非常大。作为一个学习编程的人&a…

Android面试基础一

Android面试基础二-原理及常见问题 目录1、四大组件1&#xff09;Activity2&#xff09;Service3&#xff09;ContentProvider4&#xff09;Broadcast Receiver2、四大组件的生命周期和简单用法1&#xff09;Activity2&#xff09;Service3&#xff09;BroadcastReceiver4&…

python怎么用大数据分析师_如何七周成为数据分析师18:Python的新手教程

本文是《怎样七周成为数据剖析师》的第十八篇教程&#xff0c;假定想要了解写作初衷&#xff0c;能够先行阅读七周指南。温馨提示&#xff1a;假定您曾经熟习Python&#xff0c;大可不用再看这篇文章&#xff0c;或只选择部分。Python是近年来最火爆的言语&#xff0c;曾经作为…

Android面试基础二-原理及常见问题

Android 面试基础一 目录Android源码相关分析1、Android属性动画实现原理2、补间动画实现原理3、Android各个版本API的区别4、Requestlayout&#xff0c;onlayout&#xff0c;onDraw&#xff0c;DrawChild区别与联系5、invalidate和postInvalidate的区别及使用6、Activity-Wind…

python数据展示库_收藏!盘点很实用的数据科学Python库

数据科学是一门研究数据并从中挖掘信息的学科。它不要求自创或学习新的算法&#xff0c;只需要知道怎么样研究数据并解决问题。这一过程的关键点之一就在于使用合适的库。本文概述了数据科学中常用的、并且有一定重要性的库。在进入正题之前&#xff0c;本文先介绍了解决数据科…

Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈)

Android日志[进阶篇]一-使用 Logcat 写入和查看日志 Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈) Android日志[进阶篇]三-Logcat命令行工具 Android日志[进阶篇]四-获取错误报告 Android日志[进阶篇]五-阅读错误报告 目录调试中的堆栈轨迹从外部来源打开堆栈轨迹监控剪…

python股票数据分析实验报告_Python实验报告

一、实验原理(要求、任务等)(一)、Python的开发环境Python诞生于20世纪90年代初&#xff0c;是一种解释型、面向对象、动态数据类型的高级程序设计语言&#xff0c;是最受欢迎的程序设计语言之一。编写、编译和运行Python程序有以下3种方法。1.使用交互式解释器2.使用Windows命…

Android日志[进阶篇]一-使用 Logcat 写入和查看日志

Android日志[进阶篇]一-使用 Logcat 写入和查看日志 Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈) Android日志[进阶篇]三-Logcat命令行工具 Android日志[进阶篇]四-获取错误报告 Android日志[进阶篇]五-阅读错误报告 目录查看应用日志写入日志消息Logcat 消息格式设置…

哈希表数据结构_算法与数据结构-哈希表

前面我们已经讲到了数组和链表&#xff0c;数组能通过下标 O(1) 访问&#xff0c;但是删除一个中间元素却要移动其他元素&#xff0c;时间 O(n)。 循环双端链表倒是可以在知道一个节点的情况下迅速删除它&#xff0c;但是吧查找又成了 O(n)。难道就没有一种方法可以快速定位和删…

Android日志[进阶篇]三-Logcat 命令行工具

Android日志[进阶篇]一-使用 Logcat 写入和查看日志 Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈) Android日志[进阶篇]三-Logcat命令行工具 Android日志[进阶篇]四-获取错误报告 Android日志[进阶篇]五-阅读错误报告 目录日志记录系统概览命令行语法logcat命令行选项过…