`
yinter
  • 浏览: 244127 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

AndroidManifest.xml

阅读更多
Android应用

Android应用指基于Android开发,编译,运行在Android平台的应用。这种应用在编译阶段被打成一个 jar包,以.apk结尾,包内包含了所有运行阶段需要的代码与资源,其中主要分为三块:描述文件AndroidManifest.xml、代码段和运行时资源。 src文件夹为代码,res为运行资源,包括图标界面字符串。

AndroidManifest.xml样例

代码如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="oms.hello"
android:versionCode="1"
android:versionName="1.0.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloOPhone"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

AndroidManifest.xml是Android应用的描述文件,它描述了该应用的相关信息,主要包括以下各个元素。
A.包名(package):指定本应用内java主程序包的包名。当没有指定apk的文件名时,编译后产生程序包将以此命名。本包名应当在Android系统运行时唯一。

B.认证(certificate):指定本应用程序所授予的信任级别,目前有的认证级别有platform(system)、shared、media以及应用自定义的认证。不同的认证可以享受不同的权限。

C.权限组(permission-group):权限组的定义是为了描述一组具有共同特性的权限。

D. 权限(permission):权限用来描述是否拥有做某件事的权力。Android系统中权限是分级的,前分为普通级别(Normal),危险级别 (dangerous),签名级别(signature)和系统/签名级别(signature or system)。系统中所有预定义的权限根据作用的不同,分别属于不同的级别。对于普通和危险级别的权限,我们称之为低级权限,应用申请即授予。其他两级权限,我们称之为高级权限或系统权限,应用拥有platform级别的认证才能申请。当应用试图在没有权限的情况下做受限操作,应用将被系统杀掉以警示。系统应用可以使用任何权限。权限的声明者可无条件使用该权限。

E.权限树(permission-tree)权限树的设置是为了统一管理一组权限,声明于该树下的权限所有者归属该应用。系统提供了API,应用可以在运行时动态添加。 PackageManager.addPermission()

F.使用权限(uses-permission):应用需要的权限应当在此处申请,所申请的权限应当被系统或某个应用所定义,否则视为无效申请。同时,使用权限的申请需要遵循权限授予条件,非platform认证的应用无法申请高级权限。

G:SDK(uses-sdk):标识本应用运行的SDK版本。高兼容性的应用可以忽略此项。

H.application:application 是Android应用内最高级别(top level)的模块,每个应用内最多只能有一个application,如果应用没有指定该模块,一个默认的application将被启用。 application将在应用启动时最先被加载,并存活在应用的整个运行时生命周期。因此一些初始化的工作适合在本模块完成. Application元素有许多属性,其中:“persistent”表示本应用是否为常驻内存,“enable”表示本应用当前是否应当被加载。
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloOPhone"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

在AndroidManifest.xml文件中,运行时模块的定义都作为本模块的子元素。当运行时模块被调度时,如果应用没有启动,将首先启动应用进行初始化,然后调度对应模块。

I.activity:activity 是application模块的运行时子元素,标识了一个UI。除了application,一个应用可以声明并实现零至多个其它运行时模块,activity也同样。activity也包含了许多定义它工作状态的属性,其中:“name”是必须的,它指定了该activity所在的文件名,如果该文件所属包不同于该应用的包名(即本描述文件的最开始处),那么名字前面需要加入所在包名。activity通过增加intent- fliter来标识哪些intent可以被处理,同时intent也是调度activity的主要参数。

J.receiver:receiver 也是application的运行时子元素。receiver通过增加intent-fliter来标识它需要接受哪些intent。当收到intent 后,receiver将根据不同的intent进行不同的处理。当一个Intent发出后,所有注册了该intent的receiver都将会收到,系统会根据receiver在系统中的注册次序顺序发送。当一个receiver处理完该Intent后,系统才会向下一个receiver发送。当一个 receiver有多个未接收的intent时,将按照intent发送的次序顺序接收。
在本实例中,intent-filter如下:
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />

K.service:service也是application的运行时子元素。Service属于后台模块,启动后将长时间运行,除非停止该service或所在应用进程被杀死。

L.provider:provider 也是application的运行时子元素。它继承于ContentProvider,是对该应用管理的用户数据的结构化接入,是基于数据库操作方式的封装。如果应用允许外部应用访问/管理它的用户数据,provider是Android平台提供的最佳方式。

M.activity-alias:顾名思义,是已有activity的别名。

N:uses-library:标识应用启动所必须的共享库。
分享到:
评论

相关推荐

    二进制AndroidManifest.xml修改神器~

    在Android应用开发中,`AndroidManifest.xml`是一个至关重要的文件,它定义了应用程序的基本属性、权限、组件(如Activity、Service、BroadcastReceiver和ContentProvider)以及它们之间的关系。本资源,"二进制...

    AndroidManifest.xml反编译工具

    在Android应用开发中,`AndroidManifest.xml`是一个至关重要的文件,它包含了应用程序的基本配置和元数据,如应用的包名、所需权限、启动活动、服务、接收器等。本话题将详细探讨`AndroidManifest.xml`的反编译工具...

    Android 报错:Entry name ‘AndroidManifest.xml’ collided

    Android 报错:Entry name ‘AndroidManifest.xml’ collided前言解决方法1、直接退回3.5.32、排除打包文件3、使用旧打包工具4、最终解决方法完事 前言 这两天 Android studio 更新了 3.6 版本,天天在右下角提示 ...

    提取apk文件中的AndroidManifest.XML

    AndroidManifest.xml是APK的核心组件之一,它提供了应用的基本配置信息,包括应用名称、版本、所需权限、服务、活动、广播接收器等。当我们需要深入分析或修改一个APK时,提取AndroidManifest.xml就显得尤为重要。本...

    AndroidManifest.xml信息查看工具

    在Android应用开发中,`AndroidManifest.xml`是一个至关重要的文件,它定义了应用程序的基本属性、权限、组件(如活动、服务、广播接收器和内容提供者)以及它们之间的关系。这款名为“AndroidManifest.xml信息查看...

    AndroidManifest.xml编译器

    在Java编程中,可以使用`javax.xml.parsers.DocumentBuilderFactory`和`javax.xml.parsers.DocumentBuilder`类来解析`AndroidManifest.xml`文件,然后通过`TransformerFactory`和`Transformer`将XML文档转换为不同的...

    APK AndroidManifest.xml 解密工具

    一个解密apk 包中AndroidManifest.xml 的工具,命令行直接使用,生成一个明文的xml 文件。 AndroidManifestConver.exe c:\src.xml c:\dest.xml

    Android教程之AndroidManifest.xml文件详细介绍及用法解析

    Android教程之AndroidManifest.xml文件 详细介绍及用法解析

    反编译 AndroidManifest.xml

    在Android应用开发中,`AndroidManifest.xml`是一个至关重要的文件,它包含了应用程序的基本配置和元数据,如应用名称、所需权限、使用的Activity、Service、BroadcastReceiver等信息。本篇文章将详细探讨如何对`...

    AndroidManifest.xml文件详解

    ### AndroidManifest.xml 文件详解 #### 一、关于 AndroidManifest.xml `AndroidManifest.xml` 是 Android 应用程序中不可或缺的一部分,通常位于项目的根目录下。该文件定义了应用程序的架构和元数据,包括应用...

    Androidmanifest.xml文件分析

    一、关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和...

    Android学习笔记之AndroidManifest.xml文件解析

    ### AndroidManifest.xml 文件解析知识点 #### 一、概述 `AndroidManifest.xml` 是 Android 应用的核心配置文件,它位于应用项目的根目录下。该文件主要用于描述应用的基本信息及其组件,比如 Activity、Service、...

    androidmanifest.xml详解

    详细阐述androidmanifest.xml各个属性的含义和用法

    androidmanifest.xml分析工具

    androidmanifest.xml分析工具,将文件与androidmanifest.xml放在同一目录下运行python XMLanalysis.py即可

    修改二进制文件AndroidManifest.xml文件

    android反编译:修改apk生成的二进制文件AndroidManifest.xml文件。

    QQ客户端反编辑AndroidManifest.xml文件

    借鉴QQ的配置 AndroidManifest.xml

Global site tag (gtag.js) - Google Analytics