转自:http://blog.csdn.net/yihui823/article/details/6722456
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
相关推荐
《PLC应用实例与程序解说》是一份深入探讨PLC(可编程逻辑控制器)在工业自动化控制中的实际应用和编程解析的资料集。PLC作为电气控制系统的核心,它以其灵活性、可靠性以及强大的逻辑处理能力,广泛应用于各类工业...
Android Beacon Library是一款专为Android应用程序设计的开源库,它允许开发者轻松地与BLE信标进行交互,从而实现丰富的应用场景,如室内定位、推送通知、智能环境监控等。 首先,我们来了解什么是BLE信标。BLE信标...
《android 2.3应用开发实战》以 android操作系统架构为经,以开发android应用程序为纬,介绍 android应用程序开发实战技术,将会使开发人员学习到android操作系统的架构和原理,并最快掌握 android的开发技能。...
本教程将重点讲解入门所需的关键步骤和注意事项,帮助初学者顺利开始Android应用开发之旅。 1. **安装JDK**: 开发Android应用需要Java Development Kit(JDK)作为基础。JDK是Java编程语言的软件开发包,提供了...
这些概念是理解Android应用程序架构的基础,并且在实际开发过程中频繁使用。 ### Android 应用程序架构 Android应用程序架构可以分为以下几个层次: 1. **Applications(应用层)**:位于最顶层的应用层包括了...
【外卖CPS小程序+教程+解说】是一种在线营销策略,主要应用于电商和餐饮行业,尤其在外卖服务领域。CPS,全称为Cost Per Sale,即按照销售量付费的广告模式。在这种模式下,推广者(通常是个体或公司)通过特定的...
案例解说MATLAB典型控制应用[田敏][程序源代码] 第1章 MATLAB概述 第3章 MATLAB与数据采集 第4章 基于研华数据采集卡程序设计示例 第5章 基于NI数据采集卡程序设计示例 第7章 MATLAB串口通信程序设计示例
本文将深入探讨如何在Android应用程序中集成并有效利用XMPP。 ### 1. XMPP协议基础 XMPP的核心概念包括JID( Jabber ID)、资源、流(Stream)和 stanza。JID是用户的身份标识,类似于电子邮件地址。资源表示用户...
在Android应用开发过程中,权限管理是非常重要的一个环节。为了保障用户的数据安全与隐私保护,Android系统对应用程序能够访问的功能和数据进行了严格的限制。本文将针对部分核心权限进行详细介绍,帮助开发者更好地...
由于PLC编程是一门实践性很强的技术,所以在使用手册时,工程师们通常会结合实际的控制需求和场景,参考手册中提供的示例程序和功能模块的详细解说,编写适合项目需求的控制程序。这些程序最终会被下载到PLC中执行,...
- **Android SDK 2.2**: 提供Android应用程序的基本工具集。 - **Android NDK r4b (Crystax)**: 版本加入了对C++异常、RTTI以及标准C++库的支持,这对于开发更为复杂的原生应用非常有帮助。 - **Eclipse 3.5.2**: ...
这个“数据结构详细解说ppt”很显然是一个详细讲解数据结构的演示文稿,对于学习和理解数据结构有着重要的参考价值。下面将根据这个主题深入探讨数据结构的相关知识点。 1. **数组**:数据结构的基础,是有序的数据...
背景数据块存储程序运行时的变量,而实例数据块保存每个FB实例的特定信息。 2. **信号处理**:根据流量计类型,可能需要对输入信号进行预处理,例如脉冲计数或模拟量转换。脉冲计数器可以简单地增加每次脉冲的计...
EVIEW软件指导一-录入数据操作实例解说完整版资料 EVIEW软件指导一-录入数据操作实例解说完整版资料是EVIEW软件的指南,旨在指导用户如何录入数据操作实例。该指南涵盖了从创建工作文件到录入数据的整个过程。 一...
西门子PLC博途:深入解析三种自动流程程序编写方法——Scl Case语法与梯形图模式的实践应用与视频解说,西门子PLC博途自动流程程序写法解析:scl case语录与梯形图模式下的三种编写策略,西门子PLC博途3种自动流程程序...
总的来说,分析和学习这个Android2048游戏源码,可以深入理解Android应用程序的架构、用户界面设计、数据管理、游戏逻辑实现以及Android特定的编程技巧。对于初学者,这是一个很好的实践项目,有助于巩固理论知识,...
程序存储器用于存放用户编写的逻辑控制程序,数据存储器则用于保存运行过程中的变量状态。 3. **输入/输出处理**:Q-PLC的CPU可以连接多种类型的I/O模块,以适应不同类型的传感器和执行器。它实时读取输入信号,...
在Android平台上,开发一款...通过学习和理解这个源码,开发者不仅可以掌握Android音乐播放器的开发,还能深入了解Android的网络编程、数据存储、多线程、UI设计等多个核心领域。这对于提升Android开发技能非常有帮助。