打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
红狼博客 ? Android内部存储空间不足问题

我的HTC G16(chacha 810e)的/data对应的分区拥有150MB的空间。因为/system对应的分区有较大空间剩余,通常它为只读。为减少这些剩余空间造成的浪费,我 安装程序时都是在将其重新挂载为可写(sudo adb remount)之后直接push进去,这样就给/data分区节省了空间。但是,在没有多少程序缓存的情况下,手机仍经常提示内部存储空间不足,也不敢安装以MB计的apk程序。

为解决这一问题,调查了/data目录:

sh-3.2# du /data -h -d 1
0    /data/htcfs
56.0K    /data/misc
4.0K    /data/app-private
4.0K    /data/app
5.5K    /data/property
4.0K    /data/cache
69.0K    /data/anr
4.0K    /data/dontpanic
12.0K    /data/local
1.8M    /data/system
88.5M    /data/dalvik-cache
36.1M    /data/data
12.5K    /data/backup
8.0K    /data/secure
4.0K    /data/lost+found
126.7M    /data

可 见,dalvik-cache占用了大部分空间,该目录为/system/app和/data/app的应用程序的缓存,减少Dalvik VM加载应用程序的时间。Android手机刷机后第一次开机,会花费很长时间才能进入界面,应该是遍历各应用程序生成这些缓存(没发现有权威文档也没有 查验代码故称之为“应该是”)。当程序安装又卸载后,程序在此目录中的缓存并未清除。久而久之,可用内部空间越来越小。可手工删除,应该也可Wipe Cache(在fast boot中),当然也可恢复出厂设置(记住要备份)。

但像我自己的例子,/data所挂载的分区已经做到最节省, 没有浪费,如何解决内部存储空间不足呢?其中一个方法/思路是:SDcard上创建两个ext3分区,比如大小1GB,另一个大小512MB,然后在 init.rc里挂载到/data/dalvik-cache和/data/data下,就应该可以解决这个问题。缺点是,该手机正常运行依赖于该SD 卡,摘掉卡后可能会出现些问题。因为根文件系统为只读,init.rc不可修改,所以又回归到最原始问题上。有src code的话进行编译后,直接使用工厂烧写工具烧写,方便简单。

另外一种方法/思路是为apk程序瘦身。在apk程序包下面的res/目录下,往 往存放了适配各种屏的图片文件,它们往往都很大,动辄好几个MB。我们可以将它们去除后再重新生成签名,然后再放入自己的手机中,相当于针对自己手机的定制。其实,在当前手机硬件如此之高,GPU大行其道的今天,完全可以多消耗一丁点硬件处理性能,去换取更多空间。只有在硬件处理性能比较弱时,才有必要提供各种大小的图片资源。

 

后记:在不能修改原始设备分区的情况下,我们可以维护设备,及时清除掉垃圾数据。如安装apk后,在卸载后,会在 /data/dalvik-cache/留下残留,占用与apk同样大小的/data分区空间,在获取root权限后,可以手动删除它们;在应用程序管理里,清除各程序的缓存数据。当然,清除它们最彻底的还是恢复出厂设置,但在这之前最好将手机上的数据如电话本同步到云端,恢复完再同步回来。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
手机越用越慢?内存越来越少?教小白轻松解决问题!
增大可用内存100M ,让你安装更多程序:Dalvik
Android下将程序安装到SD卡的各种方法详解(原创)
【涨姿势】解惑手机APP的那些“糟心事”
APP2SD,A2SD,DATA2SD,APP2EXT之间的区别
浅谈安卓系统垃圾的清理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服