2011年对着书本Android应用开发揭秘,写了2个月的HelloWorld。
现在想复习并深入,我没有耐心再去一点点地敲代码了。
4年前自己是个学生,实习,现在有工作,只能业余时间研究。
这一点是非常不同的。
我希望通过研究别人的“成熟产品”,更好地全面学习。
以目标为导向,具体来说,通过研究别人的一个产品,进而全面掌握,在研究的过程中,
把若干问题都解决了,从而达成“快速进步”的目标。
我们学习Java,学习Android开发,不是为了玩玩而已,也不能紧紧是“感兴趣”,更重要的是
解决实际的问题。实际问题通常都是要研发一个完整的产品,至少也是解决某个问题的工具,比如
小米的开源文件管理器,下载源码,搞好Android环境,打包,安装到我的Coolpad手机上,就可以用了。
它能够解决Android手机上的文件管理问题。
我对这个开源产品的评价是9/10,不足之处是,文档太少了,没啥说明。
在成功打包运行,看到了界面和功能后,我非常喜欢,界面还可以,功能也是完整的。
这种开源项目,我最喜欢了,完全是“成型产品”,“半吊子”的开源产品,研究起来比较折磨人,各种问题。
看了看Github和官方社区,也不怎么活跃了。
Github项目地址: https://github.com/MiCode/FileExplorer
官方社区: http://www.micode.net
本地用Eclipse搞好环境,把Github上的代码搞进去。
我个人习惯用Android真机测试,速度非常快,从打包到运行,不超过10秒。如果用模拟器,至少要30秒,急死人啊~
Android源码,就2个包:
net.micode.fileexplorer 小米写的代码
org.swiftp:一个开源的ftp server,被整合到了小米源码中,可以这么理解
几十个Java源文件,都放在1个包里,好不习惯啊~
在初步读代码后,我优先整理了Java代码,分成了好几个包。
根目录net.micode.fileexplorer
1.顶级包
FileExplorerTabActivity等各种Activity界面入口文件,仍然保留在顶级包里。
2.impl
小米或Android定义的接口的实现类。
3.model
模型文件,实体文件,比如FileInfo.java用来表示一个Android物理文件。
这种代码,通常都是比较独立的。
4.ui
视图组件,是对Android组件的封装和补充。
和Activity不同的是,它们不是入口文件。
5.util
工具类,和模型类类似,它们也相对比较独立。
比如,FileOperationHelper.java就具体完成了文件的“增删改查”。
总的来说,就是把入口、界面、界面组件、模型、工具类等分离,使得你能很快地建立对项目的整体印象。
先整体,后局部。
要有全局思维,这是我对自己的要求~
一个常见的问题
Android打包之后,手机上显示“程序停止运行”,没有别的提示。
这种问题,通常都是程序出了问题,这个地方Eclipse不够友好,没有给出错误提示。
最后,通过debug模式,打断点,定位到了错误代码,然后增加了try-catch捕捉,最后定位到问题。
有的java文件,包的路径变了。
CategoryBar extends View,这个组件是1个界面类型的组件,在xml中有配置。
<net.micode.fileexplorer.ui.CategoryBar
android:id="@+id/category_bar" android:layout_width="fill_parent"
android:layout_height="35px" android:layout_gravity="center"
android:layout_marginBottom="5dip">
</net.micode.fileexplorer.ui.CategoryBar>
个人观点:如果只会Android,只做自己工作中的那点事,而不关心Java服务端等其他人的工作,
视野会比较狭窄。我心中的“大牛”,“经理人”,“技术负责人”一定是全局类型的人才。
我认为,全局类型的人才更加稀缺,全局类型的人才多是从专一类型的发展过来的。
从专一类型过渡到全局类型,我觉得更主要是“机遇”。
“机遇”可能是别人给的,如果别人给不了,自己应该通过努力而获得。
个人努力,需要意识和方向指引~
我是不会认可“努力比方向更重要”和“方向比努力更重要”这种片面的观点的~
小雷FansUnion-一个正在研究Android的程序员
2015年10月25日
湖北-武汉-循礼门
QQ:240370818
微信:FansUnion
我的主要博客: http://blog.csdn.net/FansUnion

