【转】Android应用程序的数据存放目录解说
Android的每个应用程序,都有自己的可控的目录。
在Setting/Application info里面,可以看到每个应用程序,都有Clear data和Clear cache选项。

具体这些目录在哪里呢?
用adb连接上设备。如果是连接真实设备,需要有设备的root权限。
cd data/data
在这个目录下,可以看到每个应用程序都有自己的目录,目录名就是应用程序在AndroidManifest.xml文件中定义的包。
在每个目录下,一般有这么几个子目录:
databases : 存放数据库
cache : 存放缓存数据
files : 存放应用程序自己控制的文件
lib : 存放使用的包
每个应用程序的代码,对自己的目录是有绝对的控制权限的。
这几个目录可以在Activity中这么取得:
Context cont = this.getApplicationContext();
Log.d("TemppjActivity", "cont.getCacheDir() = " + cont.getCacheDir());
Log.d("TemppjActivity", "cont.getDatabasePath("temp") = " + cont.getDatabasePath("temp"));
Log.d("TemppjActivity", "cont.getFilesDir() = " + cont.getFilesDir());
其中数据库路径是需要传入数据库名称的,返回值如下:
08-26 08:04:01.049: DEBUG/TemppjActivity(330): cont.getCacheDir() = /data/data/com.study/cache
08-26 08:04:01.049: DEBUG/TemppjActivity(330): cont.getDatabasePath("temp") =/data/data/com.study/databases/temp
08-26 08:04:01.099: DEBUG/TemppjActivity(330): cont.getFilesDir() = /data/data/com.study/files
另外,可以取得自身的apk的路径。
Log.d("TemppjActivity", "cont.getPackageCodePath() = " + cont.getPackageCodePath());
Log.d("TemppjActivity", "cont.getPackageResourcePath() = " + cont.getPackageResourcePath());
结果:
08-26 08:04:01.099: DEBUG/TemppjActivity(330): cont.getPackageCodePath() = /data/app/com.study-1.apk
08-26 08:04:01.099: DEBUG/TemppjActivity(330): cont.getPackageResourcePath() = /data/app/com.study-1.apk
转自:http://blog.csdn.net/yihui823/article/details/6722456
【转】Android应用程序的数据存放目录解说的更多相关文章
- android的程序运行数据存放在哪里?
Android应用开发中,给我们提供了5种数据的存储方式1 使用SharedPreferences存储数据2 文件存储数据3 SQLite数据库存储数据4 使用ContentProvider存储数据5 ...
- mysql数据库,查看数据存放目录datadir
需求描述: 在使用数据库,或者刚接手一个数据库时,可以查看该数据库的数据文件存放在什么位置. 操作过程: 1.通过查看datadir系统变量来查看数据目录 [mysql@redhat6 mysql-b ...
- Android 5.1.1 源码目录结构
点击打开链接 最近公司培训新同事,我负责整理一点关于android的基础知识,遥想当年,刚接触android,也是一头雾水, 啥都不懂,就是靠看文档和视频,对android有一个初步了解,然后就通过查 ...
- (转)Android 5.1.1 源码目录结构
转自:http://blog.csdn.net/tfslovexizi/article/details/51888458最近公司培训新同事,我负责整理一点关于android的基础知识,遥想当年,刚接触 ...
- Ubuntu18修改/迁移mysql5.7数据存放路径
1.停止mysql服务 sudo service mysql stop 2.修改mysql配置文件,一般是 /etc/mysql/my.cnf,或者/etc/mysql/mysql.conf.d/my ...
- CentOS6 更改Mysql数据库的数据存放位置
mysql使用yum安装时,默认的数据是存储在/var/lib/mysql下.一般情况下,为了数据的安全性,建议将mysql数据库的数据文件存储在系统的第二块磁盘上的目录下可以按照以下步骤进行操作: ...
- Navicat数据存放位置和备份数据库路径设置
navicat的数据库存放位置在什么地方?带着这样的疑问,我们去解决问题,navicat是默认安装,mysql也是默认安装,数据库存在默认用户所在的目录下面. 安装MySQL时,请选择“Custom” ...
- Android应用程序发送广播(sendBroadcast)的过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6744448 前面我们分析了Android应用程 ...
- InnoDB引擎数据存放位置
InnoDB引擎的mysql数据存放位置 采用InnoDB引擎的数据库创建表后,会在mysql数据存放目录下生成一个和数据库名相同的目录.该目录下包涵一个db.opt文件和该库下所有表同名的frm文件 ...
随机推荐
- Java网络编程(URL&URLConnection)
package cn.itcast.net.p2.ie_server; import java.io.IOException; import java.io.InputStream; import j ...
- A Tour of Go Mutating Maps
Insert or update an element in map m: m[key] = elem Retrieve an element: elem = m[key] Delete an ele ...
- UIImagePickerController Class 概述
不能定制界面,不可派生子类. 使用步骤: 检查制定源是否可用. isSourceTypeAvailable:方法. 检查可用媒体(视频还是只能是图片) availableMediaTypesFo ...
- 转载 SharePoint开发部署WSP解决方案包
转载原出处: http://642197992.blog.51cto.com/319331/1582731 注:本文所讲内容以SharePoint2013版本为例,开发工具以VS2013为基础.历史版 ...
- 在CentOS 6.2上安装 MemcacheQ 最新版
1. 安装 yum install gcc cc make libevent libevent-devel 2. 安装Berkeley DB 下载:http://www.oracl ...
- 【STL学习】智能指针之weak_ptr
简介 weak_ptr是shared_ptr的观察者,它不会干扰shared_ptr所共享对象的所有权,当一个weak_ptr所观察的shared_ptr要释放它的资源时,它会把相关的weak_ptr ...
- PowerDesigner 企业架构模型 ( EAM )
PowerDesigner 企业架构模型 ( EAM ) 说明 file工作数据库框架application网络 目录(?)[+] 一. 企业架构模型 说明 EnterpriseArchite ...
- 编写一个Animal类,具有属性:种类;具有功能:吃、睡。定义其子类Fish 和Dog,定义主类E,在其main方法中分别创建其对象并测试对象的特性。
package animal; public class Animal { //成员属性 private String kind; public String getKind() { return k ...
- in和exists的区别与SQL执行效率
in和exists的区别与SQL执行效率最近很多论坛又开始讨论in和exists的区别与SQL执行效率的问题,本文特整理一些in和exists的区别与SQL执行效率分析 SQL中in可以分为三类: 1 ...
- mysql 字符集设置查看
1.列出MYSQL支持的所有字符集: SHOW CHARACTER SET; 2.当前MYSQL服务器字符集设置 SHOW VARIABLES LIKE 'character_set_%'; 3.当前 ...