问题:
对于本地文件的分类搜索(就是把音乐、视频、图片、文档、压缩包、应用分类整理出来)用 for 循环遍历,太过耗时,如果能有一种更好的思路就好了。
尝试了解(先了解下文件检索是什么鬼):
-
针对网站进行的搜索 (与我们的本地搜索需求不符)
-
针对网站进行的搜索 (与我们的本地搜索需求不符)
-
Everything是一款文件、文件夹名称快速搜索软件。在搜索之前就会把所用的文件和文件夹都列出来,这一点与Windows自带的搜索系统不一样,所以称之Everything。在搜索框输入文字,它就会只显示过滤后的文件和目录。
【ps:或许有值得借鉴的地方】
先百度下
Everything研究之读取NTFS下的USN日志文件(1)
NTFS文件系统USN日志
就是说在NTFS这种文件系统下对每一个文件的操作都是有记录的,Everything通过解析这个记录帮助用户迅捷的得到所需内容
也就是说如果Android所依赖的Linux也存在类似的功能那就爽了,
尝试解决
沿着Everything的实现思路:
Linux文件系统
现摘录如下
文件系统
在Linux中普通文件和目录文件保存在称为块物理设备的磁盘或者磁带上。一套Linux系统支持若干物理盘,每个物理盘可定义一个或者多个文件系统。(类比于微机磁盘分区)。每个文件系统由逻辑块的序列组成,一个逻辑盘空间一般划分为几个用途各不相同的部分,即引导块、超级块、inode区以及数据区等。
引导块:在文件系统的开头,通常为一个扇区,其中存放引导程序,用于读入并启动操作系统;超级块:用于记录文件系统的管理信息。特定的文件系统定义了特定的超级块;inode区(索引节点):一个文件或目录占据一个索引节点。第一个索引节点是该文件系统的根节点。利用根节点,可以把一个文件系统挂在另一个文件系统的非叶节点上;数据区:用于存放文件数据或者管理数据。
这说明有戏啊O(∩_∩)O~~,A. 列表内容
尝试了解android系统所运行的 linux 版本 【Linux内核版本信息获取】尝试了解log没有成功,决定试一下反编译,看看他怎么实现的快速搜索。