android开发学习笔记(一)-Manifest文件

一:概述

所有的app都要在根目录下AndroidManifest.xml文件,这个文件显示了app告诉android系统的基本信息。在app代码运行之前,android系统从这个文件获取基本信息

功能:

  1. 给app的java包起名作为这个app的唯一标识符
  2. 声明app中要使用的组件
  3. 决定哪些进程持有app组件
  4. 确定app需要的用户权限
  5. 它声明应用程序必须拥有哪些权限以访问API的被保护部分以及与其它应用程序交互
  6. 它声明应用程序必须拥有哪些权限以访问API的被保护部分以及与其它应用程序交互
  7. 声明app需要的最低级别
  8. 声明app需要链接的API函数库(除了android API框架)

二:Manifest文件的结构

 1 <?xml version="1.0" encoding="utf-8"?>
 2
 3 <manifest>
 4
 5     <uses-permission />
 6     <permission />
 7     <permission-tree />
 8     <permission-group />
 9     <instrumentation />
10     <uses-sdk />
11     <uses-configuration />
12     <uses-feature />
13     <supports-screens />
14     <compatible-screens />
15     <supports-gl-texture />
16
17     <application>
18
19         <activity>
20             <intent-filter>
21                 <action />
22                 <category />
23                 <data />
24             </intent-filter>
25             <meta-data />
26         </activity>
27
28         <activity-alias>
29             <intent-filter> . . . </intent-filter>
30             <meta-data />
31         </activity-alias>
32
33         <service>
34             <intent-filter> . . . </intent-filter>
35             <meta-data/>
36         </service>
37
38         <receiver>
39             <intent-filter> . . . </intent-filter>
40             <meta-data />
41         </receiver>
42
43         <provider>
44             <grant-uri-permission />
45             <meta-data />
46             <path-permission />
47         </provider>
48
49         <uses-library />
50
51     </application>
52
53 </manifest>

三:Manifest文件惯例

element:

每一个Manifest文件都必须要出现一次<manifest>和<application>元素,其他元素根据功能需要决定出现一次、多次或一次也不出现。

所有值通过属性来设置,不会作为元素内的字符数据。

同一级别的元素是乱序排列的。( <activity-alias> 元素是个例外,它必须跟在它所引用的<activity> 后面。)

Attribute:

正式意义上来说,每个元素的属性都是可选择的,但是在完成某个功能的前提下,某些元素的属性值必须要说明的,使用文档作为指引。对于真正可选的属性,它会提及一个默认值或讲述在规范缺少的时候发生什么。

除了根元素<manifest>的属性值外,其他所有属性值都必须以前缀android:开始,因为前缀是一般性概念,所以当通过名称引用属性时文档通常会忽略它

Declaring class names

一些元素相当于java对象,包括<application>以及四大组件<activity>、<service>、<receiver>、<provider>

如果你想定义一个组件类的子类时,这个子类的声明通过name属性,name属性包括了完整包名

1 <manifest . . . >
2     <application . . . >
3         <service android:name="com.example.project.SecretService" . . . >
4             . . .
5         </service>
6         . . .
7     </application>
8 </manifest>

但是,作为简写。如果字符串的第一个字符是".",字符串将被添加到app的包名的尾部

1 <manifest package="com.example.project" . . . >
2     <application . . . >
3         <service android:name=".SecretService" . . . >
4             . . .
5         </service>
6         . . .
7     </application>
8 </manifest>

当启动一个组件时,android创建一个子类的对象,如果子类未指定,它会创建一个基类

Multiple values

如果指定的值多于一个,通常要将元素重复再指定值,而不是在一个元素单元内列出多个值

<intent-filter . . . >
    <action android:name="android.intent.action.EDIT" />
    <action android:name="android.intent.action.INSERT" />
    <action android:name="android.intent.action.DELETE" />
    . . .
</intent-filter>

Resource values:

