27
2017
09

学习Android中疑惑的名词

  1. Intent-Filter
  2. Intent
  3. Activity(活动)
  4. Gradle
  5. Context

一:Intent-Filter
Intent-Filter的定义
IntentFilter就是用于描述intent的各种属性, 比如action, category等
一些属性设置的例子:

<action android:name="com.example.project.SHOW_CURRENT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="video/mpeg" android:scheme="http" . . . />
<data android:mimeType="image/*" />
<data android:scheme="http" android:type="video/*" />

关于IntentFilter的几点注意事项:
(1).android.intent.action.MAIN android.intent.category.LAUNCHER
android.intent.action.MAIN决定一个应用程序最先启动那个组件
android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里(说白了就是是否在桌面上显示一个图标)
这两个属性组合情况:
第一种情况:有MAIN,无LAUNCHER,程序列表中无图标
原因:android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里
第二种情况:无MAIN,有LAUNCHER,程序列表中无图标
原因:android.intent.action.MAIN决定应用程序最先启动的Activity,如果没有Main,则不知启动哪个Activity,故也不会有图标出现
所以这两个属性一般成对出现。
如果一个应用中有两个组件intent-filter都添加了android.intent.action.MAIN和
android.intent.category.LAUNCHER这两个属性, 则这个应用将会显示两个图标, 写在前面的组件先运行
Intent 过滤器是应用清单文件中的一个表达式,它指定该组件要接收的 Intent 类型。 例如,通过为 Activity 声明 Intent 过滤器,您可以使其他应用能够直接使用某一特定类型的 Intent 启动 Activity。同样,如果您没有为 Activity 声明任何 Intent 过滤器,则 Activity 只能通过显式 Intent 启动。
具体可参照
(http://blog.csdn.net/cnnumen/article/details/8464786)
(http://blog.csdn.net/lpjishu/article/details/53310749)

二.Intent
Intent 的字面意思是目的,意图。联想到一个APP是由很多个活动组成,要想从一个活动到另一个活动是需要借助某种手段来实现。
Intent 是一个消息传递对象,可以使用它从其他应用组件请求操作
Intent的基本用例分为
1. 启动 Activity
2. 启动服务
3. 传递广播

Intent 分为两种类型:
显式 Intent:按名称(完全限定类名)指定要启动的组件。 通常,您会在自己的应用中使用显式 Intent 来启动组件,这是因为您知道要启动的 Activity 或服务的类名。例如,启动新 Activity 以响应用户操作,或者启动服务以在后台下载文件。
隐式 Intent :不会指定特定的组件,而是声明要执行的常规操作,从而允许其他应用中的组件来处理它。 例如,如需在地图上向用户显示位置,则可以使用隐式 Intent,请求另一具有此功能的应用在地图上显示指定的位置。
创建显式 Intent 启动 Activity 或服务时,系统将立即启动 Intent 对象中指定的应用组件。
(http://blog.csdn.net/lpjishu/article/details/53310749)

三.Activity(活动)
活动是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序可以包含一个或多个活动。
(http://blog.csdn.net/u011941673/article/details/77880556?locationNum=5&fps=1)

四.Gradle
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。

Gradle是一种构建工具,它可以帮你管理项目中的差异,依赖,编译,打包,部署……,你可以定义满足自己需要的构建逻辑,写入到build.gradle中供日后复用。
Gradle不是一种编程语言,它不能帮你实现软件中的任何实际功能。
(https://www.zhihu.com/question/30432152)

5.Context
Context,中文直译为“上下文”,SDK中对其说明如下:
Interface to global information about an application environment. This is an abstract class whose implementation
is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls
for application-level operations such as launching activities, broadcasting and receiving intents, etc

从上可知一下三点,即:
    1、它描述的是一个应用程序环境的信息,即上下文。
    2、该类是一个抽象(abstract class)类,Android提供了该抽象类的具体实现类(后面我们会讲到是ContextIml类)。
    3、通过它我们可以获取应用程序的资源和类,也包括一些应用级别操作,例如:启动一个Activity,发送广播,接受Intent
  信息 等。。

这里写图片描述
具体可参照
(http://blog.csdn.net/guolin_blog/article/details/47028975)
(http://blog.csdn.net/qinjuning/article/details/7310620)

上一篇:Android 数据库升级数据迁移以及数据库导入 下一篇:Linux下pthread