您能否列出Android应用程序可以在其中存储数据的所有可能目录,并说明每个目录中存储的数据类型?
您能否列出Android应用程序可以在其中存储数据的所有可能目录,并说明每个目录中存储的数据类型?
Answers:
所有应用程序(无论是否具有root用户)都具有默认数据目录,即/data/data/<package_name>
。默认情况下,应用程序数据库,设置和所有其他数据都在此处。如果应用程序希望存储大量数据,或者出于其他原因希望“对内部存储好”,则SDCard(Android/data/<package_name>
)上有一个相应的目录。
除此之外,所有应用程序都可以将数据存储在SD卡上的任何位置,因为没有限制-许多应用程序都这样做。他们可以自由使用目录名称(并且再次使用目录名称),这通常使得难以确定卡上所有“垃圾”的目的是什么,以及可以删除其中的什么。
尽管正如Tom所指出的那样,根应用程序几乎可以将数据存储在设备上的任何位置,但它们通常遵循与其他应用程序相同的规则。
您可以在我的答案中找到有关Android目录层次结构的一般说明。对于您的特定问题,我可能会在/data/data/<package_name>
(以及相应的SD部分)上添加更多详细信息:
databases/
:在这里去应用程序的数据库lib/
:应用程序的库和助手files/
:其他相关文件shared_prefs/
:首选项和设置cache/
:好吧,缓存这个地方可能有几个目录,或者更少—这全都取决于应用程序。他们可以在自己的“主目录”中(这基本上就是Linux所说的),将文件放置在所需的位置。通常,这些文件和目录只能由应用程序本身访问(当然还有根目录),而不是存储在SDCard上的文件和目录,所有应用程序都可以访问这些文件和目录。
/data/data/<name>/files/
其中的描述文件创建developer.android.com/guide/topics/data/...会去吗?即打开那些FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
?
/storage/emulated/0/WhatsApp/
(子目录.Shared
,.trash
,Backups
,Databases
,Media
)在内的所有媒体。我不知道这是否是\data\data...
,我现在无法访问此目录。也许这在版本之间改变了。
/
)不在SD卡上。SD卡表示下方/sdcard
(内部卡,指向/storage/emulated/<user>
)或外部卡的相应路径。不,我无法解释某些应用可能使用的所有可能位置,抱歉;AFAIK /data/misc
由Android系统本身管理,因此“纯粹的应用程序”充其量应该只具有读取权限。从未遇到过data/user_de
(因为这是相对路径,我也不知道你的意思)。
您所提出的问题的答案太大。但是,我可以为您提供涵盖基础知识的基本答案。
有两种应用程序:
Root和non-root。
根应用程序基本上可以在任何需要的地方存储/修改文件。
非root用户的应用程序只能在此处存储/修改文件:/sdcard/
以及随后的每个文件夹。
通常,已安装的应用会将自己存储在/sdcard/Android/data
或/sdcard/Android/obb
。
某些应用程序将其保存的游戏/配置数据文件存储在上/sdcard/APPNAME/
,或仅存储在上。/sdcard/
为了能够使用根应用程序,您需要已扎根Android设备并获得其中一个超级用户应用程序的许可。