如何从adb shell启动和停止android服务?

我需要编写一个Shell脚本来启动和停止android服务。

10个解决方案

43 votes

我是Android的初学者,但是可以这样工作:

在AndroidManifest.xml中,确保您在.service.内部具有以下内容:

.service.扩展其中adb uninstall com.some.package.name是您的服务的Java类。 对于我来说,其中com.some.package是程序包名称,在AndroidManifest.xml和Java中都是如此。使用了javabeat.net文章作为帮助,查找

还要注意,在文本中应该在包名称和类名称之间应该有.service.,我想这是一些约定,但是对我来说,这引起了adb uninstall com.some.package.name,但我尚未解决。

然后,安装您的apk。 我从日食中所做过,但.service.也应该起作用。 卸载是adb uninstall com.some.package.name,btw。

您可以像这样从主机系统启动它,谢谢Tim和MrRoy:

adb shell am startservice com.some.package.name/.YourServiceSubClassName

有趣的是,我不需要.service.。

要停止,我用

adb shell am force-stop com.some.package.name

希望能帮助到你。

由于我是初学者,请随时进行编辑/注释以纠正任何误解(例如,组件名称(?)中可能涉及.service.)。

n611x007 answered 2020-06-26T20:10:57Z

17 votes

启动服务:

adb shell am startservice ...

启动服务。 选项有: -用户| 当前:指定以哪个用户身份运行; 如果不 指定,然后以当前用户身份运行。

停止服务:

adb shell am stopservice ...

停止服务。 选项有: -用户| 当前:指定以哪个用户身份运行; 如果不 指定,然后以当前用户身份运行。

bonnyz answered 2020-06-26T20:11:30Z

13 votes

如果您想在adb shell中运行脚本,那么我尝试使用应用程序执行相同的操作。 我认为您可以使用“ am start”命令

用法:am [子命令] [选项]

start an Activity: am start [-D] [-W]

-D: enable debugging

-W: wait for launch to complete

**start a Service: am startservice **

send a broadcast Intent: am broadcast

start an Instrumentation: am instrument [flags]

-r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT)

-e : set argument to

-p : write profiling data to

-w: wait for instrumentation to finish before returning

start profiling: am profile start

stop profiling: am profile stop

start monitoring: am monitor [--gdb ]

--gdb: start gdbserv on the given port at crash/ANR

specifications include these flags:

[-a ] [-d ] [-t ]

[-c [-c ] ...]

[-e|--es ...]

[--esn ...]

[--ez ...]

[-e|--ei ...]

[-n ] [-f ]

[--grant-read-uri-permission] [--grant-write-uri-permission]

[--debug-log-resolution]

[--activity-brought-to-front] [--activity-clear-top]

[--activity-clear-when-task-reset] [--activity-exclude-from-recents]

[--activity-launched-from-history] [--activity-multiple-task]

[--activity-no-animation] [--activity-no-history]

[--activity-no-user-action] [--activity-previous-is-top]

[--activity-reorder-to-front] [--activity-reset-task-if-needed]

[--activity-single-top]

[--receiver-registered-only] [--receiver-replace-pending]

[]

sandroid answered 2020-06-26T20:11:54Z

10 votes

我可以通过开始服务

am startservice com.xxx/.service.XXXService

但是我还不知道如何阻止它。

MrROY answered 2020-06-26T20:12:19Z

7 votes

您应将服务的android:exported属性设置为“ true”,以允许其他组件调用它。 在AndroidManifest.xml文件中,添加以下属性:

然后,您应该能够通过adb启动该服务:

adb shell am startservice com.package.name/.YourServiceName

有关android:exported属性的更多信息,请参见此页面。

AmitB answered 2020-06-26T20:12:47Z

6 votes

响应pzulw对sandroid的有关指定意图的反馈。

组件名称的格式在ComponentName.unflattenFromString的api文档中进行了描述

它在第一个“ /”处拆分字符串,将前面的部分作为程序包名称,将后面的部分作为类名称。 作为一种特殊的便利(例如,在命令行上解析组件名称时使用),如果在'/'之后紧跟一个'。'。 那么最终的类名称将是包名称与“ /”后面的字符串的串联。 因此,“ com.foo/.Blah”成为package =“ com.foo” class =“ com.foo.Blah”。

Just a Tim answered 2020-06-26T20:13:17Z

6 votes

使用时可能会出现错误“ *错误:应用程序在后台*”

adb shell am startservice

在奥利奥(26岁以上)。 这需要前台的服务。使用以下内容。

adb shell am start-foreground-service com.some.package.name/.YourServiceSubClassName

Kiran k g answered 2020-06-26T20:13:41Z

5 votes

您需要添加adb shell am force-stop com.your.package.name以从ADB命令行启动服务。 然后您的清单看起来像这样:

android:name=".YourServiceName"

android:exported="true"

android:launchMode="singleTop">

然后从亚行

要开始服务:

adb shell am force-stop com.your.package.name

停止服务(在棉花糖上):

adb shell am force-stop com.your.package.name

停止服务(在Jelly Bean上):

adb shell am force-stop com.your.package.name

Atul answered 2020-06-26T20:14:31Z

2 votes

adb shell am startservice

