gpt4 book ai didi

android - 多用户功能如何在 Android 路径方面发挥作用?

转载 作者:搜寻专家 更新时间:2023-11-01 08:51:15 27 4
gpt4 key购买 nike

背景

从 4.2 版开始,Android 支持多用户(链接 herehere)。

每个用户都有自己的应用程序,他们的私有(private)数据只对用户可见。

问题

在路径和访问文件方面,每个用户的数据封装是如何工作的?

我的意思是,每个用户的路径是什么:

  1. 私有(private)内部存储空间。
  2. 模拟外部存储(内置外部存储)
  3. “真正的”外部存储(SD 卡)

?

我猜用户可以看到存储在属于其他用户的 sd 卡上的数据,但是模拟的外部存储呢?他们还可以写入其他用户的文件还是只读取它们?

每个用户是否自动获得自己的特殊路径?还是应该由开发人员处理?

如果开发者需要处理,应该用什么作为用户的ID?

文档说:

No matter which of these APIs you use to save data for a given user, the data will not be accessible while running as a different user.

但这都是假设您将 API 用于您自己的路径。应用程序能否以某种方式通过转到其他路径来绕过此问题?

对于同一设备上的每次安装,应用程序可以查询什么?他们可以获得其他用户的应用程序大小吗?他们甚至可以获得其他用户的应用程序列表吗?

同一应用的多次安装是否也需要多个大小?

最佳答案

what will be the paths per each user

如果你在意,那你就做错了。使用 Android SDK API 确定基目录,并从那里开始工作。所以,例如:

  • getFilesDir() 将为当前用户返回正确的内部存储位置
  • getExternalFilesDir()Environment 上的方法将为当前用户返回正确的外部存储位置

I guess users can see the data stored on the sd cards that belong to other users

outside the bounds of the Android SDK ,一般来说。

but what about the emulated external storage?

每个用户都有自己的空间。

And can they also write other users' files or just read them?

都不是,除非设备中存在错误。

Does each user get its own special path automatically?

是的,如果您使用 Android SDK API 来确定基本目录。

Could apps somehow bypass this by going to other paths?

不,因为他们既没有读取也没有写入权限,除非出现错误。

What can an app query about each installation of itself on the same device?

据我所知,没什么。从应用程序的角度来看,在一台设备上安装多个应用程序与安装在多个设备上没有区别。

Can they get the size of apps of other users?

抱歉,我不知道您所说的“应用大小”是什么意思。

Can they even get the list of apps of other users?

这是一个很好的问题。我还没有尝试过 PackageManager 来查看它在由次要用户运行的应用程序使用时公开的内容。理论上,它应该只报告当前用户可用的内容,特别是考虑到 Android 的受限配置文件。

Does multiple installation of the same app also take multiple size?

据我所知,APK 及其解压后的部分(例如 DEX 文件)是共享的。

关于android - 多用户功能如何在 Android 路径方面发挥作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23202936/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com