多用户功能在Android上的路径是如何工作的? 背景
从版本4.2开始,Android支持多用户(链接和) 每个用户都有自己的应用程序,他们的私人数据只对用户可见 问题 在路径和访问文件方面,每个用户的数据封装是如何工作的 我的意思是,每个用户的路径是什么:多用户功能在Android上的路径是如何工作的? 背景,android,android-sdcard,android-external-storage,multi-user,Android,Android Sdcard,Android External Storage,Multi User,从版本4.2开始,Android支持多用户(链接和) 每个用户都有自己的应用程序,他们的私人数据只对用户可见 问题 在路径和访问文件方面,每个用户的数据封装是如何工作的 我的意思是,每个用户的路径是什么: 专用的内部存储 模拟外部存储器(内置外部存储器) “真实”外部存储器(sd卡) ? 我猜用户可以看到存储在sd卡上的属于其他用户的数据,但是模拟外部存储呢?他们也可以写其他用户的文件,还是直接读取 每个用户是否自动获得自己的特殊路径?或者开发人员应该处理这个问题 如果开发人员需要处理它,那么应
将为当前用户返回正确的内部存储位置getFilesDir()
和getExternalFilesDir()
上的方法将为当前用户返回外部存储的正确位置Environment
PackageManager
来查看它在被二级用户运行的应用程序使用时会暴露出什么。理论上,它应该只报告当前用户可用的内容,特别是考虑到Android的受限配置文件
同一应用程序的多个安装是否也需要多个大小
据我所知,APK及其解包部分(如DEX文件)是共享的。我知道我应该使用这些API,但我也想知道路径是什么。您知道每个用户的路径是否不同(在我提到的任何情况下)?还是操作系统在用户之间切换时,通过某种方式将它们设置为相同的路径来处理这个问题?此外,SD卡是受支持的(即使在v4.4上也是如此),应用程序可以写入其指定的路径,但同样,在这种情况下,多用户会发生什么情况?“应用程序大小”只是一个例子-它可以是APK大小、应用程序占用的内部/外部存储空间等@androiddeveloper:“我也想知道路径是什么”——它们没有文档记录,可能因Android操作系统版本和设备制造商而异。“您知道每个用户的路径(在我提到的任何情况下)是否不同吗?”--对于内部存储,知道。外部存储也位于不同的路径上,尽管它们将一些其他位置映射到它(例如,
/sdcard
)以供出错的开发人员使用。“在这种情况下,多用户会发生什么”——对不起,我没有尝试过Android 4.4getExternalFilesDirs()
和多用户支持的交叉点。您回答的最后一个问题是关于SD卡,而不仅仅是外部存储(模拟存储)。我想知道它是如何工作的,因为所有的应用程序都可以从sd卡读取数据。我还想知道应用程序是否可以从(模拟的)外部存储器读取数据并查看其他用户的数据。@androiddeveloper:“我还想知道应用程序是否可以从(模拟的)外部存储器读取数据并查看其他用户的数据”--不,除非有bug。所以唯一缺少的问题是关于SD卡的(其余的如您所说受到保护),我认为大家都能读懂。你怎么认为?另外,您认为可以使用root访问这些文件吗?如果是,怎么做?