|
|
|
|
移动端

用户数据分区

《Learning Android(中文版)》第7章首选项、文件系统、选项菜单及Intent,本章我们讲解首选项功能的实现、文件系统的组织方式,以及如何通过intent与选项菜单在不同活动之间进行切换。本节为大家介绍用户数据分区。

作者:李亚舟/任中龙/杜钢译来源:电子工业出版社|2012-07-27 11:28

有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及应用调研


用户数据分区

对开发者和用户来讲,最重要的分区是用户数据分区。所有的用户数据、所有下载的应用程序都储存在这里。最重要的是,所有应用程序的数据也都储存在这里,包括预装的程序和用户自己下载安装的程序。

所以,用户安装的应用程序都储存在/data/app/目录,而我们开发者最关心的数据文件都储存在/data/data目录。在这个目录之下,每个应用程序对应一个单独的子目录,按照Java package的名字作为标识。从这里可以再次看出Java package在Android安全机制中的重要作用。

An d r o i d 框架提供了许多相关的辅助方法, 允许应用程序访问用户数据文件系统,比如getFilesDir()(http://developer.android.com/reference/android/content/ContextWrapper.#getFilesDir())。

这个分区的镜像文件是user-data.img,位于对应设备的AVD目录之下。同前面一样,也是在~/.android/avd/文件夹之下,每个虚拟设备都会有一个对应的子目录。

当你新建一个应用程序的时候,你需要为Java代码指定一个特定的package,按约定,它的名字一般都是逆序的域名加上应用名,比如Yamba应用就对应了com.marakana.yamba这个package。所以,应用一旦被安装,Android会为其单独创建一个目录/data/data/com.marakana.yamba/。这个目录就是Yamba应用的私有、安全的文件存储位置。

/data/data/com.marakana.yamba2/下面也有子目录,但是结构很清晰,不同的数据分列在不同的目录之下,比如首选项数据就都位于/data/data/com.marakana.yamba2/shared_prefs/。

实际上,如果你打开Eclipse的DDMS视图,选择文件浏览器访问这一目录,就能在里面看到一个com.marakana.yamba2_preferences.xml文件。你可以把它复制出来查看,也可以在adb shell中直接查看。

adb shell是adb的另一个常用的重要子命令,它允许你访问设备(真机或者虚拟机)的shell命令行。比如,你可以打开命令行并输入:

  1. [user:~]> adb shell  
  2. # cd /data/data/com.marakana.yamba2/shared_prefs  
  3. # cat com.marakana.yamba2_preferences.xml  
  4. <?xml version='1.0' encoding='utf-8' standalone='yes' ?> 
  5. <map> 
  6. <string name="password">password</string> 
  7. <string name="apiRoot">http://yamba.marakana.com/api</string> 
  8. <string name="username">student</string> 
  9. </map> 

这个XML文件里表示的就是这个程序中的选项数据。可见,用户名、密码与API地址都存储在这里。

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java程序设计教程

本书对第1版的某些章节作了合理的调整,增加了部分实用的程序,并在每一章的最后加了适量的练习题,以巩固前面所学的知识,更加有利于等级考试...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