Android清单mainfest一些属性

文章介绍了Android中如何控制Activity是否显示在最近应用列表,以及resizeableActivity属性对多窗口模式的影响。excludeFromRecents属性可以设置Activity是否出现在最近任务列表,而resizeableActivity则决定了应用是否支持多窗口显示及其行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 . excludeFromRecents控制在不在recent列表中显示

true时不显示;false显示,默认

  <activity
        android:name=".MainActivity"
        android:alwaysRetainTaskState="true"
        android:excludeFromRecents="true"
        android:exported="true"
        android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density"
        android:launchMode="singleInstance"
        android:resizeableActivity="${resizeable}"
        android:screenOrientation="landscape"
        android:windowSoftInputMode="adjustPan">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    </activity>

2.多窗口属性resizeableActivity

application标签下可设置全局
activity标签下可设置单个activity

android:resizeableActivity="${resizeable}"

这个属性的设置会导致三种情况:
① 如果不声明这个属性,那么默认允许进入多窗口模式,但是会有上面图片的提示(第一次运行的时候)
② 如果声明了这个属性,并设置值为true,那么允许进入多窗口模式,并且不会提示
③ 如果声明了这个属性,并设置值为false,那么不允许进入多窗口模式,只允许全屏显示

窗口变化属性configChanges
android:configChanges=“keyboardHidden|orientation|screenSize|mcc|mnc|keyboard|navigation”

多窗口下对应用窗口大小缩放,会触发Configuration变化,可能的变化有screenSize、smallestScreenSize、layoutDirection、screenLayout、orientation,建议Activity的manifest配置configChanges,否则Activity将被销毁重建,可能导致卡顿和跟体验差。

### Android Manifest 文件配置及用法 #### 一、Manifest文件的作用 每个安卓应用程序必须拥有一个`AndroidManifest.xml`文件,位于项目的根目录而非res下。此文件向系统提供关于应用的重要信息,确保在运行任何程序代码前满足特定条件[^2]。 #### 二、权限声明 为了使应用程序能够访问受保护的功能或数据,需在`<manifest>`标签内部通过添加`<uses-permission>`子元素的方式,在`AndroidManifest.xml`中明示所需的权限列表。例如要获取网络状态,则应写入如下语句: ```xml <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> ``` #### 三、组件注册 四大核心组件——Activity、Service、Broadcast Receiver以及Content Provider均需在此文档里定义并注册。对于活动界面而言,通常形式如下所示: ```xml <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> ``` #### 四、解决冲突问题 当遇到多个模块间存在同名属性而导致的合并失败(`Manifest merger failed`)错误时,可以在`<application>`节点处增加指定覆盖项来解决问题。比如针对可能重复设置的应用名称和备份选项可以这样做: ```xml <application ... tools:replace="label,allowBackup" ... > ... </application> ``` 注意这里引入了来自命名空间`tools`下的特殊属性用于指示Gradle构建工具处理方式[^3]。 #### 五、动态调整策略 尽管官方并不推荐直接修改已发布的APK内的`AndroidManifest.xml`内容,但在某些场景下确实可以通过反射机制或者借助于插件化框架实现间接性的功能增强或是行为改变。不过这类操作往往伴随着较高的风险和技术门槛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zz白龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值