每一个Android项目都包含一个Manifest.xml(清单),用于定义每一个应用程序机器组件和需求的结构和元数据
Manifest文件由一个根 manifest标签构成,该标签带有一个被设为项目包package属性。它通常包含一个
xmlns:android 属性来提供文件内使用的某些系统属性
versionCode 可以定义一个显示给用户的公共版本号。
installLocation 可以指是否允许将应用程序安装到外部存储器(SD卡)|preferExternal(愿意外部) auto系统决定
不指定属性则美容存储器存在内部
*含有以下程序不适合安装到外部存储器:
Widget Live Wallpaper
提供不中断服务的应用程
输入法引擎,安装到外部存储的任何IME都会被禁用。在外存储再次后可用,用户可以重新选择IME
设备管理器 DeviceAdminReceive及其管理能力将被禁用
<manifest xmls:android ="http://schemas.android.com/apk/res/andriod"
package="com.padd.myapp"
android:versionCode="1"
android:versionName=0.9 Beta"
android:installLocation="preferExternal"
>
</manifest>
节点(node)
uses-sdk 这个节点用于定义想正确运行应用程序必须具有的最低和最高SDK版本
maxSDKVersion
targetSDKVersion
*通常没有必要指定最高SDK八本
<uses-sdk android:minSdkVersion="6"
android:targetSdkVersion="15">
uses-configuration 指定应用程序支持的每个输入机制的组合。一般不包含这个节点,不过对于需要特殊输入控制的游戏来说可以指定输入依稀设备的任意组合:
reqFiveWayNav 如果输入设备能向上 向下 向左和向右导航,并且能够单击当前的选项,那么将需要这个属性指定为true.这包括追踪求和D-pad、
reqHardKeyboard 如果应用程序需要硬件键盘,则将此属性定义为true
reqKeyboardType 用于将键盘类型指定为 nokeys\qwerty\twelvekey或undefind中的一种.
reqNavigation 将属性值定为nonav\dpad\trackball\wheel或undefined中的一种,作为必须的导航设备
reqTouchScreen 选择notouch\stylus\fomger\undefined其中之一,以指定必须的触摸屏输入。
可以指定多个支持的配置,例如,指定设备具有触摸屏、追踪球以及一个QUERTY或12硬键盘
<uses-configuration android:reqTouchScreen="finger1"
android:reqNavigation="trackball"
android:reqHardKeyboard="true"
android:reqKeyboardType="qwerty"
/>
<uses-configuration android:reqTouchScreen="finger1"
android:reqNavigation="trackball"
android:reqHardKeyboard="true"
android:reqKeyboardType="twelvekey"
/>
uses-feature (特征) 可以在各种各样的硬件平台上运行
<uses-feature android:name="android.hardware.nfc">
音频
蓝牙
摄像头
位置
麦克风
NFC
传感器
电话服务
触摸屏
USB
WIFI
require (要求) true/false 把一些暗含的需求 如把摄像头要支持自动对焦功能在适合的地方指定选项即可
(hardware)硬件
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera,autofocus"
android:required="false"/
/> *auto focus(自动对焦)
<uses-feature android:name="android.hardware.camera.flash"
android:required="false"
/>
也可以使用OpenGL指定最低版本只需要使用glEsVersion属性
supports-screen指定用于那种设备的尺寸
smallScreens QVGA
normalScreens HVGA WVGA WQBGA
largeScreebs 比普通屏幕打的屏幕
xlargeScreens 比普通屏幕更大的屏幕
requiresSmallestWidthDp 允许用设备无关的像素指定支持最小的屏幕宽度
compatibleWidthLimitDp 制定一个上线
largestWidthLimitDp 指定一个绝对上线
<supports-screens android:smallScreens="false"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:requiresSmallestWidthDp="480"
android:compatibleWodthLimitDp="600"
android:largestWidhLimitDp="720"
/>
supports-gl-texture 提供特定的GL纹压所格式亚索的纹理资源
<supports-gl-textrue android:name="......">
uses-permission 安全模型(权限)
<uses-permission android:name="android,permissio.ACCESS_FINE_LOCATION">
instrumentation instrumentation测试框架(仪表)
application
<application android:icon="@drawable/icon"
android:logo="@drawable/log"
android:theme="@android:style/Theme.Light"
android:name=“.MyApplicationClass”
android:debuggable="true"
> icon(图标) theme(主题)
activity 应用程序每一个Activity都要求有一个activity标签,并使用android:name属性指定Activity类的名称。
每一个Activity节点都允许使用intent-filter子标签来定义用于启动Activity的Intent
<activity android:name=".MyActivity" android:lable="@string/app_name">
<intent-filter>
<action android: name="android.intent.action,MAIN"/>
<category android:name="android,intent.categrory,LAUNCHER"/> 类别 launcher发射器
</intent-filter>
</activity>
service
provider (供应商) 指定应用程序中的每一个Content Provider Content Provider用来管理数据库访问和共享
<provider android:name=".MyContentProvider"
android:authorities="com.paad,myaoo,MyContentProvider"/>
receiver(接收器)通过添加receiver标签可以注册一个 Broadcast Receiver不用事先启动程序
intent-filter子标签来定义触发接收器的Intent
<receiver android:name=".MyIntetnReceiver">
<intent-filter>
<action android:name="com,padd.mybroadcastaction">
</intent-filet>
</receiver>
uses-library 用于指定应用程序需要的共享库
<uses-library android:name="com.goole.android.maps"
android:required="false"/>