【转】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

时间: 2024-11-01 14:57:06

【转】Android应用程序的数据存放目录解说的相关文章

Centos6.5 更改mysql数据存放目录

随着业务量越来越大,更换数据存放磁盘在所难免. 一.确定目前数据存放目录 1.连接数据库:mysql –uroot –p 2.查看mysql存储路径 : show variables like '%dir%'; 二.更改mysql配置文件 1.停止mysql服务: service mysqld stop 2.创建好存放数据的目录,并将原来目录中的数据转存到已创建的目录中 mkdir /data/mysql cp -R /alidata/server/mysql/data/* /data/mysq

Android 跨程序共享数据,探究内容提供器

内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性.目前,使用内容提供器是 Android 实现跨程序共享数据的标准方式. 不同于文件存储和 SharePreferences 存储中的两种全局可读写操作模式,内容提供器可以选择只对哪一部分数据进行共享,从而保证我们程序中的隐私数据不会有泄露的风险. 访问其他程序中的数据: 对于每一个应用程序来说,如果想要访问内容提

MariaDB 更改默认数据存放目录

找个好久的资料,都打算源码安装了,最后终于更改成功了. 环境:CentOS6.6 64位虚拟机,MariaDB 10.0.20 数据库安装方式:rpm包本地安装 注意:在rpm包安装时自动将MariaDB涉及到的文件的所有者更改成了mysql. 文档目的:更改数据库的默认存放数据的目录到/data/mysql_data/mysql 首先确定MariaDB数据库能正常运行. service mysql start  service mysql status 确定正常后关闭服务 service my

mysql数据库,查看数据存放目录datadir

需求描述: 在使用数据库,或者刚接手一个数据库时,可以查看该数据库的数据文件存放在什么位置. 操作过程: 1.通过查看datadir系统变量来查看数据目录 [[email protected] mysql-bin]$ mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 5.5.57

Android 5.1.1 源码目录结构

最近公司培训新同事,我负责整理一点关于android的基础知识,遥想当年,刚接触android,也是一头雾水, 啥都不懂,就是靠看文档和视频,对android有一个初步了解,然后就通过查看源码,才有更深入的了解. android有成千上万,说太少了,是成百万上亿的代码,当然要全部都了解是不可能的,所以要有一套自己的 方法来理解和查看代码.学习android,对代码框架结构的了解是必不可少的,其实现在6.0的代码都已经出来了, 但是上网查了下,没人写过5.1的代码结构,我在这里来补充下: 先看下截

Android——4.2.2 源码目录结构分析

最近公司要整android内部培训,分配给我写个培训文档,这里记录如下: 撰写不易,转载请注明出处:http://blog.csdn.net/jscese/article/details/40897277#t17 导读: 关于的Android目录分析,网上有很多资料,在此不做全面介绍. 本文只简单介绍Android中我常涉及的到的一些目录与文件,文中都属个人观点,仅供参考-以google官方Android4.2.2源码为例. 各个厂商平台可能会有出入. 以android源码目录为"/"

Navicat数据存放位置和备份数据库路径设置

navicat的数据库存放位置在什么地方?带着这样的疑问,我们去解决问题,navicat是默认安装,mysql也是默认安装,数据库存在默认用户所在的目录下面. 安装MySQL时,请选择“Custom”安装方式.在选择安装目录时,可以同时选择数据安放的位置,很多人此时只是设置了MySQL的安装位置. 对 于已经安装完毕的用户而言,请打开MySQL安装目录中的“my.ini”文件,使用查找功能,输入“datadir”进行定位,你会看到默认的数据存放 位置通常是:“系统盘:\Documents and

Android应用程序发送广播(sendBroadcast)的过程分析

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6744448 前面我们分析了Android应用程序注册广播接收器的过程,这个过程只完成了万里长征的第一步,接下来它还要等待 ActivityManagerService将广播分发过来.ActivityManagerService是如何得到广播并把它分发出去的呢?这就是 本文要介绍的广播发送过程了. 广播的发送过程比广播接收器的注册过程要复杂得多了

linux 更改mysql 数据存储目录

https://www.cnblogs.com/hellangels333/p/8376177.html  参考位博主的文章,稍做改动 1.检查mysql数据库存放目录 mysql -u root -prootadmin #进入数据库 show variables like '%dir%'; #查看sql存储路径 (查看datadir 那一行所指的路径) quit; 2.停止mysql服务 service mysqld stop 3.创建新的数据库存放目录 mkdir /xydata/mysql