Android手机里媒体扫描往往是个耗电大户,它在后台不停的监控SD卡上所有文件夹中内容的变化,只有文件夹下有一个名为“.nomedia”的文件的文件夹才会被跳过扫描。.nomedia是一个0kb大小的空文件,所以它并不占用空间。为SD卡上所有的文件夹及子文件夹里都创建一个.nomedia文件即可达到加快开机媒体扫描速度同时大幅降低手机功耗的目的。
不过Android手机的SD卡目录结构是很繁杂很混乱的,如果一个个去创建.nomedia估计会让人吐血,写个脚本去创建?好主意,不过还有更简单的方法……
Android是基于Linux开发的,所以我们可以直接使用Linux里强大的find命令来实现这一目的。
注:在大多数Android手机里find命令是不存在的,需要安装了busybox后才会有。
如果我们想给SD卡里的所有子目录添加.nomedia文件,很简单,一行命令:
find /sdcard/ -name '*' -type d -exec touch {}/.nomedia \;
或者要求他只给4层以内的子目录添加.nomedia文件
find /sdcard/ -name '*' -type d -maxdepth 4 -exec touch {}/.nomedia \;
但更多的时候我们需要保留几个允许媒体扫描的目录用于放置音乐、视频和照片等等,那我们就需要排除一些特定的目录,没问题,照样一行命令解决,虽然这一行长了点……
find /sdcard/ \( -ipath "/sdcard/Music" -o -ipath "/sdcard/Camera" -o -ipath "/sdcard/Photo" -o -ipath "/sdcard/Video" -o -ipath "/sdcard/Pictures" -o -ipath "/sdcard/Movies" -o -ipath "/sdcard/DCIM" \) -prune -o -type d -maxdepth 4 -print -exec touch {}/.nomedia \;
如上例中我排除了/sdcard/Music、/sdcard/Camera、/sdcard/Photo、/sdcard/Video、/sdcard/Pictures、/sdcard/Movies和/sdcard/DCIM这几个目录及他们的子目录,如果你有自己想排除的目录也可按上例添加。
有批量添加.nomedia的自然也有批量删除.nomedia的,还是一行命令:
find /sdcard/ -name '.nomedia' -type f -exec rm {} \;
find真是一个很强大的命令,省去了遍历所有文件夹的痛苦。而且给大部分目录和子目录添加.nomedia文件后手机的待机时间也有明显的提升 采纳
取消
评论