Android学习(三)

AndroidManifest.xml文件解析

你在程序中定义的所有四大组件都需要在这个文件里注册,另外还可以在这个文件中给应用程序添加权限声明,也可以重新指定你创建项目时指定的程序最低兼容版本和目标版本

没有在AndroidManifest.xml文件里注册的活动是不能使用的。

每个安卓应用程序必须有一个AndroidManifest.xml文件,在其根目录res下。它在简单的Android系统的应用提出了重要的信息,信息系统必须具备之前,它可以运行任何应用程序的代码。除其他事项外,清单中执行下列操作:

  • 它命名为应用程序的Java包。包的名称作为一个应用程序的唯一标识符。
  • 它描述了应用程序的组件-的活动,服务,广播接收机,内容提供商,应用程序组成。它命名的类,实现每个组件,并出版自己的能力(例如,他们可以处理哪些意图的消息)。这些声明让Android系统知道的组件是什么和在什么条件下,他们可以推出。
  • 它决定哪些进程将主机应用程序组件。
  • 它宣称,应用程序必须有权限才能访问受保护的API部分,并与其他应用程序进行交互。
  • 它还宣布,其他人则需要以与应用程序的组件交互的权限。
  • 它列出了仪器仪表类,提供了分析和其他信息的应用程序正在运行。这些声明是在清单中,只有当应用程序正在开发和测试;申请公布之前,他们正在拆除。
  • 它宣布的Android API的应用程序需要的最低水平。
  • 它列出了库,应用程序必须与配对。

AndroidManifest.xml文件的结构、元素,以及元素的属性,可以在AndroidSDK文档中查看详细说明。而在看这些众多的元素以及元素的属性前,需要先了解一下这些元素在命名、结构等方面的规则:

  1. 元素:在所有的元素中只有和是必需的,且只能出现一次。如果一个元素包含有其他子元素,必须通过子元素的属性来设置其值。处于同一层次的元素,这些元素的说明是没有顺序的。
  2. 属性:按照常理,所有的属性都是可选的,但是有些属性是必须设置的。那些真正可选的属性,即使不存在,其也有默认的数值项说明。除了根元素的属性,所有其他元素属性的名字都是以android:前缀的;
  3. 定义类名:所有的元素名都对应其在SDK中的类名,如果你自己定义类名,必须包含类的数据包名,如果类与application处于同一数据包中,可以直接简写为“.”;
  4. 多数值项:如果某个元素有超过一个数值,这个元素必须通过重复的方式来说明其某个属性具有多个数值项,且不能将多个数值项一次性说明在一个属性中;
  5. 资源项说明:当需要引用某个资源时,其采用如下格式:
    @[package:]type:name
    • 例如<activityandroid:icon=”@drawable/icon ” . . .>
  6. 字符串值:类似于其他语言,如果字符中包含有字符“\”,则必须使用转义字符“\”。

参考:


四大组件

  1. 活动(Activity)
    Android应用程序的门面,凡是在应用中看到的东西,都是放在活动中的。
  2. 服务(Service)
    无法看到他,在后台默默运行,即使用户退出了应用,服务仍然是可以继续运行的。
  3. 广播接收器(Broadcast Receiver)
    允许你的应用接收来自各处的消息,比如电话,短信,微信,qq等,他也可以向外发出广播消息。
  4. 内容提供器(Content Provider)
    为应用程序之间共享数据提供了可能,比如你想要读取系统电话簿中的联系人,就需要通过内容提供器来实现。

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


        <activity
            android:name=".Another"
            android:label="@string/title_activity_another" >
        </activity>
    </application>

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

这几行代码非常重要,<action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" />表示这个activity是这个项目的主活动,在手机上点击应用图标,首先启动的就是这个活动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值