Android清单文件详解(五)----<application>的属性详解(三)

简介: Android清单文件详解(五)----<application>的属性详解(三)

18.android:uiOptions


该属性用于开启Activity UI附加的扩展导航栏。在配置这个属性时,可供选择的值必须是下表所示的两个值中的一个。

描述
none 关闭扩展栏。如果没有配置android:uiOptions属性,此为默认值
splitActionBarWhenNarrow 当在横向空间受到限制时,比如当手机处于纵向模式,在屏幕底部添加一个状态栏来显示ActionBar中的动作项。只有少数的Action项会出现在动作栏中。操作栏将被分成顶部导航部分和用于动作项的底部栏。这就保证了有一个合理数量的空间可用。


需要说明的是,android:uiOption属性是自Android4.0以后才提供的。因此,在需要使用该属性的时候,孙弱保证使用Android4.0以后的SDK(API14)


下面举例说明如何使用这个属性。


①就拿刚刚新建的AppilcationTest项目来说,在Androidmanifest.xml中的<application>节点中加入如下代码:


android:uiOptions="splitActionBarWhenNarrow"


②在工程的/res.menu目录下新建一个菜单配置文件my_menu_cfg.xml。在该文件中配置如下代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/item1" android:title="show_item1" android:showAsAction="always|withText" android:icon="@drawable/abc_ic_menu_copy_mtrl_am_alpha"></item>
    <item android:id="@+id/item2" android:title="show_item2"></item>
    <item android:id="@+id/item3" android:title="show_item3" android:showAsAction="always|withText" android:icon="@drawable/abc_ic_menu_selectall_mtrl_alpha"></item>
</menu>


需要注意的是,我们把要显示为Action项的菜单项的android:showAsAction设置为always。


③新建一个Activity类,名为UIOptionActivity,实现onCreateOptionsMenu()方法加载my_menu_cfg.xml菜单布局,代码如下:

public class UIOptionActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.my_menu_cfg,menu);
        return super.onCreateOptionsMenu(menu);
    }
}


④编译运行项目,运行结果如下图。


可以发现,屏幕底部出现了状态栏。


这样刚刚配置的android:showAsAction的项目就显示出来了,剩余部分包含在框中的超出菜单里,单击它时才会显示出来。大家可以自行尝试一下去掉这个属性的效果。


在不需要操作栏的时候,只需要把andriod:uiOption设置为none或者onCreateOptionmenu()方法空实现。


69.png


19.android:vmSafeMode


此属性用于指示虚拟机是否在安全模式下运行,它是一个布尔值,当没有配置它的时候,其默认值为false。示例代码如下:

if(sa.getBoolean(com.android.internal.R.styleable.AndroidManifestApplication_vmsafeMode,false)){
ai.flags|=ApplicationInfo.FLAG_VM_SAFE_MODE;
}


20.android:largeHeap


此属性指示应用程序是否使用一个比较大的堆创建,它是一个布尔值,在没有配置的情况下,它的默认值是false,示例代码如下:

if(sa.getBoolean(com.android.internal.R.styleable.AndroidManifestApplication_largeHeap,false)){
ai.flags|=ApplicationInfo.FLAG_LARGE_HEAP;
}


至此,我们介绍完了<application>节点支持的所有节点的用法,代码实现,含义及用法。在开发应用程序的时候,开发者应该根据具体需求有选择的使用这些属性,以使应用程序更高效地运行。


要注意的是,作为应用程序的根节点,<application>节点必须包括在<manifest>节点中。而<application>节点本身还包括<activity>,<activity-alias>,<service>,<receiver>,<provider>和<uses-library>这几个节点。

相关文章
|
1月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
3月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
257 1
|
5月前
|
存储 数据库 Android开发
安卓Jetpack Compose+Kotlin,支持从本地添加音频文件到播放列表,支持删除,使用ExoPlayer播放音乐
为了在UI界面添加用于添加和删除本地音乐文件的按钮,以及相关的播放功能,你需要实现以下几个步骤: 1. **集成用户选择本地音乐**:允许用户从设备中选择音乐文件。 2. **创建UI按钮**:在界面中创建添加和删除按钮。 3. **数据库功能**:使用Room数据库来存储音频文件信息。 4. **更新ViewModel**:处理添加、删除和播放音频文件的逻辑。 5. **UI实现**:在UI层支持添加、删除音乐以及播放功能。
|
1月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
113 0
|
3月前
|
开发工具 git 索引
repo sync 更新源码 android-12.0.0_r34, fatal: 不能重置索引文件至版本 ‘v2.27^0‘。
本文描述了在更新AOSP 12源码时遇到的repo同步错误,并提供了通过手动git pull更新repo工具来解决这一问题的方法。
125 1
|
3月前
|
存储 监控 数据库
Android经典实战之OkDownload的文件分段下载及合成原理
本文介绍了 OkDownload,一个高效的 Android 下载引擎,支持多线程下载、断点续传等功能。文章详细描述了文件分段下载及合成原理,包括任务创建、断点续传、并行下载等步骤,并展示了如何通过多种机制保证下载的稳定性和完整性。
110 0
|
3月前
|
Android开发
AutoX——当Android中clickable属性显示为false,实际可点击的布局如何处理
AutoX——当Android中clickable属性显示为false,实际可点击的布局如何处理
60 0
|
5月前
|
缓存 Android开发 Kotlin
【安卓app开发】kotlin Jetpack Compose框架 | 先用OKhttp下载远程音频文件再使用ExoPlayer播放
使用 Kotlin 的 Jetpack Compose 开发安卓应用时,可以结合 OkHttp 下载远程音频文件和 ExoPlayer 进行播放。在 `build.gradle` 添加相关依赖后,示例代码展示了如何下载音频并用 ExoPlayer 播放。代码包括添加依赖、下载文件、播放文件及简单的 Compose UI。注意,示例未包含完整错误处理和资源释放,实际应用需补充这些内容。
|
5月前
|
存储 Android开发 Kotlin
开发安卓app OKhttp下载后使用MediaPlayer播放
在Android Jetpack Compose应用程序中,要使用OkHttp下载远程音频文件并在本地播放,你需要完成以下几个步骤: 1. **添加依赖**:确保`build.gradle`文件包含OkHttp和Jetpack Compose的相关依赖。 2. **下载逻辑**:创建一个`suspend`函数,使用OkHttp发起网络请求下载音频文件到本地。 3. **播放逻辑**:利用`MediaPlayer`管理音频播放状态。 4. **Compose UI**:构建用户界面,包含下载和播放音频的按钮。
|
6月前
|
Android开发
【苹果安卓通用】xlsx 和 vCard 文件转换器,txt转vCard文件格式,CSV转 vCard格式,如何批量号码导入手机通讯录,一篇文章说全
本文介绍了如何快速将批量号码导入手机通讯录,适用于企业客户管理、营销团队、活动组织、团队协作和新员工入职等场景。步骤包括:1) 下载软件,提供腾讯云盘和百度网盘链接;2) 打开软件,复制粘贴号码并进行加载预览和制作文件;3) 将制作好的文件通过QQ或微信发送至手机,然后按苹果、安卓或鸿蒙系统的指示导入。整个过程简便快捷,可在1分钟内完成。
157 6
下一篇
无影云桌面