或实际上是从OS Shell

adb shell am startservice

DonGru answered 2020-06-26T20:15:00Z

1 votes

对于仍对如何定义服务名参数感到困惑的任何人,正斜杠会在完全限定的类名中紧随应用程序包名称之后。

因此,给出了一个应用程序包名称:app.package.name.example.package.path.MyServiceClass

并提供以下服务的完整途径:app.package.name.example.package.path.MyServiceClass

然后,该命令将如下所示:

adb shell am startservice app.package.name/.example.package.path.MyServiceClass

TheIT answered 2020-06-26T20:15:33Z

android adb 命令启动,如何从adb shell启动和停止android服务?相关推荐

  1. 已配置好环境,在CMD中输入adb命令,还是提示“‘adb‘ 不是内部或外部命令,也不是可运行程序或批处理文件”的解决方法

    前提:win10环境,已在系统变量中配置好ANDROID_HOME,且确认无误,cmd输入adb命令,还是提示"'adb' 不是内部或外部命令,也不是可运行程序或批处理文件" 百度 ...

  2. python执行adb命令_Python实现对adb命令封装

    我就废话不多说了,大家还是直接看代码吧! #!/usr/bin/evn python # -*- coding:utf-8 -*- # FileName adbtools.py # Author: H ...

  3. Android常用命令行——gradlew,adb,adb shell

    gradlew 下面全是针对 windows 操作系统的.如果是 Linux / Mac 请直接用 ./ 前缀. gradlew clean //类似 Clean Project gradlew -v ...

  4. adb命令重置_android-通过ADB清除数据/恢复出厂设置

    经过大量的研究,我最终下载了Android恢复部分的源代码. 事实证明,您实际上可以向恢复发送命令. * The arguments which may be supplied in the reco ...

  5. python调用adb shell命令_Python之使用adb shell命令启动应用的方法详解

    Python之使用adb shell命令启动应用的方法详解 一直有一个心愿希望可以用Python做安卓自动化功能测试,在一步步摸索中,之前是用monkeyrunner,但是发现对于控件ID的使用非常具 ...

  6. adb模拟三指划动,ADB命令系列之 adb shell input(Android模拟输入)简单总结

    最近开发一个新的接口,在调试的时候要手动输入蛮多参数,关键是参数又都太长,就专门看了下 adb 有木有模拟输入,果然adb shell里是有的.这样以后开发调试.自动化测试等就更加方便了.专门简单总结 ...

  7. 使用adb命令控制Android

    adb shell input text hello //把hello这个内容传到有焦点的EditText之类的控件上 adb shell input keyevent 3 //相当于按下home键, ...

  8. Android adb命令,linux中各种命令

    常用的ADB命令 1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器 ...

  9. android studio adb 命令行,Android Studio如何配置adb以及经常使用命令

    用Android Studio一年多了,都没有使用其调试adb,今天就分享adb配置的方法,分享给你们.android 直接打开电脑-属性-高级配置-环境变量.web 这里我用图示范给你们:sql 这 ...

  10. android 代码发adb,Android预安装软件adb命令编译源码

    Android预安装软件&adb命令&编译源码 发布时间:2020-06-02 17:28:41 来源:51CTO 阅读:895 作者:年少的风 1.预安装软件: 将eclipse下的 ...

最新文章

  1. 为什么2100万个BTC发行总量少了0.0231?
  2. PostgreSQL在函数内返回returning
  3. Android IOS WebRTC 音视频开发总结(十)-- webrtc入门002
  4. springBoot搭建activiti工作流
  5. 浙江大华2011.10.10校园招聘会笔试题
  6. ASP.NET 打包多CSS或JS文件以加快页面加载速度的Handler
  7. 计算机一级ie浏览器和电子邮件,2016年职称计算机考试Internet基础知识:利用IE收发电子邮件...
  8. 3n+1b 备忘录方法
  9. Python退出命令-为什么要使用这么多?何时使用?
  10. 小议使用“完整”的CSS的缺点
  11. 四种插入数据的MySQL语句比较
  12. python vba 区别_VBA和Python该学哪个?
  13. java多线程编程书籍-线程、多线程、Java平台实现
  14. 「离散数学」【试卷一试题与答案】[推荐学习]
  15. 资深行业专家王煜全的演讲:“移动互联网中的产品创新机会”
  16. JAVA广度优先搜索---寻找从A点到B点最短路径
  17. 三、C++的常用STL
  18. 2-1. 厘米换算英尺英寸(15)
  19. 带你了解现有UWB技术及原理
  20. C++ random库

热门文章

  1. 计算机技术发展5大阶段,现阶段计算机技术应用及发展
  2. php 威盾加密解密,解析php加密解密混淆的手段,如 phpjm,phpdp神盾,php威盾
  3. excel表格损坏如何修复?
  4. 电容器单位及电容器单位换算
  5. 计算机指法标准,计算机键盘指法的正确练习步骤
  6. matlab2008 软件下载及安装教程
  7. MarkDown 符号大全
  8. 视频教程-2021软考网络工程师--基础知识视频教程-软考
  9. 围观了张一鸣近10年的微博,我整理了这231条干货
  10. Java网络编程基础