And*_*per 4 android pid process
我创建了一个包含一个Activity和包名称的Android应用程序 "com.explore"
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
我运行ps命令.
USER PID PPID VSIZE RSS WCHAN PC NAME
app_137 2974 91 478604 48524 ffffffff 00000000 S com.explore
Run Code Online (Sandbox Code Playgroud)
我按回按钮.我退出应用程序并进入主屏幕现在再次运行ps命令.
USER PID PPID VSIZE RSS WCHAN PC NAME
app_137 2974 91 472428 42572 ffffffff 00000000 S com.explore
Run Code Online (Sandbox Code Playgroud)
过程2974仍在运行.有人可以解释一下我的行为吗?那是内存使用,状态或进程持续多长时间?按下后我应该从我的代码中删除进程吗?如何优雅地杀死进程?
运行应用程序时,如果它尚未运行,则会获得新的进程ID.这个ID会一直存在,直到它不再存在于内存中.(这可以通过使用"应用程序设置"中的"强制停止"选项来实现和测试.)
但是,当用户点击后退或主页按钮时,应用程序不会退出,在大多数情况下,只会暂停或停止.
您可以阅读本文档,其中详细介绍了流程生命周期.第1点和第2点基本上表示除非绝对必要(强制关闭或没有记忆),否则不会终止前景处理(或者表面处理之后的处理).第3点很重要; 它表示任何不再需要的过程 - 即用户已"关闭"它 - 可能会也可能不会被杀死,具体取决于设备的内存.最后,第4点,任何没有做任何事情,但只是......现有......将尽快被杀死.
您可能还想查看Activity生命周期.这将准确地向您显示应用程序的每个步骤何时发生(即,何时暂停,何时停止以及何时销毁).它没有真正涵盖的唯一内容是内存过度分配(或方向更改,重新触发整个生命周期).
总而言之,请记住Android很聪明.它比大多数开发人员更好地管理其流程,并尝试尽可能多地保留流程以便于重用.除非你绝对确定你希望你的进程没有内存,否则你永远不应该杀掉它.而且我们有杀灭和管理流程的方式是永远不会漂亮.
| 归档时间: |
|
| 查看次数: |
1457 次 |
| 最近记录: |