<manifest> <application> <activity/> <activity-alias/> <service/> <receiver> <provider> <grant-uri-permission/> <meta-data/> </provider> <uses-library/> </application> <uses-permission/> <permission/> <permission-tree/> <permission-group/> <instrumentation/> <uses-sdk/> <uses-configuration/> <uses-feature/> <supports-screens/> </manifest>
1 Manifest
<manifest <!--//定义android命名空间,使得各种 **标准属性** 能在文件中使用,提供了大部分元素中的数据--> xmlns:android="http://schemas.android.com/apk/res/android" <!--//指定本应用内java主程序包的包名,它也是一个应用进程的默认名称--> package="com.nnnn.mvp" <!--//代表应用程序代码的**相对版本**,对用户是可见的,它必须是一个int型的整数--> android:versionCode="1" <!--//代表应用程序的版本信息,字符串值,需要显示给用户--> android:versionName="1.0" <!--//默认情况下,每个APK分配一个唯一的UserID,拥有同一个User id的多个APK可以配置成运行在同一个进程中--> android:sharedUserId="wirelessqa.com" <!--//给共享的UserId定义了一个用户可读的标签,它只有在设置了sharedUserId属性的前提下才会有意义 用户id的可读名,且必 须为资源的引用。--> android:sharedUserLabel="string resource" <!--android:installLocation的值有三个 internalOnly ,auto,preferExternal,缺省值为internalOnly internalOnly表示该应用程序只能安装到手机内部存储中。 auto表示由系统决定该应用程序安装到手机内部存储中还是SD卡中。 如果有SD卡且应用程序大于5M的话,安装到SD卡 中,否则安排到手机内部存储中 preferExternal表示如果有SD卡就把该应用程序只能安装到SD卡中,否则安装到手机内部存储中。--> android:installLocation= "internalOnly" <uses-sdk <!--//指定了应用程序运行所需的操作系统的最低版本。--> android:minSdkVersion="17" <!--targetSdkVersion 是 Android 系统提供前向兼容的主要手段--> android:targetSdkVersion="17" /> </manifest>
2第二层(<Application>)属性
<!-- 标签application声明了每一个应用程序的组件及其属性。 --> <application <!-- 用户是否能选择自行清除数据。 --> android:allowClearUserData=["true(默认)" || "false"] <!--是否允许activity更换从属的任务。 --> android:allowTaskReparenting=["true(默认)" || "false"] <!-- **数据的备份和恢复功能** --> android:allowBackup="true" <!-- **申请更多的内存 api>=11** --> android:largeHeap="true" <!-- 设置该APP的备份,属性值应该是一个完整的类名 --> 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" <!-- activity的样式主题。 --> android:theme="@style/AppTheme" >
3第三层(Activity)属性
<activity android:name="view.MainActivity" android:label="@string/app_name" <!-- Activity在当前应用退居后台后,是否能从启动它的task移动到有共同affinity的task --> android:alwaysRetainTaskState =["true" || "false(默认)"] <!-- 是否从task清除除根Activity之外的所有的Activity。 --> android:clearTaskOnLaunch =["true" || "false(默认)"] <!-- 使Activity捕捉**设备状态变化** --> android:**configChanges** ="orientation|screenSize|keyboardHidden"//此时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法 <!-- 是否可被显示在recent列表(近期任务列表)(长按Home键出来的那个Dialo) --> android:excludeFromRecents =["true" || "false(默认)"] <!-- 当返回到这个Task时,是否该activity会被销毁,其他的不会被销毁。 --> android:finishOnTaskLaunch =["true" || "false(默认)"] <!-- (Activity加载模式)。 --> 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(默认)"] <!-- Activity在屏幕上不再可见时,Activity是否从Activity stack中清除并结束。 --> android:noHistory =["true" || "false(默认)"] <!-- activity显示的模式。 --> android:screenOrientation =["portrait" || "unspecified(默认)"] //默认为unspecified:由系统自动判断显示方向 landscape横屏模式,宽度比高度大 portrait竖屏模式, 高度比宽度大 user模式,用户当前首选的方向 behind模式:和该Activity下面的那个Activity的方向一致(在Activity堆栈中的) sensor模式:有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换 nosensor模式:忽略物理感应器,这样就不会随着用户旋转设备而更改了 <!--activity被销毁或者成功重启时是否保存状态 --> android:stateNotNeeded =["true" || "false(默认)"] <!-- activity主窗口与软键盘的交互模式 --> 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)属性
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
标签:xml,false,默认,软键盘,Activity,AndroidManifest,android,true From: https://www.cnblogs.com/opensmarty/p/17095632.html