一些资源有显示给用户的值,例如,activity的一个label或者icon,这个属性值应该被本地化,因此被设置成来自同一个资源或主题。

资源值用以下格式来表达

1 @[package:]type:name

package:当资源在app的同一个包里时,package值可缺省

type:资源的类型,例如string、drawable

name:是一种用来指定特殊资源的名字。

1 <activity android:icon="@drawable/smallPic" . . . >

主题值用以下格式表达

1 ?[package:]type:name

String values

属性值为字符串时,表示转义字符要加"\\"。例如,‘\\n‘用作回车或‘\\uxxxx‘用作一个Unicode字符。

时间: 2024-12-05 11:55:18

android开发学习笔记(一)-Manifest文件的相关文章

【Android开发学习笔记】【第四课】基础控件的学习

通过一个简单的例子来学习下面几种控件: 1.TextView:简单的文本显示控件 2.EditText:可以编辑的文本框 3.Button:按钮 4.Menu:这里指的是系统的Menu 5.Toast:消息提示控件,类似于MFc的tip(不知道理解的对不对) 顺便用到上一次学习的多个Activity之间传递数据的技术,来做一个小的计算乘法的case 步骤: (1)主Activity 和显示结果的 Activity 都采用线性布局,下面是布局文件的源代码: <LinearLayout xmlns:

转 Android开发学习笔记:浅谈WebView

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liangruijun.blog.51cto.com/3061169/647456 WebView(网络视图)能加载显示网页,可以将其视为一个浏览器.它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法: 第一种方法的步骤: 1.在要Activity中实例化WebView组件:WebView webView = new WebView(this); 2

【Android开发学习笔记】【第三课】Activity和Intent

首先来看一个Activity当中启动另一个Activity,直接上代码说吧: (1)首先要多个Activity,那么首先在res-layout下新建一个 Other.xml,用来充当第二个Activity的布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

android开发学习笔记001a

Android 应用与开发环境 1.使用SDK版本:Android 2.3 . 2.发展和历史 创始人:Andy Rubin,Android公司被Google收购.07年11月5日1.0发布. 3.平台架构及特性 Linux内核(操作系统)->函数库,Android运行时(中间件)->应用程序框架->应用程序 我要学习的就是如何在android 操作系统里开发应用程序. 我们只和应用程序框架(Android API)打交道.也就是我们的SDK. 函数库是C/C++的库. Android

Android开发学习笔记:数据存取之SQLite浅析

一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl.PHP.Java.C++..Net等,还有ODBC接口,同样比起 Mysql.PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的

【Android开发学习笔记】【第五课】Activity的生命周期-上

今天学习Activity当中的七个生命周期函数: 首先得说一个事情,就是在代码当中如果加入了 System.out.println(" ------");之后,如何查看这里面的输出内容 打开之后只输入“Filter Name”和“by Log Tag” 即可 添加成功后可以看到 本次学习主要总结如下: 1.onCreate() Acitivity首次创建时被调用.用于设置Acitivity的布局文件,绑定按钮监听器等一些普通静态操作. 2.onStart() Acitivity对用户可

android 开发学习笔记 (一)

每个app 都有一个自己的 linux 进程: 每个进程都在自己的虚拟机里执行 两个app 可以跑在一个进程,一个vm里 android app 四大组件:activity,content provider,      services, broardcast receivers Content Resolver 激活 Content Provider You can start an      activity (or give it something new to do) by passi

android开发学习笔记000

使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个一直梦想走技术流的再疯狂一次.2014.08.06. 直奔主题——>android开发学习笔记001 android开发学习笔记000

Android开发学习笔记之四大组件---Activity的介绍,创建以及生命周期

最近重新温习关于android开发的基础知识,还是分享到博客里,一方面分享给有需要的同学,一方面方便自己后期查看 一.什么是Activity 通俗来讲,一屏的界面就是一个Activity,套用比较教科的话,在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应.Activity之间通过Intent进行通信,Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View