标签的语法范例。
android:alwaysRetainTaskState=['true' | 'false']
android:clearTaskOnLaunch=['true' | 'false']
android:configChanges=['mcc', 'mnc', 'locale',
'touchscreen', 'keyboard', 'keyboardHidden',
'navigation', 'orientation', 'screenLayout',
'fontScale', 'uiMode']
android:enabled=['true' | 'false']
android:excludeFromRecents=['true' | 'false']
android:exported=['true' | 'false']
android:finishOnTaskLaunch=['true' | 'false']
android:hardwareAccelerated=['true' | 'false']
android:icon='drawable resource'
android:label='string resource'
android:launchMode=['multiple' | 'singleTop' | 'singleTask' | 'singleInstance']
android:multiprocess=['true' | 'false']
android:name='string'
android:noHistory=['true' | 'false']
android:permission='string'
android:process='string'
android:screenOrientation=['unspecified' | 'user' | 'behind' |
'landscape' | 'portrait' |
'sensor' | 'nosensor']
android:stateNotNeeded=['true' | 'false']
android:taskAffinity='string'
android:theme='resource or theme'
android:windowSoftInputMode=['stateUnspecified',
'stateUnchanged', 'stateHidden',
'stateAlwaysHidden', 'stateVisible',
'stateAlwaysVisible', 'adjustUnspecified',
'adjustResize', 'adjustPan'] >
... ...
Activity组件别名的声明标签,简单来说就是Activity的快捷方式,属性android:targetActivity表示的就是其相关的Activity名,当然必须是前面已经声明过的Activity。除此之外,其他比较常见的属性有:Activity别名名称android:name,别名开关android:enabled,权限控制android:permission等。另外,我们还需要注意的是,Activity别名也是一个独立的Activity,可以拥有自己的和元素,其语法范例如下。
android:exported=['true' | 'false']
android:icon='drawable resource'
android:label='string resource'
android:name='string'
android:permission='string'
android:targetActivity='string' >
... ...
与、、
用于Intent消息过滤器的声明,在前面的2.1.3.2节中我们已经对Android应用框架中的Intent消息作过比较详细的介绍,我们了解到Intent消息对于Android应用系统来说,是非常重要的“粘合剂”,元素可以放在、、和元素标签中,来区分可用于处理消息的Activity控制器、Service服务和广播接收器Broadcast Receiver。另外,我们还知道Intent消息还包含有名称、动作、数据、类别等几个重要属性。这点与该标签的写法也有一定的关系,比如中必须包含有元素,即用于描述具体消息的名称;标签则用于表示能处理消息组件的类别,即该Action所符合的类别;而元素则用于描述消息需要处理的数据格式,我们甚至还可以使用正则表达式来限定数据来源。当然,这些元素和标签的具体用法我们还需要慢慢学习,下面是标准元素标签的语法范例。
android:label='string resource'
android:priority='integer' >
android:mimeType='string'
android:path='string'
android:pathPattern='string'
android:pathPrefix='string'
android:port='string'
android:scheme='string' />
用于存储预定义数据,和类似,也可以放在、、和这四个元素标签中。Meta数据一般会以键值对的形式出现,个数没有限制,而这些数据都将被放到一个Bundle对象中,程序中我们则可以使用ActivityInfo、ServiceInfo甚至ApplicationInfo对象的metaData属性中读取。假设我们在一个Activity中定义了一个元素,相关示例用法如下。
ActivityInfo info = this.getPackageManager()
.getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
String testData = info.metaData.getString('testData');
System.out.println('testData:' + testData);
Service服务组件的声明标签,用于定义与描述一个具体的Android服务,主要属性有:Service服务类名android:name,服务图标android:icon,服务描述android:label以及服务开关android:enabled等。关于Service服务组件的概念和用法请参考2.1.4.2节的内容,以下是标签的语法范例。
android:exported=['true' | 'false']
android:icon='drawable resource'
android:label='string resource'
android:name='string'
android:permission='string'
android:process='string' >
... ...
Boardcast Receiver广播接收器组件的声明标签,用于定义与描述一个具体的Android广播接收器,其主要属性和标签有些类似:Boardcast Receiver接收器类名android:name,接收器图标android:icon,接收器描述android:label以及接收器开关android:enabled等。关于Boardcast Receiver广播接收器组件的概念和用法请参考2.1.4.3节的内容,以下是标签的语法范例。
android:exported=['true' | 'false']
android:icon='drawable resource'
android:label='string resource'
android:name='string'
android:permission='string'
android:process='string' >
... ...
与
除Activity、Service和Boardcast Receiver之外的另一个“四大组件”,也就是Content Provider内容提供者的声明标签。关于内容提供者组件的概念和用法请参考2.1.4.4节的内容,不再赘述。标签除了和其他组件相同的android:name、android:icon和android:label等基础属性之外,还提供了用于支持其功能的特殊属性,如:内容提供者标识名称android:authorities,对指定URI授予权限标识android:grantUriPermission以及具体的读、写权限,即android:readPermission和android:writePermission等。当然,这些属性的具体用法我们还需要慢慢学习,以下是标签的语法范例。
android:enabled=['true' | 'false']
android:exported=['true' | 'false']
android:grantUriPermissions=['true' | 'false']
android:icon='drawable resource'
android:initOrder='integer'
android:label='string resource'
android:multiprocess=['true' | 'false']
android:name='string'
android:permission='string'
android:process='string'
android:readPermission='string'
android:syncable=['true' | 'false']
android:writePermission='string' >
... ...