`
263229365
  • 浏览: 465659 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

AndroidManifest.xml文件分析

阅读更多

AndroidManifest.xml是每个android程序中必须的文件。它位于application的根目录,描述了package中的全局数据,包括了package中暴露的组件(activities, services, 等等),它们各自的实现类,各种能被处理的数据和启动位置。

此文件一个重要的地方就是它所包含的intent-filters。这些filters描述了activity启动的位置和时间。每当一个activity(或者操作系统)要执行一个操作,例如:打开网页或联系簿时,它创建出一个intent的对象。它能承载一些信息描述了你想做什么,你想处理什么数据,数据的类型,和一些其他信息。Android比较了intent对象中和每个application所暴露的intent-filter中的信息,来找到最合适的activity来处理调用者所指定的数据和操作。

    除了能声明你程序中的Activities, Content Providers, Services, Intent Receivers,你还能指定permissionsinstrumentation(安全控制和测试)在AndroidManifest.xml文件中。

    这是一个简单的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

        package="com.my_domain.app.helloactivity">

        

    <application android:label="@string/app_name">

    

        <activity class=".HelloActivity">

            <intent-filter>

                <action android:value="android.intent.action.MAIN"/>

                <category android:value="android.intent.category.LAUNCHER"/>

            </intent-filter>

        </activity>

        

    </application>

    

</manifest>

值得一提一些常用之处:

· 几乎所有的AndroidManifest.xml(以及许多其他Androidxml的文件)在第一个元素中包含了命名空间的声明xmlns:android="http://schemas.android.com/apk/res/android"。这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。

· 大部分manifests包含了单个<application>的元素,它定义了所有的application级别组件和属性,并能在package中使用。

· 任何被用户看作顶层应用程序,并能被程序启动器所用的package,需要包含至少一个Activity组件来支持MAIN操作和LAUNCHER种类,如上述代码中所见。

这里是AndroidManifest.xml文件结构的一个详细的列表,描述了所有能被使用的标记。

manifest

    根节点,描述了package中所有的内容。在它之下能放置:

    uses-permission

        请求你的package正常运作所需赋予的安全许可。见SecurityModel来获得许可的更多的信息。一个manifest能包含零个或更多此元素。

    permission

        声明了安全许可来限制哪些程序能你package中的组件和功能。见SecurityModel来获得许可的更多的信息。一个manifest能包含零个或更多此元素。

    instrumentation

        声明了用来测试此package或其他package指令组件的代码。见Instrumentation来获得许可的更多的信息。一个manifest能包含零个或更多此元素。

    application

        包含packageapplication级别组件声明的根节点。此元素也可包含application中全局和默认的属性,如标签,icon,主题,必要的权限,等等。一个manifest能包含零个或一个此元素(不允许多余一个)。在它之下能放置零个或更多下列组件声明:

        activity

            Activity是用来与用户交互的主要工具。当用户打开一个应用程序的初始页面时一个activity,大部分被使用到的其他页面也由不同的activity所实现并声明在另外的activity标记中。

            注意:每一个activity必须要一个<activity>标记对应,无论它给外部使用或是只用于自己的package中。如果一个activity没有对应的标记,你将不能运行它。

            另外,为了支持运行时迟查找你的activity,你能包含一个或多个<intent-filter>元素来描述你activity所支持的操作:

            

            intent-filter

                声明了指定的一组组件支持的Intent值,从而形成了IntentFilter。除了能在此元素下指定不同类型的值,属性也能放在这里来描述一个操作所需的唯一的标签,icon和其它信息。

                action

                    组件支持的Intentaction。

                category

                    组件支持的IntentCategory.

                type

                    组件支持的Intentdata MIME type.

                schema

                    组件支持的Intentdata URI scheme.

                authority

                    组件支持的Intentdata URI authority.

                path

                    组件支持的Intentdata URI path.

        receiver

            IntentReceiver能使的application获得数据的改变或者发生的操作,即使它当前不在运行。利用activity标记,你能选择地包含一个或多个receiver所支持的<intent-filter>元素;

        service

            Service是能在后台运行任意时间的组件。利用activity标记,你能选择地包含一个或多个receiver所支持的<intent-filter>元素;

        provider

            ContentProvider是用来管理持久化数据并发布给其他应用程序使用的组件。

 

 

转自:cnbolg

分享到:
评论

相关推荐

    Androidmanifest.xml文件分析

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

    androidmanifest.xml分析工具

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

    AndroidManifest.xml文件剖析

    android 的配置文件的分析,AndroidManifest.xml

    AndroidManifestFileTemplate:010 编辑器中的 AndroidManifest.xml 二进制文件模板

    AndroidManifest 二进制文件模板 AndroidManifestTemplate.bt 是 010 Editor 中 AndroidManifest Binary 文件的模板文件。 有关 010 编辑器模板的更多详细信息,请参阅此。 此模板基于此 重命名目录存储一个 python...

    AndroidManifest详解

    AndroidManifest.XML详细解读。将整个AndroidManifest.XML文件结构逐层分析,逐条详解。

    AXMLPrinter2.7z

    可以将android安卓编译过的二进制XML文件(binary xml file)反编译明文输出保存。是APK反编译修改的必备工具之一。例如需要查看apk安装包的权限、名称等,可以用AXMLPrinter2对androidmanifest.xml反编译进行明文查看...

    Android | 教你如何用代码开发一个拍照翻译小程序

    目录引子想象中的旅游实际中的旅游拍照翻译帮你忙文本识别翻译拍照翻译APP开发实战1 开发准备1.1 在项目级...AndroidManifest.xml文件里面申请相机和存储权限2 代码开发关键步骤2.1 动态权限申请2.2 创建云侧文本分析器...

    Android实验六.doc

    注册广播事件:注册 方式有两种,一种是静态注册,就是在AndroidManifest.xml文件中定义,注册的广播接 收器必须要继承BroadcastReceiver;另一种是动态注册,是在程序中使用Context.reg isterReceiver注册,注册的...

    安卓开发实战,用华为HMS MLKit 图像分割 SDK开发一个证件照DIY小程序

    **==证件照DIY开发实战1 开发准备1.1 在项目级gradle里添加华为maven仓1.2 在应用级的build.gradle里面加上SDK依赖1.3 在AndroidManifest.xml文件里面增量添加模型自动下载1.4 在AndroidManifest.xml文件里面申请...

    Android | 只要三十分钟就可以在手机上开发一个微笑抓拍神器!!!

    目录前言机器学习服务人脸检测所提供的能力机器学习服务人脸检测所提供的能力1、开发准备1.1 在项目级gradle里添加华为maven仓1.2 在...AndroidManifest.xml文件里面申请相机和存储权限2、代码开发2.1 创建人脸分析器...

    BiliBili-基于ijkplayer rxjava retrofit,组件化思想,实现一个仿B站的Android客户端.zip

    AndroidManifest.xml,application和library使用的AndroidManifest.xml不同,所以要为组件开发模式下的业务组件再创建一个 AndroidManifest.xml,然后根据isModule指定AndroidManifest.xml的文件路径,让业务组件在...

    php上传apk后自动提取apk包信息的使用(示例下载)

    通过命令:java -jar AXMLPrinter2.jar AndroidManifest.xml &gt; cmdAfter.xml得到cmdAfter.xml文件,然后分析cmdAfter.xml文件获取相关信息。 但是遗憾的是,从这文件中可以得到apk包名,但无法得到ico图标文件名及...

    XCTF-mobile app2

    分析XML文件4.经过验证得到flag5.其他解法 下载地址:点此下载 1.提取文件 更改app安装包后缀为zip 把这3个文件解压出来 然后使用dex2jar将dex文件转换为jar文件,得到一个jar文件,这个文件中包含了大部分程序...

    深入分析Android构建过程

    如果项目引入了android support包,又或许依赖于其它第三方aar库,那构建前会将aar解压并与本地资源合并,这里的资源主要包括assets目录,res目录及Androidmanifest.xml。 当第三方依赖中的assets或res文件与本地...

    友盟渠道打包工具.zip

    V2.0 版本仅实现了通过 .apk 打包的方式,本质上对 apk 文件进行反编译,修改 AndroidManifest.xml 文件后,再重新打包,我们使用的工具是开源的拆包工具 Apktool 将 apktool 添加到当前 process 的环境变量 执行...

    基于Android平台的星座查询软件设计

    4.2.4 AndroidManifest.xml 21 4.3手机“星座”查询软件设计实现 22 4.3.1系统主界面的实现 22 4.3.2“星座”查询功能实现 24 4.3.3常见的错误分析解决 29 5、结语 29 5.1总结 29 5.2展望 30 6、参考文献 30 7、谢辞...

    Android APK应用安装原理解析之AndroidManifest使用PackageParser.parserPackage原理分析

    Android 安装一个APK的时候首先会解析APK,这里要做很多事情,其中一个事情就是解析Manifest.xml文件,并将所有APK的Manifest封装到各种对象中并保存在内存当中 解析Manifest的类是非常重要的,该类就是frameworks\...

    Quadrant:适用于Android的Gradle插件,可在多模块项目中轻松导航

    象限仅分析整个项目的AndroidManifest.xml文件(无论它们位于哪个模块中),并为您生成一系列包含您的Activities类名的常量。 object QuadrantConstants { const val MAIN_ACTIVITY : String = " ...

    android手机短信管理系统毕业论文

    4.2.4 AndroidManifest.xml 23 4.3 手机短信软件设计实现 24 4.3.1 系统主界面的实现 24 4.3.2 短信管理功能实现 27 4.3.3 常见的错误分析解决 29 第5章 短信息的备份与恢复 31 第6章 结语 33 6.1 总结 33 6.2 展望 ...

Global site tag (gtag.js) - Google Analytics