AndroidManifest.xml是Android应用程序最重要的配置文件。

入口文件和intent-filter

<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Light"
android:uiOptions="splitActionBarWhenNarrow">
<activity
android:name="net.micode.fileexplorer.FileExplorerTabActivity"
android:configChanges="screenSize|keyboardHidden"
android:screenOrientation="sensor"
android:uiOptions="splitActionBarWhenNarrow">
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

Intent和IntentFilter,昨天才复习了下,大致的意思是:Intent意图,作为一种编程模式,实现程序解耦,
而IntentFilter可以过滤Intent。
android.intent.action.MAIN表明是“入口”,
android.intent.category.LAUNCHER表明“决定应用程序是否显示在程序列表里”。

还配置了2个Activity和1个Service。

<activity android:name=".SearchActivity" >
</activity> <activity
android:label="@string/menu_setting"
android:launchMode="singleTop"
android:name=".FileExplorerPreferenceActivity"
android:theme="@android:style/Theme.Holo.Light.NoActionBar" >
</activity> <service android:name=".FTPServerService" />

程序启动之后,进入FileExplorerTabActivity的界面。
onCreate函数里,完成ViewPager和TabsAdapter2个关键对象的构造。
最重要的是TabsAdapter。

还是用自己理解来表述这个问题吧~
FileExplorerTabActivity这个Activity就是“Controller”控制器。
ViewPager这个View就是“View”视图。
TabsAdapter就是Model,提供数据~

mTabsAdapter = new TabsAdapter(this, mViewPager);
mTabsAdapter.addTab(bar.newTab().setText(R.string.tab_category),
FileCategoryActivity.class, null);
mTabsAdapter.addTab(bar.newTab().setText(R.string.tab_sd),
FileViewActivity.class, null);
mTabsAdapter.addTab(bar.newTab().setText(R.string.tab_remote),
ServerControlActivity.class, null);
bar.setSelectedNavigationItem(PreferenceManager
.getDefaultSharedPreferences(this).getInt(INSTANCESTATE_TAB,
Util.CATEGORY_TAB_INDEX));

Tab类型的适配器,增加了3个选项,分别是FileCategoryActivity分类浏览、
FileViewActivity文件管理、ServerControlActivity远程管理。
其中前2个主要是小米自身的实现,后1个用到了刚刚配置的FTPService,主要代码是另外一个开源产品SwiFTP。

然后就是相关事件的绑定和切换了,Tab切换由TabActivity自身响应,其它相关事件由FileCategoryActivity等响应。

总结
   Android、Swing、Windows、Web,可视化界面开发GUI类型的应用程序开发,流程类似。
   1.做好程序配置~
     .xml、.properties、.conf、.ini等
   2.启动流程,初始化~
     一种类型的应用程序,启动流程基本是固定的~
标准往往是强势的一个公司制定的~
身为程序员,只能按照标准一步步来哦~
   3.展示界面
     Android:移动端
Windows/Swing:PC端
Web:Web
   4.响应事件
     Web端:URL超链接点击、JS按钮等
Android/Windows/Swing:按钮点击等

参考资料:
1.http://liuzhichao.com/p/506.html
2.http://zhidao.baidu.com/link?url=vkiGaNN8R2s5-SCBQYtL1pGJxMTOJTjXcp97rFBQ8arJo9gmwoRFSfbfQw06JJ6QfkwgVZGSnqN3cNi5ZYqYhK

小米开源文件管理器MiCodeFileExplorer-源码研究(9)-入口分析的更多相关文章

  1. 小米开源文件管理器MiCodeFileExplorer-源码研究(0)-初步研究

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

  2. Android开源项目 Universal imageloader 源码研究之Lru算法

    https://github.com/nostra13/Android-Universal-Image-Loader universal imageloader 源码研究之Lru算法 LRU - Le ...

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

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

  4. 小米开源文件管理器MiCodeFileExplorer-源码研究(5)-AsyncTask异步任务

    说明:本文的文字和代码,主要来自于网上的2篇文章. 第4篇的时候,提到了异步任务AsyncTask. 网上找了2篇文章学习下,copy网友的代码,稍微改了几个字,运行成功了. 在开发Android移动 ...

  5. 开源播放器ijkplayer源码结构

    ijkplayer核心源码主要在ijkmedia文件夹下ijkplayer.ijksdl及ijkutils. 注:tag k0.3.1 player: remove ijkutil android相关 ...

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

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

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

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

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

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

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

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

随机推荐

  1. perl JSON模块使用

    简介: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 它基于JavaScript(Standard ECMA-262 3rd Edition - De ...

  2. ECNUOJ 2574 Principles of Compiler

    Principles of Compiler Time Limit:1000MS Memory Limit:65536KBTotal Submit:473 Accepted:106 Descripti ...

  3. ECNUOJ 2616 游黄山

    游黄山 Time Limit:1000MS Memory Limit:65536KB Total Submit:165 Accepted:52 Special Judge Description Po ...

  4. 数据库中Select For update语句的解析

    ----------- Oracle -----------------– Oracle 的for update行锁 键字: oracle 的for update行锁 SELECT-FOR UPDAT ...

  5. vs2010和qt4.8.4配置

    最近项目要求在vs中开发qt程序,安装过后发现代码每天提示功能.由于本人记忆力有限,特在网上收罗了些配置方法. vs安装目录采用默认,qt安装目录:C:\Qt\4.8.4vs 在系统环境变量新建QTD ...

  6. [Python] Generating random numbers using numpy lib

    import numpy as np def test_run(): data=np.random.random((3,4)) """ [[ 0.80150549 0.9 ...

  7. 编程算法 - 篱笆修理(Fence Repair) 代码(C)

    篱笆修理(Fence Repair) 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 把一块木板切成N块, 每次切两块, 分割的开销是木板长度, ...

  8. _DataStructure_C_Impl:LinkListBasedSort

    #include<stdio.h> #include<stdlib.h> #include"LinkList.h" //创建单链表 void CreateL ...

  9. Activity的launchMode和任务栈小结

    对Activity的launchMode的理解一直没有好好总结下,这两天系统总结下launchMode的使用方法: Activity的launchMode属性决定了Activity和应用程序当前任务栈 ...

  10. Introduction to IIS Architectures

    https://docs.microsoft.com/en-us/iis/get-started/introduction-to-iis/introduction-to-iis-architectur ...