Android 碎片化适配 安卓碎片化清理_android应用开发实战

安卓碎片化的问题,由来已久,这次来看一下文件储存碎片化的问题。到底要怎么去正确选择和管理文件存储呢?

为什么要管理文件?

Android手机一直以来被人诟病越用越卡,越用存储空间越少,经常有要靠各种清理app清理垃圾,到最后不得对手机进行双清,原因除了硬件老化和Android的底层实现问题之外,开发者对文件管理的忽视制造出大量无法清理的“垃圾”也是造成手机卡慢的原因之一。



Android 碎片化适配 安卓碎片化清理_android应用案例开发大全_02

Android的开放性给了开发者巨大的自由度,但自由不是让我们滥用权限和随意开发的借口,每一个开发者都应该注重细节,连曾经一片混乱的第三方推送都开始统一整合规范化了,如果你还在随意开发,不如现在开始,注重细节,提高用户的Android手机体验?

Android闪存

总所周知,Android手机存储分为两个部分:内部存储外部存储,内部存储一般是手机自带的存储空间,外部存储指外插SD卡提供的存储空间;随着手机发展,这两个存储的定义又有了一些些变化,新的手机不再有外插SD卡的概念,采取了内置闪存(eMMC、UFS等)的方式,所以内部存储和外部存储在新的Android手机上已经在同一个硬件上了。但为了兼容旧设备和让用户得到更好的体验,我们仍然需要管理好手机上内外存储的使用。

关于文件存储位置的api

做过文件相关管理的同学应该都曾经被android众多的文件api搞得一片混乱过,现在来理一理.我把应用操作的文件存储位置分为三个部分

  1. 应用内部存储私有文件目录
  2. 应用外部存储私有文件目录
  3. 公有目录

我们有两种api去获取这三个部分的存储位置,它们分别归属于Context和Environment。

Context

Context是应用的上下文,它用来获取与应用相关的文件目录,可以获取应用私有和应用公有目录,常用的api有(后面是所对应的路径):

1. Context#getCacheDir /data/user/0/cn.appname.xxx/cache
2. Context#getDir("spanner