'adb shell启动/停止'做什么?

时间:2012-11-05 04:12:53

标签: android adb

问题

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

描述

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

Android Architecture

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

3 个答案:

答案 0 :(得分:11)

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

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

另请注意,SystemServer由Zygote启动,因此init.rc表示如果Zygote已停止,则必须停止SystemServer。即使SurfaceFlinger已经死亡,因为它是从SystemServer开始的,但本身就是。

答案 1 :(得分:1)

在您的设备上运行

grep ^service /init*rc

答案 2 :(得分:1)

我一直想知道"停止"也适用于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;'