activity alias(Android是如何使用AndroidManifest.xml的)
本文目录
- Android是如何使用AndroidManifest.xml的
- android 怎么读取在androidmanifest.xml中配置xml文件
- android的问题,刚才在eclipse上改了点程序,之后运行一看,结果eclipse提示找不到launch,请问怎么办
- 利用activity-alies解决微信支付的包名WXPayEntryActivity不一致问题
- 哪位高手用过activity-alias
- android alias目录在哪
Android是如何使用AndroidManifest.xml的
一、关于AndroidManifest.xml
AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试)
二、AndroidManifest.xml结构
《?xmlversion=“1.0“encoding=“utf-8“?》
《manifest》
《application》
《activity》
《intent-filter》
《action/》
《category/》
《/intent-filter》
《/activity》
《activity-alias》
《intent-filter》《/intent-filter》
《meta-data/》
《/activity-alias》
《service》
《intent-filter》《/intent-filter》
《meta-data/》
《/service》
《receiver》
《intent-filter》《/intent-filter》
《meta-data/》
《/receiver》
《provider》
《grant-uri-permission/》
《meta-data/》
《/provider》
《uses-library/》
《/application》
《uses-permission/》
《permission/》
《permission-tree/》
《permission-group/》
《instrumentation/》
《uses-sdk/》
《uses-configuration/》
《uses-feature/》
《supports-screens/》
《/manifest》
三、各个节点的详细介绍
上面就是整个am(androidManifest).xml的结构,下面以外向内开始阐述~~
1、第一层(《Manifest》):(属性)
《manifest xmlns:android=“
android 怎么读取在androidmanifest.xml中配置xml文件
一、关于AndroidManifest.xml
AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试)
二、AndroidManifest.xml结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
《?xmlversion=“1.0“encoding=“utf-8“?》
《manifest》
《application》
《activity》
《intent-filter》
《action/》
《category/》
《/intent-filter》
《/activity》
《activity-alias》
《intent-filter》《/intent-filter》
《meta-data/》
《/activity-alias》
《service》
《intent-filter》《/intent-filter》
《meta-data/》
《/service》
《receiver》
《intent-filter》《/intent-filter》
《meta-data/》
《/receiver》
《provider》
《grant-uri-permission/》
《meta-data/》
《/provider》
《uses-library/》
《/application》
《uses-permission/》
《permission/》
《permission-tree/》
《permission-group/》
《instrumentation/》
《uses-sdk/》
《uses-configuration/》
《uses-feature/》
《supports-screens/》
《/manifest》
三、各个节点的详细介绍
上面就是整个am(androidManifest).xml的结构,下面以外向内开始阐述~~
1、第一层(《Manifest》):(属性)
《manifest xmlns:android=“
B、package
指定本应用内java主程序包的包名,它也是一个应用进程的默认名称
android的问题,刚才在eclipse上改了点程序,之后运行一看,结果eclipse提示找不到launch,请问怎么办
头一回 遇到你说的问题,你在androidmanifest文件里修改了东西吧 。这里相当于总的调度,你需要好好看一下再改动!
AndroidManifest.xml文件综合详解
文章分类:移动开发
一,重要性AndroidManifest.xml是Android应用程序中最重要的文件之一。它是Android程序的全局配置文件,是每个 android程序中必须的文件。它位于我们开发的应用程序的根目录下,描述了package中的全局数据,包括package中暴露的组件(activities, services, 等等),以及他们各自的实现类,各种能被处理的数据和启动位置等重要信息。
因此,该文件提供了Android系统所需要的关于该应用程序的必要信息,即在该应用程序的任何代码运行之前系统所必须拥有的信息。一个典型的Android应用程序的结构如下图所示:
二,主要功能它指定了该应用程序的Java包:该包名作为应用程序的一个独特标识。
它描述了应用程序组件:该应用程序由哪些activity,service,broadcast receiver和content provider组成。它指定了实现每个组件的类以及公开发布它们的能力(例如,它们能持有哪个Intent信息)。这些声明使Android系统知道这儿有什么组件以及在什么条件下它们可以被载入。
它决定那些进程将容纳应用程序组件。
它声明了本应用程序必须拥有哪些许可,以便访问API的被保护部分,以及与其他应用程序交互。
它也声明了其他应用程序在和该应用程序交互时需要持有的许可。
它列出了Instrumentation类,可以在应用程序运行时提供简档和其他信息。这些声明仅当应用程序在开发和测试过程中被提供;它们将在应用程序正式发布之前被移除。
它声明了该应用程序所需的Android API的最小化水平。
它列出了该应用程序必须链接的库。
三,主要结构及规则下面列表显示了manifest文件的通常的结构以及它可以含有的元素。每个元素,连同它的所有属性,会在各个单独的文档里进行充分的描绘。
《?xml version=“1.0“ encoding=“utf-8“?》
《manifest》 //根节点,描述了package中所有的内容
《uses-permission /》 //请求你的package正常运作所需赋予的安全许可。一个manifest能包含零个或更多此元素
《permission /》 //声明了安全许可来限制哪些程序能使用你的package中的组件和功能。一个manifest能包含零个或更多此元素
《permission-tree /》
《permission-group /》
《instrumentation /》 //声明了用来测试此package或其他package指令组件的代码。一个manifest能包含零个或更多此元素
《uses-sdk /》 //指定当前应用程序兼容的最低sdk版本号
《application》 //包含package中application级别组件声明的根节点。此元素也可包含 application中全局和默认的属性,如标签,icon,主题,必要的权限,等等。一个manifest能包含零个或一个此元素(不允许多余一个)
《activity》 //用来与用户交互的主要工具。当用户打开一个应用程序的初始页面时一个activity,大部分被使用到的其他页面也由不同的activity所实现并声明在另外的activity标记中。
《intent-filter》 //声明了指定的一组组件支持的Intent值
《action /》
《category /》
《data /》
《type/》
《schema/》
《authority/》
《path/》
《/intent-filter》
《meta-data /》
《/activity》
《activity-alias》
《intent-filter》 . . . 《/intent-filter》
《meta-data /》
《/activity-alias》
《service》 //Service是能在后台运行任意时间的组件
《intent-filter》 . . . 《/intent-filter》
《meta-data/》
《/service》
《receiver》 //IntentReceiver能使你的application获得数据的改变或者发生的操作,即使它当前不在运行
《intent-filter》 . . . 《/intent-filter》
《meta-data /》
《/receiver》
《provider》 //ContentProvider是用来管理持久化数据并发布给其他应用程序使用的组件
《grant-uri-permission /》
《meta-data /》
《/provider》
《uses-library /》
《uses-configuration /》
《/application》
《/manifest》
下面是按照字母顺序排列的所有可以出现在manifest文件里的元素。它们是唯一合法的元素;你不能加入你自己的元素或属性。
《action》
《activity》
《activity-alias》
《application》
《category》
《data》
《grant-uri-permission》
《instrumentation》
《intent-filter》
《manifest》
《meta-data》
《permission》
《permission-group》
《permission-tree》
《provider》
《receiver》
《service》
《uses-configuration》
《uses-library》
《uses-permission》
《uses-sdk》
说明:AndroidManifest.xml文件的结构、元素,以及元素的属性,可以在Android SDK文档中查看详细说明。而在看这些众多的元素以及元素的属性前,需要先了解一下这些元素在命名、结构等方面的规则:
元素:在所有的元素中只有《manifest》和《application》是必需的,且只能出现一次。如果一个元素包含有其他子元素,必须通过子元素的属性来设置其值。处于同一层次的元素,这些元素的说明是没有顺序的。
属性:按照常理,所有的属性都是可选的,但是有些属性是必须设置的。那些真正可选的属性,即使不存在,其也有默认的数值项说明。除了根元素《manifest》的属性,所有其他元素属性的名字都是以android:前缀的;
定义类名:所有的元素名都对应其在SDK中的类名,如果你自己定义类名,必须包含类的数据包名,如果类与application处于同一数据包中,可以直接简写为“.”;
多数值项:如果某个元素有超过一个数值,这个元素必须通过重复的方式来说明其某个属性具有多个数值项,且不能将多个数值项一次性说明在一个属性中;
资源项说明:当需要引用某个资源时,其采用如下格式:@type :name 。 例如 《activity android:icon=”@drawable/icon ” . . . 》
字符串值:类似于其他语言,如果字符中包含有字符“\”,则必须使用转义字符“\\”;
四,详细说明值得一提一些常用之处:
1,几乎所有的AndroidManifest.xml(以及许多其他Android的xml的文件)在第一个元素中包含了命名空间的声明 xmlns:android=“
利用activity-alies解决微信支付的包名WXPayEntryActivity不一致问题
本文:
《activity-alies》 谷歌文档
微信支付 App文档
哪位高手用过activity-alias
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。
Android总Activity的启动模式分为四种:
Activity启动模式设置:
《activity android:name=“.MainActivity“ android:launchMode=“standard“ /》
Activity的四种启动模式:
1. standard
模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。
2. singleTop
如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。
3. singleTask
如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。
4. singleInstance
在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。
其中standard是系统默认的启动模式。
android alias目录在哪
Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,下载的代码包经过解压后(这里是Android2.2的源码包),源代码的第一层目录结构如下:
|-- Makefile
|-- bionic (bionic C库)
|-- bootable (启动引导相关代码)
|-- build (存放系统编译规则及generic等基础开发包配置)
|-- cts (Android兼容性测试套件标准)
|-- dalvik (dalvik JAVA虚拟机)
|-- development (应用程序开发相关)
|-- external (android使用的一些开源的模组)
|-- frameworks (核心框架——java及C++语言)
|-- hardware (主要保护硬解适配层HAL代码)
|-- libcore
|-- ndk
|-- device
|-- out (编译完成后的代码输出与此目录)
|-- packages (应用程序包)
|-- prebuilt (x86和arm架构下预编译的一些资源)
|-- sdk (sdk及模拟器)
|-- system (文件系统库、应用及组件——C语言)
`-- vendor (厂商定制代码)
bionic 目录
|-- libc (C库)
| |-- arch-arm (ARM架构,包含系统调用汇编实现)
| |-- arch-x86 (x86架构,包含系统调用汇编实现)
| |-- bionic (由C实现的功能,架构无关)
| |-- docs (文档)
| |-- include (头文件)
| |-- inet
| |-- kernel (Linux内核中的一些头文件)
| |-- netbsd (?netbsd系统相关,具体作用不明)
| |-- private (?一些私有的头文件)
| |-- stdio (stdio实现)
| |-- stdlib (stdlib实现)
| |-- string (string函数实现)
| |-- tools (几个工具)
| |-- tzcode (时区相关代码)
| |-- unistd (unistd实现)
| `-- zoneinfo (时区信息)
|-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能)
|-- libm (libm数学库的实现,)
| |-- alpha (apaha架构)
| |-- amd64 (amd64架构)
| |-- arm (arm架构)
| |-- bsdsrc (?bsd的源码)
| |-- i386 (i386架构)
| |-- i387 (i387架构?)
| |-- ia64 (ia64架构)
| |-- include (头文件)
| |-- man (数学函数,后缀名为.3,一些为freeBSD的库文件)
| |-- powerpc (powerpc架构)
| |-- sparc64 (sparc64架构)
| `-- src (源代码)
|-- libstdc++ (libstdc++ C++实现库)
| |-- include (头文件)
| `-- src (源码)
|-- libthread_db (多线程程序的调试器库)
| `-- include (头文件)
`-- linker (动态链接器)
`-- arch (支持arm和x86两种架构)
bootable 目录
|-- bootloader (适合各种bootloader的通用代码)
| `-- legacy (估计不能直接使用,可以参考)
| |-- arch_armv6 (V6架构,几个简单的汇编文件)
| |-- arch_msm7k (高通7k处理器架构的几个基本驱动)
| |-- include (通用头文件和高通7k架构头文件)
| |-- libboot (启动库,都写得很简单)
| |-- libc (一些常用的c函数)
| |-- nandwrite (nandwirte函数实现)
| `-- usbloader (usbloader实现)
|-- diskinstaller (android镜像打包器,x86可生产iso)
`-- recovery (系统恢复相关)
|-- edify (升级脚本使用的edify脚本语言)
|-- etc (init.rc恢复脚本)
|-- minui (一个简单的UI)
|-- minzip (一个简单的压缩工具)
|-- mtdutils (mtd工具)
|-- res (资源)
| `-- images (一些图片)
|-- tools (工具)
| `-- ota (OTA Over The Air Updates升级工具)
`-- updater (升级器)
build目录
|-- core (核心编译规则)
|-- history (历史记录)
|-- libs
| `-- host (主机端库,有android “cp”功能替换)
|-- target (目标机编译对象)
| |-- board (开发平台)
| | |-- emulator (模拟器)
| | |-- generic (通用)
| | |-- idea6410 (自己添加的)
| | `-- sim (最简单)
| `-- product (开发平台对应的编译规则)
| `-- security (密钥相关)
`-- tools (编译中主机使用的工具及脚本)
|-- acp (Android “acp“ Command)
|-- apicheck (api检查工具)
|-- applypatch (补丁工具)
|-- apriori (预链接工具)
|-- atree (tree工具)
|-- bin2asm (bin转换为asm工具)
|-- check_prereq (检查编译时间戳工具)
|-- dexpreopt (模拟器相关工具,具体功能不明)
|-- droiddoc (?作用不明,java语言,网上有人说和JDK5有关)
|-- fs_config (This program takes a list of files and directories)
|-- fs_get_stats (获取文件系统状态)
|-- iself (判断是否ELF格式)
|-- isprelinked (判断是否prelinked)
|-- kcm (按键相关)
|-- lsd (List symbol dependencies)
|-- releasetools (生成镜像的工具及脚本)
|-- rgb2565 (rgb转换为565)
|-- signapk (apk签名工具)
|-- soslim (strip工具)
`-- zipalign (zip archive alignment tool)
dalvik目录 dalvik虚拟机
.
|-- dalvikvm (main.c的目录)
|-- dexdump (dex反汇编)
|-- dexlist (List all methods in all concrete classes in a DEX file.)
|-- dexopt (预验证与优化)
|-- docs (文档)
|-- dvz (和zygote相关的一个命令)
|-- dx (dx工具,将多个java转换为dex)
|-- hit (?java语言写成)
|-- libcore (核心库)
|-- libcore-disabled (?禁用的库)
|-- libdex (dex的库)
|-- libnativehelper (Support functions for Android’s class libraries)
|-- tests (测试代码)
|-- tools (工具)
`-- vm (虚拟机实现)
development 目录 (开发者需要的一些例程及工具)
|-- apps (一些核心应用程序)
| |-- BluetoothDebug (蓝牙调试程序)
| |-- CustomLocale (自定义区域设置)
| |-- Development (开发)
| |-- Fallback (和语言相关的一个程序)
| |-- FontLab (字库)
| |-- GestureBuilder (手势动作)
| |-- NinePatchLab (?)
| |-- OBJViewer (OBJ查看器)
| |-- SdkSetup (SDK安装器)
| |-- SpareParts (高级设置)
| |-- Term (远程登录)
| `-- launchperf (?)
|-- build (编译脚本模板)
|-- cmds (有个monkey工具)
|-- data (配置数据)
|-- docs (文档)
|-- host (主机端USB驱动等)
|-- ide (集成开发环境)
|-- ndk (本地开发套件——c语言开发套件)
|-- pdk (Plug Development Kit)
|-- samples (演示程序)
| |-- AliasActivity ()
| |-- ApiDemos (API演示程序)
| |-- BluetoothChat (蓝牙聊天)
| |-- BrowserPlugin (浏览器插件)
| |-- BusinessCard (商业卡)
| |-- Compass (指南针)
| |-- ContactManager (联系人管理器)
| |-- CubeLiveWall** (动态壁纸的一个简单例程)
| |-- FixedGridLayout (像是布局)
| |-- GlobalTime (全球时间)
| |-- HelloActivity (Hello)
| |-- Home (Home)
| |-- JetBoy (jetBoy游戏)
| |-- LunarLander (貌似又是一个游戏)
| |-- MailSync (邮件同步)
| |-- MultiResolution (多分辨率)
| |-- MySampleRss (RSS)
| |-- NotePad (记事本)
| |-- RSSReader (RSS阅读器)
| |-- SearchableDictionary (目录搜索)
| |-- **JNI (JNI例程)
| |-- SkeletonApp (空壳APP)
| |-- Snake (snake程序)
| |-- SoftKeyboard (软键盘)
| |-- Wiktionary (?维基)
| `-- Wiktionary**(?维基例程)
|-- scripts (脚本)
|-- sdk (sdk配置)
|-- simulator (?模拟器)
|-- testrunner (?测试用)
`-- tools (一些工具)
更多文章:
oppo手机全部价格1500左右的(1500左右的oppo手机哪款性价比高)
2023年5月4日 00:40
步步高v205软件下载(步步高v205软件下载后如何安装 我需要详细教程)
2024年8月27日 22:40
偏振镜和减光镜选哪个(菜鸟弱弱的问一句,白天长时间曝光应该选减光镜还是偏光镜有点搞混了.nikon18-55,求推荐几款.)
2023年9月27日 02:20
游戏影音笔记本电脑配置单(基本上用来玩游戏 听音乐 看电影 的笔记本电脑的配置应该是怎样的)
2023年4月29日 09:20
映泰主板bios设置u盘启动装系统(映泰,教您映泰主板bios怎么设置u盘启动)
2024年2月26日 18:00
es300h二手车报价(2000年雷克萨斯es300h二手车报价)
2024年5月21日 11:08
amd a4 5300相当于i几(AMD Ryzn3 5300u相当于i5几代)
2024年7月15日 09:13
太原限号查询今天滨河路(太原滨河路限号2022最新限号时间)
2024年7月18日 02:33
i5速龙x4 620(速龙x4 620he 640性能相差大么 差多少)
2023年5月13日 11:20
金立e6mini拆机图解(金立M6手机做工怎么样 金立M6拆机图解评测)
2024年7月18日 13:46