位置: 编程技术 - 正文

Android应用程序私有目录下文件操作总结(android应用程序包下载安装)

编辑:rootadmin

推荐整理分享Android应用程序私有目录下文件操作总结(android应用程序包下载安装),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Android应用程序开发,android应用程序的后缀名,android应用程序包下载安装,android应用程序的主要语言是,android应用程序的主要语言是,Android应用程序包怎么打开,android应用程序的四大组件是什么,android应用程序的四大组件是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

每一个Android程序都有一个特有的,只能由本程序自己访问的私有目录,这个目录一般位于/data/data/<Package Name>/目录下。所有应用程序私有目录中保存的文件在用户卸载该应用的时候,都会被自动删除掉。

在Android应用程序开发中,经常使用的一些系统提供的API,会在这个私有目录中创建一些子目录,并将相应的数据存放于其中。而这些对于应用程序开发者来说,完全是透明的,本文将对所有会访问应用程序私有目录的API及其行为做一个简单的总结。

程序私有目录下,一般会有下面几个子目录,它们的用处和涉及到的API(多半继承自Context类)如下:

一、files目录

这个目录是用来存放应用程序自己在安装过后创建的文件的地方。有下面几个API都会涉及对这个目录的操作:

该方法返回指向/data/data/<Package Name>/files/目录的一个File对象。

该方法将在/data/data/<Package Name>/files/目录下打开一个指定名字的文件,这个文件只能用来读取,不能用来写入。函数将返回一个FileInputStream类的实例。

该方法将在/data/data/<Package Name>/files/目录下打开一个指定名字的文件,这个文件可以用来写入。如果这个文件不存在,会新创建一个。函数将返回一个FileOutputStream类的实例。

这个函数的参数除了文件名之外,还有一个所谓的模式(mode)。它主要用来指定创建文件的读写权限以及当文件已经存在时,如何写入文件。主要有下面几个&#;:

1) MODE_PRIVATE(0x),表示创建的文件只能被本程序或者共享同一用户ID的其它应用程序访问到,别的程序既没有权限读也没有权限写,这个是默认模式;

2) MODE_WORLD_READABLE(0x),表示创建的文件可以被任何程序读,但是不能修改;

3) MODE_WORLD_WRITABLE(0x),表示任何程序都可以修改创建文件的内容,出于对安全方面的考虑,从Android 4.2.2(API Level )开始,这种模式已经被舍弃了;

4) MODE_APPEND(0x),表示如果要写入的文件已经存在了,则将写入的内容追加到文件末尾,而不是覆盖原来的内容。

如果想联合使用以上的多个模式,可以用“&#;”将它们联接起来。

如果想查看/data/data/<Package Name>/files/目录下到底有哪些文件,可以用下面的函数:

该函数将返回包含/data/data/<Package Name>/files/目录下所有现存文件文件名的字符串数组。

如果想删除一个在/data/data/<Package Name>/files/目录下的文件,可以用下面的函数:

如果指定名字的文件被删除成功将返回true,反之返回false。

二、cache目录

这个目录是默认用来给应用程序做数据缓存的,在程序中可以通过下面的API获得这个目录的路径:

该方法返回指向/data/data/<Package Name>/cache/目录的一个File对象。

当内部存储空间变得紧张的时候,存于该目录下的所有文件都有可能被Android系统自动删除掉。

三、databases目录

该目录主要用来存放应用程序自己创建或使用的SQL Lite数据库文件。有下面几个API都会涉及对这个目录的操作:

该函数将在/data/data/<Package Name>/databases/目录下,查找指定名字的数据库文件,如果没有的话,会创建一个新的。创建数据库的时候,也需要指定模式,有如下几种:

1)MODE_PRIVATE(0x),作用和前面介绍的相同;

Android应用程序私有目录下文件操作总结(android应用程序包下载安装)

2)MODE_WORLD_READABLE(0x),作用和前面介绍的相同;

