1 Manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.nnnn.mvp"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="wirelessqa.com"
android:sharedUserLabel="string resource"
android:installLocation= "internalOnly"
android:minSdkVersion="17"
android:targetSdkVersion="17"
/>
2第二层()属性
android:allowClearUserData=["true(默认)" || "false"]
android:allowTaskReparenting=["true(默认)" || "false"]
android:allowBackup="true"
android:largeHeap="true"
android:backupAgent=="@string/xxx"
android:debuggable=["true" || "false(默认)"]
android:description="@string/xxx"
android:enabled=["true(默认)" || "false"]
android:hasCode=["true(默认)" || "false"]//此APP是否包含任何的代码
android:killAfterRestore=["true(默认)" || "false"]//在整型系统重置操作中,当他的 设置被重置后,应用是否应该被终止。单个包的重置操作不会引起应用被关闭。整个系统的恢复操 作仅 代表性的发生一次,当电话第一次被设置时。第三方应用将不会经常使 用此属性。意思是,当整个系统被恢复时,应用运行玩他的数据后,将会终止。
android:manageSpaceActivity=".activityname"**//**指定一个Activity来管理数据
android:name=".myApplication"//设置你所有activity所属于哪个application的,默认是
android.app.Application,你也可以自己定义一个Application
//以上三个当应用程序进程开始时,该类在所有应用程序组件之前被实例化。
android:permission="android.permission.XXX"//服务访问权限
android:persistent=["true" || "false(默认)"]//应用是否在所有时间下都保持运行。
android:process =""//为应用下的组件定一个运行进程名称。每个组件可以定义自己的进程名 称通过设置自己的process属性。process分私有进程和全局进程,私有进程的名称前面有冒号,全局进程没有
android:restoreAnyVersion=["true" || "false(默认)"]是否准备尝试恢复所有的备份,甚至该备份是比当前设备上更要新的版本
android:taskAffinity ="string"//拥有相同的affinity的Activity理论上属于相同的Task,应用程序默认的affinity的名字是元素中设定的package名
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
3第三层(Activity)属性
android:name="view.MainActivity"
android:label="@string/app_name"
android:alwaysRetainTaskState =["true" || "false(默认)"]
android:clearTaskOnLaunch =["true" || "false(默认)"]
android:**configChanges** ="orientation|screenSize|keyboardHidden"//此时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
android:excludeFromRecents =["true" || "false(默认)"]
android:finishOnTaskLaunch =["true" || "false(默认)"]
android:launchMode =["standard(默认)"|"singleTop"|"singleTask"|"singleTask"]
//standard:就是intent将发送给新的实例,所以每次跳转都会生成新的activity。
singleTop:也是发送新的实例,但不同standard的一点是,在请求的Activity正好位于栈顶时(配置成singleTop的Activity),不会构造新的实例
singleTask:和后面的singleInstance都只创建一个实例,当intent到来,需要创建设置为singleTask的Activity的时候,系统会检查栈里面是否已经有该Activity的实例。如果有直接将intent发送给它。
android:multiprocess =["true" || "false(默认)"]
android:noHistory =["true" || "false(默认)"]
android:screenOrientation =["portrait" || "unspecified(默认)"]
//默认为unspecified:由系统自动判断显示方向
landscape横屏模式,宽度比高度大
portrait竖屏模式, 高度比宽度大
user模式,用户当前首选的方向
behind模式:和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)
sensor模式:有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换
nosensor模式:忽略物理感应器,这样就不会随着用户旋转设备而更改了
android:stateNotNeeded =["true" || "false(默认)"]
android:windowSoftInputMode ="stateUnspecified">
【A】当有焦点产生时,软键盘是隐藏还是显示
【B】是否减少活动主窗口大小以便腾出空间放软键盘
各值的含义:
【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
【C】stateHidden:用户选择activity时,软键盘总是被隐藏
【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
【E】stateVisible:软键盘通常是可见的
【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分
4第四层(Intent)属性