数据存储

Android数据存储构建在Linux基础上,利用Linux账号系统来限定应用的访问。

Android的文件系统

Android存储设备有只读存储器ROM和拓展存储器SD卡组成。只读存储器ROM是系统自带,用于存储整个Android系统的核心程序和数据、第三方应用,类似PC硬盘。拓展存储器常见是SD卡。在存储设备上运行Android文件系统,实质上是Linux文件系统。只读存储器ROM运行的是yaffs2文件系统,挂载在Android文件系统上;拓展存储器运行的是FAT32,对应着sdcard/目录。

目录结构

使用SDK工具adb浏览Android目录结构。命令:

Adb shell ls –l

Adb shell切换到shell模式。

System:系统目录。放在Android运行所需的核心库

Data:应用目录。存放运行在Android之上的应用及其数据

Sdcard:用于存放共享数据

MntAndroid挂载的外部存储信息

应用数据存储

第三方应用及其数据放于data目录。应用安装包放于data/app/目录,安装包文件名形如X.APK。应用的安装就是将应用原封不动放入data/app/目录,.APK文件本质是ZIP压缩文件,这种安装,最大程度节省宝贵的只读空间。

节省空间的代价是每次运行应用都要将存储在安装包中的资源文件、数据文件动态解压,从而起到时间变长。为了提升启动效率,Android将解析出来的代码文件(Dex格式)解析提取出来,缓存在dalvik-cache目录。

data 还保存运行中动态产生的数据,主要有:应用的配置文件、数据库文件、备份文件、每个应用都会在/data/data目录下创建一个同安装包同名的应用数据目录,用来存放运行数据。

Linux为每个应用创建一个账号,只有通过本账号才有权限去运行改应用的安装包文件,读写应用目录的数据。如此实现数据的隐私化。

Android文件操作

数据文件分2类:放在sdcard目录下的,可以被各个应该共享;放在该应用数据目录下的,仅供本应用使用。

在拓展存储器中的文件,通过Java.io 进行操作。获得拓展存储器的目录:File dre = Environment.getExternalStorageDirectory

Environment用于描述拓展存储器的目录信息。

基于拓展存储器的缓存目录获取:Context.getExternalCacheDir

Environment还可以用于判断拓展存储器的状态。

应用目录下的私有文件通过封装的类和函数进行,如Context.OpenFileOutput

更多相关文章

  1. Android MediaStore数据之增删查改剖析
  2. Windows Phone 7 不温不火学习之《ListBox 数据与Android ListVi
  3. Android解析服务器端发来的xml数据示例
  4. Android 应用程序中使用 Internet 数据(XML、JSON 和 protocol bu
  5. 初学者---Android Fragment之间数据传递的三种方式

随机推荐

  1. 在 Android 平台上开发 OpenCV
  2. android小功能实现之xml文件解析(Pull)
  3. android listView 显示数据 单击 长按
  4. Android file类使用详解-SDcard
  5. Android应用程序核心-应用程序的基本组件
  6. Ubuntu下android源码下载与编译
  7. Android培训班(40)
  8. Android中关于线程使用的几点注意事项
  9. Android实现View隐藏显示渐变动画
  10. Android toolbar与actionbar区别