‘adb shell启动/停止’做什么?

adb shell startadb shell stop实际上做了什么?

描述

我认为他们调用/system/bin/start/system/bin/stop 。 但是这两个可执行文件并没有给出任何关于它们做什么的线索。 在真实设备上测试时,我发现合子过程已启动并停止。 所以这两个命令似乎控制着Android运行时(对应于下图中的黄色和蓝色部分)。

Android架构

但是使用这两个命令启动/停止了哪些确切的进程/服务

  • 我如何使用adb更改时区
  • 如何从一个adb shell启动和停止android服务?
  • adb重启挂起Gennymotion
  • Android adb设备未经授权
  • React Native adb反向ENOENT
  • 通过USB安装应用程序:设备暂时受到限制
  • 亚行在Mac OS X Mavericks上找不到Nexus 7
  • 通过adb获取蓝牙MAC地址
  • 在您的设备上运行此function

     grep ^service /init*rc 

    基本上,所有Android服务都重新启动; 在SystemServer.java中创建和注册的那些。 这在“受精卵的背景”中被称为。 是的,Zygote已经停止了。

    在Android中注册的所有服务都将在ServiceManager删除。 要重新启动它们,请执行adb shell start

    另请注意, SystemServer由Zygote启动,因此init.rc告诉如果Zygote停止,则必须停止SystemServer 。 甚至SurfaceFlinger也会死掉,因为它是从SystemServer开始的,但本身就是这样。

    我一直想知道Android上的“停止”是什么。 从某个“停止”的人那里了解到停止由SurfaceFlinger渲染的AP。

    尝试使用如下命令。 执行命令,等待几秒钟,然后在Android上执行“停止”。 该命令保持打印数量增加和创建.txt文件。 所以也许它只会在Linux部分保持活动状态时停止Android部分。 仅供参考。

     busybox sh -c 'i=0;while [ $i -ne 100 ]; do echo $i >> count.txt; sleep 1; i=$(($i + 1)); echo $i; touch "$i.txt"; done;'