3)MODE_WORLD_WRITABLE(0x),作用和前面介绍的相同;

4)MODE_ENABLE_WRITE_AHEAD_LOGGING(0x),这个模式是从Android3.0(API Level )开始加入进来的。将打开数据库的预写日志功能,提高数据的可靠性。

同时,从Android 4.0(API Level )开始,还提供了一个android.database.sqlite.SQLiteOpenHelper抽象类来帮助操作SQL Lite数据库。一般用法是自己实现一个类,并继承自SQLiteOpenHelper类,重载onCreate(数据库第一次被创建)、onUpgrade(数据库升级)和onOpen(数据库被打开)方法,加入自己的逻辑。接着构造出一个你自己实现类的实例,并调用下面的函数,打开或创建出数据库:

前面的函数获得的数据库只能用来读,而后面的函数获得的数据库既可以读也可以写。

其实,这个帮助类最终也是通过调用了前面的Context. openOrCreateDatabase函数来打开或创建数据库,并且是使用默认的MODE_PRIVATE模式。因此,通过SQLiteOpenHelper类,最终也是在/data/data/<Package Name>/databases/目录下创建了数据库文件,并且别的程序不能访问到。

该方法将返回一个指向指定数据库文件的File对象。

如果想查看/data/data/<Package Name>/ databases/目录下到底有哪些数据库,可以用下面的函数:

该函数将返回包含/data/data/<Package Name>/databases/目录下所有数据库名的字符串数组。

如果想删除一个在/data/data/<Package Name>/databases/目录下的数据库,可以用下面的函数:

如果指定名字的数据库文件被删除成功将返回true,反之返回false。

四、shared_prefs目录

该目录主要用来存放应用程序自己创建或使用的一些常用配置文件(Shared Preference)。

程序中主要是用下面的函数来获取一个配置文件:

函数的第一个参数是配置文件的名字,函数调用成功之后会在/data/data/<Package Name>/shared_prefs/目录下创建一个名字为<name>.xml的文件。

函数的第二个参数是创建的模式,有下面几个&#;:

1)MODE_PRIVATE(0x),作用和前面介绍的相同;

2)MODE_WORLD_READABLE(0x),作用和前面介绍的相同;

3)MODE_WORLD_WRITABLE(0x),作用和前面介绍的相同;

4)MODE_MULTI_PROCESS(0x),如果你的应用程序有多个进程,并且都需要操作同一个配置文件的话,出于数据同步方面的考虑,在每次修改之前都需要检查一下这个配置文件是否已经被别的进程修改了。

五、lib目录

这个子目录存放着的是应用程序需要使用的Native原生程序,即JNI调用需要加载的.so文件。

这些文件一般是位于apk安装包里的lib目录下。在程序安装的时候,系统会将所有apk文件中lib目录下的所有原生程序拷贝到这个子目录下。

该目录是程序不能操作的,不能在程序运行时,向该目录拷贝.so文件,然后再通过调用System.loadLibrary函数将其加载进来。

六、自定义目录

当然,程序也可以在自己的私有目录中创建任意名字的子目录:

该方法返回指向/data/data/<Package Name>/下指定名称的文件夹的一个File对象。如果该文件夹不存在则用指定名称创建一个新的文件夹。

该目录下还有一些其它的目录,如app_sslcache、app_webview等,这些都是有Android系统中的某些特殊模块自动创建的,一般可以通过其名字猜到是由哪个模块创建的。

Android CTS测试Fail项修改总结(四) Android5.1上的测试1、android.security.cts.SELinuxDomainTest#testInitDomainfail打印的logjunit.framework.AssertionFailedError:Expected1processinSELinuxdomainu:r:init:s0Found[pid:1proctitle:/init

Android 软件开发之如何使用Eclipse Debug调试程序详解 1.在程序中添加一个断点如果所示:在Eclipse中添加了一个程序断点在Eclipse中一共有三种添加断点的方法第一种:在红框区域右键出现菜单后点击第一项T

