Android程序是以独立的用户身份运行的吗?
正在阅读《Andoird - 移动开发一本就够》,作者在介绍Android系统的时候,画了一张Android体系结构的图表:每个Android App运行的时候都会创建一个Dalvik虚拟机实例,每一个Dalvik虚拟机实例都是用一个独立的Linux用户账户运行的。
我无法理解的是,为什么要用不同的用户来运行不同的Dalvik虚拟机呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
不允许A应用去修改B应用,出于安全性考虑吧
呵呵,就是不同用户间的进程是分离的任务,各自拥有各自的权利和责任,而每个进程都运行在对应用户的虚拟地址空间里,这样,即使有一个用户里的进程发生异常了,其它用户进程也不会受到影响。
有道理~ 用单独的用户来运行程序可以利用Linux已有的安全机制。
如果是用同一个帐号,那么app1生成的数据,app2是可以直接改动的,这会导致数据出问题,例如冲突什么的,没法保证应用级别的安全性。
我又修改了一下问题,添加了一个图片,架构很清晰,就是不懂为啥要这样做。
是不同用户,进入数据目录ls一下每个程序的文件夹,属主是 app_xx 其中 xx 几乎是递增的。
主要是为了防止应用之间乱来吧,例如你的程序去直接读取或者篡改其他程序的数据