小米开源文件管理器MiCodeFileExplorer-源码研究(0)-初步研究相关推荐

  1. android+小米文件管理器源码,小米开源文件管理器MiCodeFileExplorer-源码研究(2)-2个单实例工具类...

    从本篇开始,讲解net.micode.fileexplorer.util工具包中的类. 这个包下的类,功能也比较单一和独立.很多代码的思想和实现,可以用于JavaWeb和Android等多种环境中. ...

  2. 支持小米java文件阅读器_小米开源文件管理器MiCodeFileExplorer-源码研究(0)-初步研究...

    2011年对着书本Android应用开发揭秘,写了2个月的HelloWorld. 现在想复习并深入,我没有耐心再去一点点地敲代码了. 4年前自己是个学生,实习,现在有工作,只能业余时间研究. 这一点是 ...

  3. android+小米文件管理器源码,小米开源文件管理器MiCodeFileExplorer-源码研究(1)-2个模型Model...

    上篇说到,把小米的Java代码整理成了5个包,其中1个是net.micode.fileexplorer.model. 这个包就2个模型类,最基本了,FileInfo和FavoriteItem. pac ...

  4. 小米开源文件管理器MiCodeFileExplorer-源码研究(1)-2个模型Model

    上篇说到,把小米的Java代码整理成了5个包,其中1个是net.micode.fileexplorer.model. 这个包就2个模型类,最基本了,FileInfo和FavoriteItem. pac ...

  5. Mark几款优秀的基于MPC开源播放器的源码供参考.

    SEP 11TH, 2016 2:00 PM MPC(Media Player Classic)是一款基于DirectShow由一名匈牙利大佬Gabest开发的一款开源播放器. 由于该项目基于GPL源 ...

  6. 小米开源文件管理器MiCodeFileExplorer-源码研究(6)-媒体文件MediaFile和文件类型MimeUtils

    接着之前的第4篇,本篇的2个类,仍然是工具类. MediaFile,媒体文件,定义了一大堆的常量,真正的有用的方法就几个. isAudioFileType.isVideoFileType之类的. Mi ...

  7. 小米开源文件管理器MiCodeFileExplorer-源码研究(3)-使用最多的工具类Util

    Util.java,使用最广泛~ 代码中很多地方,都写了注释说明~基本不需要怎么解释了~ package net.micode.fileexplorer.util;import java.io.Fil ...

  8. 小米开源文件管理器MiCodeFileExplorer-源码研究(8)-文件排序工具类FileSortHelper

    FileSortHelper的核心功能就是,对文件集合FileInfo排序. FileInfo有若干字段,根据字段定义了4种比较器Comparator. 调用示例:Collections.sort(L ...

  9. 小米开源文件管理器MiCodeFileExplorer-源码研究(4)-文件操作工具类FileOperationHelper

    文件操作是非常通用的,注释都写在源代码中了,不多说~ 需要特别说明的是,任务的异步执行和IOperationProgressListener. 拷贝和删除等操作,是比较费时的,采用了异步执行的方式~ ...

最新文章

  1. Go 学习笔记(8)— 条件语句(if、if...else...、switch、fallthrough)
  2. Netty Pipeline源码分析(2)
  3. 初等数论--原根--阶的计算
  4. 1017: 成绩大排队
  5. [CareerCup][Google Interview] 找出最小排序次数
  6. centos环境下安装redis
  7. keras 升级_如何入门Keras?
  8. android base64 字符串,Android 文件转base64字符串
  9. 陈俊龙:从深度强化学习到宽度强化学习—结构,算法,机遇及挑战
  10. wpf/sl下的复合程序-CAG入门
  11. Element is not clickable at point,Other element would receive the click: xxx 遇到某个对象Click()不能正常使用?
  12. 正则匹配特殊符号及标点符号
  13. aui移动端UI框架
  14. UE4_直播RT输出到OBS教程
  15. gee学习1geemap入门(环境搭建和地图创建)
  16. 转:鏖战双十一-阿里直播平台面临的技术挑战(webSocket, 敏感词过滤等很不错)...
  17. 11g新增加的后台进程
  18. 三星 android 刷机,三星安卓手机如何刷机 三星安卓手机刷机通用方法介绍【教程】...
  19. IT项目管理之软件测试
  20. 小米平板4软件提取包_小米三大法宝:软件、硬件和服务;以及它的4条成功经验|小米手机|智能手机|手机...

热门文章

  1. linux 集群管理hpc,部署HPC集群的实施方案
  2. 计算机毕业设计JAVA家具销售管理系统mybatis+源码+调试部署+系统+数据库+lw
  3. html注册用户正则判断代码,注册用户的正则验证
  4. 【2023 · CANN训练营第一季】应用开发深入讲解——第六、七章 章节小测 微认证考核
  5. 很经典话,随便一句都可以当做QQ签名
  6. How to activate office 2010
  7. 区块链之争,争什么?
  8. Altium Designer(AD)多边形铺铜
  9. 点云 3D 分割 - SqueezeSegV1、SqueezeSegV2、SqueezeSegV3
  10. 计算机四级网络技术题库套,全国计算机等级考试四级计算机网络第6套试题(3)...