android:exported 属性详解 昨天在用扫描应用漏洞时,扫描结果,出来一个android:exported属性,其实之前根本不知道这个属性,更不知道这个属性用来干嘛的,详情见下图:因此

标签: android应用程序包下载安装

本文链接地址:https://www.jiuchutong.com/biancheng/387461.html 转载请保留说明!

上一篇:Android开发:使用Intent打开电话、短信、邮箱、本地文件等系统应用程序整理大全(Android开发使用的官方IDE是)

下一篇:Android CTS测试Fail项修改总结(四)(安卓cts认证)

  • 房屋出租何时缴税
  • 增值税纳税申报表模板
  • 发票货物名称前带星号规定
  • 经营者个人所得税申报
  • 建筑业差额纳税怎么算
  • 员工可以签订两份劳动合同吗
  • 印刷宣传册是违法吗
  • 转让无形资产增值税
  • 共同控制合营企业的合营者
  • 应收账款少收的款分录
  • 购电子承兑汇票差额计入什么科目?
  • 发生应收账款如何入账可避税
  • 企业住房维修基金怎么交
  • 所得税汇算有研发费用可以不享受加计扣除吗
  • 重疾险可以扣税吗
  • 增值税税率如何计算
  • 所有利息收入都免税吗
  • 商业承兑汇票是谁签发的
  • 更改onedrive文件夹位置
  • w10系统怎么打印文件
  • 企业增资需要缴纳什么税
  • 个体工商户给员工交社保属于职工社保吗
  • win7安装sqlserver2008
  • 汇率调整怎么做分录
  • 苹果11屏幕尺寸长宽
  • php数组函数实现机选双色球
  • php获取文件扩展内容
  • 工商年报缴费基数是什么意思
  • 房产增值税计算公式2022最新
  • launcher是啥
  • 处置子公司的方式
  • vue3使用教程
  • css网页布局代码
  • php弹出提示框
  • 通过微信支付码能查到微信本人吗
  • selenium python 教程
  • 未分配利润转增股本要交税吗怎么交
  • 试运行收入账务处理
  • 公司的账面现金怎么算
  • 公司收到股权转让款需要交什么税种
  • 企业单方面调整员工的工作岗位
  • sql server打开方式
  • 使用SqlServer CTE递归查询处理树、图和层次结构
  • 存货的成本包括哪几项
  • 增量留底退税怎么比增值税高
  • 收回已冲销的应收账款会计分录
  • 财政监制章专用收据可以税前扣除吗
  • 小规模纳税人与一般纳税人的区别表现在小规模纳税人
  • 公司性质不一样的重名可以吗
  • mysql忘了密码
  • 劳务费计入工资薪金总额吗
  • 利息收入为负数的原因
  • 库存商品转成本意味着什么
  • 咨询服务业优惠政策
  • 应收账款平均余额怎么理解
  • 上月账单还未结算完毕
  • 预付工程款该怎么记账
  • 税控维护费跨年怎么算
  • 医疗保险个人缴纳比例
  • 内地汇丰银行账户管理费
  • 筹资费用和财务费用一样吗
  • 如何审计主营业务收入的真实性问题
  • wrsvn.exe是什么
  • vrvrf.exe是什么进程
  • win7双系统怎么设置开机选择系统
  • windowsxpwifi
  • ubuntu20.04怎么用
  • linux删除后恢复
  • w8系统文件夹怎么设置密码
  • linux tcp keepalive
  • 使用jquery实现的项目
  • 怎么设置网页就用指定浏览器
  • unity怎么创建字体
  • mac如何打开两个微信
  • shell 生成随机数每次运行都不一样
  • unity安装进度条不动
  • css伸缩弹动特效
  • 亚马逊墨西哥站扣款20
  • 电子税务局做什么的
  • 航信开的电子发票怎么导出来
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设