Android应用程序中的每一个Activity都必须在AndroidManifest.xml文件中通过标签声明才能使用。
设置Activity的基本信息
android:name是<activity>标签中唯一必须设置的属性,该属性表示窗口类的名称。
通常设置的是相对的类名(相对于<manidest>标签的package属性值),但也可以使用
绝对的类名,或是包含一部分包名的类名。也就是package属性值放前面,<activity>标签的android:name属性值放在后面。
android:label和android:icon属性分别用于设置窗口标题的文本和图像。如果表示主窗口,这俩个属性
也分别表示应用程序列表中的图像和下方的文本。
示例。
<application>
<activity
android:name="com.android.MainActivity"
android:icon="@drawable/icon"
android:label="@string/appName"
<!-- 通过下面代码将当前窗口设置成主窗口 -->
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
正常情况下系统会自动生成上面的代码。
屏幕方向切换(android:screenOrientation)
android:screenOrientation属于值为枚举类型,默认值是unspecified。
默认情况下,Activity会利用Android手机的传感器实现横竖屏的切换,也就是当手机在不同方向旋转后,系统会根据当前方向重新将窗口设为横屏或竖屏。
对于一个完全支持横竖屏切换的系统来说,可以支持4个屏幕方向。也就是说从手机的正常方向开始,按逆时针或顺时针每旋转90度是一个方向,直到旋转360度后回到正常手机方向,但对于标准的Android来说(就是说不包括类似小米这样第三方ROM)默认的就只有3个方向(180度不支持)。属性值有。
如果要在声明窗口指定屏幕旋转方向,需要使用<activity>标签的android:screenOrientation属性,如果用java代码设置窗口的屏幕旋转方向,需要调
用Activity.setRequestedOrientation方法。
阻止Activity销毁和重建(android:configChanges)
android:configChanges属性值为枚举类,无默认值。
默认情况下,配置变化后,Activity会自己通过销毁和重新创建窗口的方式处理这些情况。例如,屏幕旋转和尺寸改变,这一过程会调用Activity.onDestroy方法销毁当前窗口对象。
通过标签的android:configChanges属性值设为某一项或某几项配置,那么当这些配置发生变化后,系统将不再执行默认的动作,而是允许开发人员在Android.configurationChanged方法中处理配置的变化。
注意
屏幕旋转方向的配置变化只能检测出横屏和竖屏,并不能详细区分是正向横屏(landscape),正向竖屏(portrait),反
向横屏(reverseLandscape)和方向竖屏(reversePortrait)。所以landscape和reverseLandscape获得的屏幕旋转方向都是
Configuration.ORIENTATION_LANDSCAPE,同理
获得是Configyrtion.ORIENTATION_PORTRAIT.
允许Activity被实例化(android:enabled)
android:enabled属性值为布尔类型,默认为true。
在最近应用列表中显示(android:excludeFromRecents)
android:excludeFromRecents属性值为布尔类型,默认值是false。
允许其他程序访问当前窗口(android:exported)
android:exported属性值为布尔类型,默认值是true。
硬件加速(android:hardwareAccelerated)
android:hardwareAccelerated属性值为布尔类型,默认为false。
从Android 3.0开始,支持基于OpenGL的硬件加速技术,如果设为true,表示当前窗口在Canvas,Paint,Xfermode,ColorFilter,Shader和Camera上的大多数操作将被加速。加速的结果就是使动画和滚动更加平滑,并且拥有更快的响应速度。要注意的是,这里的OpenGL硬件加速并不需要显示的调用OpenGL API,系统会处理。
当然也有代价的,代价就是占用更多的内存和CPU的计算时间,因此,在任何情况下使用不是一个好主意。
在多进程中创建窗口实例(android:multiprocess)
android:multiprocess属性值为布尔类型,默认值是false。
无法返回的Activity(android:noHistroy)
android:noHistroy属性值为布尔类型,默认值是false。
指定要返回的窗口(android:parentActivityName)
android:parentActivityName属性值为字符串类型,无默认值。
使窗口受到权限的保护(android:permission)
android:permission属性值为枚举类型,无默认值。该属性值可输入的内容为Android支持的权限。
改变窗口所在的进程(amdroid:process)
amdroid:process属性值为字符串类型,无默认值。
默认情况下,一个Android应用程序(apk文件)只建立一个进程(进程名为当前应用程序的包名),该程序中所有组件(Activity,Service等)都运行在这个进程中。但为了满足某些特殊需求,Android系统允许为程序的某个组件单独建立一个进程(为了使组件之间保持相对独立性),也允许不同应用程序中的多个组件共享一个进程(为了节省内存空间和共享数据)。
amdroid:process属性的值有俩种类型的值。
以冒号(:)开头,如android:process=”:new_process”。系统会为当前组件在当前应用程序中创建一个私有的进程。
以小字母开头。系统会使当前组件运行在amdroid:process属性指定的全局进程中,但要注意,这个全局进程要存在,否则无法安装。
不保存窗口状态(android:stateNoNeeded)
android:stateNoNeeded属性值为布尔类型,默认值是false。
窗口的主题(android:theme)
android:theme属性值为字符串类型,无默认值。
可以引用风格(style)资源,也可以使用系统指定的主题
扩展窗口UI(android:uiOptions)
android:uiOptions属性值为枚举类型,默认值是none。
只能设置俩个。
none:不需要扩展
splitActiobBarWhenNarrow:为了使用屏幕的不同状态,会自动调整ActionBar,导航条,菜单项等界面元素。
设置输入法显示模式(android:windowSoftlnputMode)
android:windowSoftlnputMode属性值诶枚举类型,默认值是stateUnspecified adjustUnspecified。
会对软键盘有影响
。
activity xml 属性基本上就介绍完了。
还有activity的高级应用以后再写,例如activity的堆栈,别名等。