草庐IT

Android 存储位置

coder 2023-12-12 原文

谁能详细解释一下 Android 中的各种存储位置,

  1. /sdcard/(连同/root/目录和其他系统级目录)
  2. /存储/模拟/0/
  3. /storage/emulated/legacy/
  4. /存储/sdcard0/

真的对这些感到困惑吗?是否有任何方法可以在需要时以编程方式访问它们?

最佳答案

我不能代表所有手机上的存储路径。但是我可以就我的手机向你解释清楚; Coolpad Note 3 - 在 Android 5.1 上运行。因为,存储位置或路径在其他手机上可能会有所不同,具体取决于您的供应商/制造商和不同版本的 Android 操作系统。

通常,/someDirectory/root/someDirectory>root>someDirectory 是相同的。挑选其中的哪一个来展示;取决于您的文件管理器。

在我的手机上:

/root/sdcard手机内存的存储路径(在我的例子中是 16 GB)。

/storage/emulated/0//storage/sdcard0/ 都是指向 /root/sdcard 的符号链接(symbolic link)。也就是说,这两条路径也是我手机内存的存储路径。

/storage/sdcard1/ 是我的micro SD 卡 的存储路径。

在任何手机上:

在 Android 4.2 之前,只有一个用户可以使用您的手机。 没有两个或更多用户创建单独的配置文件并登录到同一部手机的概念。

因此,没有像/storage/emulated/someDirectory这样的路径>

模拟 目录是在 Android 4.2 中引入多用户 API 之后出现的。

来源:source 1source 2

从那时起,

/storage/emulated/legacy/ 指向当前工作用户的外部存储(Android 术语)。这将是一个符号链接(symbolic link)。

/storage/emulated/anyNumber/ 指向特定用户的外部存储(Android 术语)。

在我的手机上:我有两个用户。

user1 (Ramesh) 的内部内存位置是:/storage/emulated/0/

user2 (Kishore) 的内部内存位置是:/storage/emulated/10/

因此,如果用户 1(Ramesh) 登录并使用手机,/storage/emulated/legacy/ 将指向 /storage/emulated/0/。在这种情况下,/storage/emulated/legacy/ 将是 /storage/emulated/0/

的符号链接(symbolic link)

如果 user2(Kishore) 登录并使用手机,/storage/emulated/legacy/ 将指向 /storage/emulated/10/。在这种情况下,/storage/emulated/legacy/ 将是 /storage/emulated/10/

的符号链接(symbolic link)

如果您想了解更多关于存储路径的信息,请查看此answer on android.stackexchange.com

我在上面特别提到了外部存储(Android 术语)。因为,根据 Google/官方 Android 文档,内部和外部存储术语与普通 Android 操作系统用户完全不同

关于Android 存储位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25085955/

有关Android 存储位置的更多相关文章

  1. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  2. ruby - Rack:如何将 URL 存储为变量? - 2

    我正在编写一个简单的静态Rack应用程序。查看下面的config.ru代码:useRack::Static,:urls=>["/elements","/img","/pages","/users","/css","/js"],:root=>"archive"map'/'dorunProc.new{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=6400'},File.open('archive/splash.html',File::RDONLY)]}endmap'/pages/search.

  3. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  4. ruby - 正则表达式在哪个位置失败? - 2

    我需要一个非常简单的字符串验证器来显示第一个符号与所需格式不对应的位置。我想使用正则表达式,但在这种情况下,我必须找到与表达式相对应的字符串停止的位置,但我找不到可以做到这一点的方法。(这一定是一种相当简单的方法……也许没有?)例如,如果我有正则表达式:/^Q+E+R+$/带字符串:"QQQQEEE2ER"期望的结果应该是7 最佳答案 一个想法:你可以做的是标记你的模式并用可选的嵌套捕获组编写它:^(Q+(E+(R+($)?)?)?)?然后你只需要计算你获得的捕获组的数量就可以知道正则表达式引擎在模式中停止的位置,你可以确定匹配结束

  5. ruby-on-rails - 为什么在 Rails 5.1.1 中删除了 session 存储初始化程序 - 2

    我去了这个website查看Rails5.0.0和Rails5.1.1之间的区别为什么5.1.1不再包含:config/initializers/session_store.rb?谢谢 最佳答案 这是删除它的提交:Setupdefaultsessionstoreinternally,nolongerthroughanapplicationinitializer总而言之,新应用没有该初始化器,session存储默认设置为cookie存储。即与在该初始值设定项的生成版本中指定的值相同。 关于

  6. ruby-on-rails - 尝试设置 Amazon 的 S3 存储桶 : 403 Forbidden error & setting permissions - 2

    我正在关注Hartl的railstutorial.org并已到达11.4.4:Imageuploadinproduction.我做了什么:注册亚马逊网络服务在AmazonIdentityandAccessManagement中,我创建了一个用户。用户创建成功。在AmazonS3中,我创建了一个新存储桶。设置新存储桶的权限:权限:本教程指示“授予上一步创建的用户读写权限”。但是,在存储桶的“权限”下,未提及新用户名。我只能在每个人、经过身份验证的用户、日志传送、我和亚马逊似乎根据我的名字+数字创建的用户名之间进行选择。我已经通过选择经过身份验证的用户并选中了上传/删除和查看权限的框(而不

  7. ruby - 下载位置 Selenium-webdriver Cucumber Chrome - 2

    我将Cucumber与Ruby结合使用。通过Selenium-Webdriver在Chrome中运行测试时,我想将下载位置更改为测试文件夹而不是用户下载文件夹。我当前的chrome驱动程序是这样设置的:Capybara.default_driver=:seleniumCapybara.register_driver:seleniumdo|app|Capybara::Selenium::Driver.new(app,:browser=>:chrome,desired_capabilities:{'chromeOptions'=>{'args'=>%w{window-size=1920,1

  8. ruby - 如何打印出 Mechanized 存储的 cookie? - 2

    我正在使用mechanize登录网站,然后检索页面。我遇到了一些问题,我怀疑这是由于cookie中的某些值造成的。当Mechanize登录网站时,我假设它存储了cookie。如何通过Mechanize打印出存储在cookie中的所有数据? 最佳答案 代理有一个cookie方法。agent=Mechanize.newpage=agent.get("http://www.google.com/")agent.cookiesagent.cookies.to_scookie返回一个Mechanize::Cookiesobject

  9. ruby - Heroku production.log 文件位置 - 2

    我想在heroku.com上查看我的应用程序日志的内容,所以我关注了thisexcellentadvice并拥有我所有的日志内容。但是我现在很想知道我的日志文件实际在哪里,因为“log/production.log”似乎是空的:C:\>herokuconsoleRubyconsoleforajpbrevx.heroku.com>>files=Dir.glob("*")=>["public","tmp","spec","Rakefile","doc","config.ru","app","config","lib","README","Gemfile.lock","vendor","sc

  10. ruby-on-rails - 闪存消息存储在哪里? - 2

    我以为它们存储在cookie中-但不,检查cookie没有任何结果。session也不存储它们。那么,我在哪里可以找到它们?我需要这个来直接设置它们(而不是通过flashhash)。 最佳答案 它们存储在inyoursessionstore.自rails2.0以来的默认设置是cookie存储,但请检查config/initializers/session_store.rb以检查您是否使用默认设置以外的东西。 关于ruby-on-rails-闪存消息存储在哪里?,我们在StackOverf

随机推荐