AndroidManifest.xml

​ Android应用的入口文件,它描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置

结构图

<?xml version="1.0"encoding="utf-8"?><manifest>    <uses-sdk/>     <uses-configuration/>     <uses-feature/>      <uses-permission/>    <permission/>    <permission-tree/>    <permission-group/>    <instrumentation/>     <supports-screens/>    <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>  manifest>

Manifest属性

manifest>
属性 解析
xmlns:android 定义android命名空间,以上固定写法,使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据
package 包名,应用进程的默认名称
sharedUserId 表明数据权限。默认情况下,每个APK有自己唯一一个UserID,放置相互访问数据。如设置一致,则可共享数据。(使用Share Preference等方法也可以)
sharedUserLabel 共享的用户名,需先设置sharedUserId属性
versionCode app更新次数
versionName 用户可查,如1.0,1.1等
installLocation 安装参数,Android 2.2新增。包含三个属性:internalOnly、auto、preferExternal
preferExternal:优先考虑将APK安装到SD卡上,最终决定权在用户
auto:系统自动判断
internalOnly:必须安装到内部内存中

Application属性

application>
属性 解析
allowClearUserData 用户是否能选择自行清除数据,默认true(在应用详情中的“清除数据”按钮)
allowTaskReparenting 是否允许activity更换从属的任务,如从短信息任务切换到浏览器任务
backupAgent Android2.2新特性,设置该APP的备份,一般设置为类名。不设置时,不备份
debuggable 是否可被调试,默认false。如设置为false的情况下进行调试会报错:
Device XXX requires that applications explicitely declare themselves as debuggable in their manifest.
Application XXX does not have the attribute ‘debuggable’ set to TRUE in its manifest and cannot be debugged.
description\label 许可相关,label为许可列表,description为许可详细信息
enabled Android系统是否能够实例化该应用程序的组件。true:每个组件的enabled属性决定那个组件是否可以被实例化。false:所有组件均不能实例化
hasCode 是否加载java代码。Android2.3后可用标准C来开发APP
icon APP的图标
killAfterRestore
manageSpaceActivity
name 注册自定义类继承Application类。如该自定义类在package下,则直接声明,如:android:name=”MyApplication”。
否则使用全路径,如:android:name=”package名称.子包名.MyApplication”
permission 设置各组件默认许可名,因此可以被各组件设置的许可名所覆盖
presistent 设置是否一直保持运行状态,默认false。
process 进程名,如不设置,则默认包名。
在两个或多个应用程序共享一个用户ID及被赋予了相同证书的时候可以设置相同的进程名。
可以被各组件设置的进程名所覆盖
restoreAnyVersion android2.2新特性,是否准备尝试恢复所有的备份,默认false
taskAffinity 拥有相同的affinity的Activity理论上属于相同的Task。具体见Activity的加载原理
theme 默认的主题风格,各Activity可覆盖

Activity属性

   activity>
属性 解析
alwaysRetainTaskState 是否保留状态不变,如切换回home
clearTaskOnLaunch c重新回到Activity中时,是否显示跳转过程。如:ActivityA启动ActivityB后,回到home,再回到ActivityB,是否显示ActivityA跳转到ActviityB的过程
configChanges 当配置list发生修改时, 调用onConfigurationChanged()
excludeFromRecents 是否可被显示在最近打开的activity列表里,默认false
finishOnTaskLaunch 重启任务时,是否显示已打开的Activity,默认false。与allowTaskReparenting配合使用
launchMode 加载模式
multiprocess 是否允许多进程,默认false
noHistory Activity不可见时,是否从Activity stack中清除并结束,默认false
screenOrientation 屏幕显示模式。unspecified:系统自动判断


landscape:横屏
portrait:竖屏
user:用户当前首选的方向
behind:与跳转的Activity一致
sensor:由物理的感应器决定
nosensor:忽略物理感应器 |
| stateNotNeeded | activity被销毁或者成功重启时是否保存状态 |
| windowSoftInputMode | 软键盘交互模式,Android1.5新特性
stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置

stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
stateHidden:用户选择activity时,软键盘总是被隐藏
stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
stateVisible:软键盘通常是可见的
stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分 |

intent-filter 属性

<intent-filter android:icon="drawable resource"android:label="string resource"android:priority="integer" ><action /><category /><data />intent-filter> 
属性 解析
priority 优先级,-1000~1000
action android.intent.action.MAIN:程序入口。
action值:http://hi.baidu.com/linghtway/blog/item/83713cc1c2d053170ff477a7.html>
category android.intent.category.LAUNCHER:应用程序是否显示在程序列表里)
取值:http://chroya.javaeye.com/blog/685871

meta-data属性

<meta-data android:name="string"           android:resource="resource specification"           android:value="string"/>
属性 解析
name 元数据项名字,保证唯一性,通常使用包名
resource 资源的一个引用,指定给这个项的值是该资源的id。该id值可通过Bundle.getInt()获取到
value 可通过bundle获取

activity-alias属性

​ 快捷方式相关属性

<intent-filter/> <meta-data/>activity-alias>
//快捷方式名称    <intent-filter><action android:name="android.intent.action.CREATE_SHORTCUT" /><category android:name="android.intent.category.DEFAULT" />     intent-filter> activity-alias>

Service属性

service>

Receiver属性

​ 与service一样

Provider属性

           <grant-uri-permission/>           <meta-data/>provider>

uses-library属性

​ 用户库,可自定义。所有android的包都可以引用

supports-screens属性

​ android1.6新特性,支持多屏幕机制,以下属性分别为是否支持大屏,中屏,小屏,多种不同密度

uses-configuration\uses-feature属性

​ 描述应用所需要的硬件和软件特性,以便防止应用在没有这些特性的设备上安装

uses-sdk属性

<uses-sdk android:minSdkVersion="integer"          android:targetSdkVersion="integer"          android:maxSdkVersion="integer"/>

instrumentation属性

​ 用于探测和分析应用性能等等相关的类,可以监控程序。初始化优于其他组件

permission\uses-permission\permission-tree\permission-group属性

待更新

更多相关文章

  1. android EditText设置不可写
  2. android“设置”里的版本号
  3. android studio Could not find com.android.support.constraint
  4. 在Fragment中设置控件点击方法,执行失败。
  5. Android(安卓)闹钟管理类的使用
  6. Android(安卓)给 app默认权限(不弹窗申请权限)
  7. Android设置通知栏/状态栏透明改变通知栏颜色和app最上部分颜色
  8. [RK3399][Android7.1.1] WifiAp:开机默认打开wifi热点
  9. android 设置中划线 下划线等

随机推荐

  1. Android开发笔记(八十五)手机数据库Realm
  2. Android开发学习笔记(十)实现一个简易的开
  3. Android使用Intent启动其他非系统应用程
  4. Android中bluetooth的架构
  5. Android(安卓)activity与service中的子线
  6. Eclipse如何打包生成Apk安装包实例(图)
  7. [android架构篇]mvp+rxjava+retrofit+eve
  8. Android(安卓)Aidl 机制
  9. Platform Dependent Compilation 多平台
  10. Android连接、断开蓝牙扫描枪时屏幕刷新