[Android] OI File Manager源码阅读 (1)

src: OI File Manager源码阅读 1



关于OIFileManager

OIFileManger 是我在github上找的一个开源android 文件浏览器。功能算是比较强大吧。项目地址: OIFileManager


如何导入到 eclipse?

本来是没有这个部分的必要的,不过 openintent 将distribution 分了出去(在项目的readme 里面有说),所以导入的时候出了错。在此记录一下。README.md 里有说: Requires : requires distribution repository to build用的好像是Ant,可以以某种方式连接两个项目而不会产生冲突。

关于Ant — 引用自wiki百科,另外我在看一篇写LISP的文章— Lisp 的本质 中有简单的介绍ant的产生过程。不过如何用Ant,我还没有去了解。

Apache Ant, 是一个将软件编译,测试,部署等步骤联系在一起加以自动化的一个工具,大多用于java 环境中的软件开发。由Apache软件基金会所提供,默认情况下,它的buildfile(XML)文件名为build.xml,每一个buildfile含有一个和至少一个默认的,这些targets 包含许多task elements,每一个task elements有一个用来被参考的id, 此id必须是唯一的。

贴步骤吧:

git clone https://github.com/openintents/distribution.git
git clone https://github.com/openintents/filemanager.git

复制过来之后不要改变目录结构 , 直接选着择包含这两个文件夹的文件夹导入即可,导入之后修改项目根目录下的修改project.proporties中target=android-xx 为相应版本。
然后在eclipse 中导入distribution/DistributionLibrary 文件夹中的项目,注意不要选择”copy to workspace”,
再导入filemanager/fileManager中的项目,同样不要勾选”copy to workspace”,
导入之后兴许还有点小问题,看具体出错的地方再修改一下,就OK了。



运行效果 

省.




运行流程

终于到了正文部分了,好吧,还有一个包结构,看看有哪些包,包里有哪些文件吧,虽然目前来说还不是很清楚。

ok,package structure

包结构

首先想说的是,我准备先不看distribution项目里的东西。
OIfilemanager 里的包分有:(省略 org.openintents.)

  • filemanager
    这个包有一些Actiity(DistributionLibraryFragmentActivity.java , fileManagerActivity.java, IntentFilterActivity.java, PreferenceActivity.java, SaveAsActivity.java),
    还有两个Adapter(FileHolderListAdapter.java, MultiselectFileHolderListAdapter.java),
    另外还有一个缩略图加载的类(ThumbnailLoader.java),
    还有一个provider(FileMangerProvider.java)

  • filemanager.bookmarks
    书签暂不讨论,而且书签功能也是后来才加进去的

  • filemanager.compatibility
    兼容性也不讨论,虽然其中的代码很少,不过我主要关注核心功能的实现,先.

  • filemanager.dialogs
    各种操作的对话框,如创建目录-CreateDirectoryDialog, 详情-DetailsDialog, 压缩多个选择项-MultiCompressDialog, 覆盖文件-OverwriteDialog, 重命名-RenameDialog,压缩单个选择项-SingleCompressDialog, 删除单个选择项-SingleDeleteDialog

  • filemanager.files

    1. FileHolder — list中的单项
    2. DirectoryScanner — 目录扫描器
    3. DirectoryContents — 里面有三个List ,分别为目录,文件,和存储卡的FileHolder列表.文件操作的支持类,
  • filemanager.lists
    里面全部是listFragment(SimpleFileListFragment, FileListFragment, PickFileListFragment, MultiselectListFragment)

  • filemanager.search
    这个包里面的内容也先忽略.

  • filemanager.util
    比较杂的工具类,如文件操作工具-FileUtils, 压缩管理-CompressManger, 解压管理-ExtractManager等等.

  • filemanager.view
    视图相关,包括一些自定义的视图和相关类.

  • intents
    Intent 常量

  • util
    MenuIntentOptionsWithIcons, 不知做什么用的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值