AndroidMainfest详解
基于TV settings和SettingsProvider
Android启动模式对activity行为的影响
AndroidManifest.xml文件详解
Manifest文件中,application和activity标签属性详解
android之manifest.xml内provider详解
coreApp
<manifest
···
coreApp="true"
···
</manifest>
- 在manifest中增加该属性,其实并不是代表该APP具有系统权限,而是把该类app归类为核心APP,核心app其实也是最小
Android framework系统。
android:supportsRtl
<application
···
android:supportsRtl="true"
··· >
- 声明你的application是否愿意支持从右到左(原来RTL就是
right-to-left的缩写...)的布局。如果设置为true,targetSdkVersion设置为17或更高,各种RTL的API将被激活,系统使用您的应用程序可以显示RTL布局。如果targetSdkVersion设置为16或更低的设置为false,RTL的API将被忽略或没有影响您的应用程序将具有相同的行为无论对用户现场的选择相关的布局方向(你的布局会从左至右)。此属性的默认值是false。 - Android 4.1(Jelly Bean)在 TextView 和 EditText 元素里对
双向文字顺序提供了有限的功能支持,允许应用程序在编辑和显示字符的时候,能够同时支持从左到右(LTR)以及从右到左(RTL)的排列格式。
android:configChanges
<activity
···
android:configChanges="keyboard|keyboardHidden|navigation"
··· >
- android中的组件Activity在manifest.xml文件中可以指定参数
android:ConfigChanges,用于捕获手机状态的改变。 - 在Activity中添加了
android:configChanges属性,在当所指定属性(Configuration Changes)发生改变时,通知程序调用onConfigurationChanged()函数。 - 设置方法:将下列字段用
|符号分隔开,例如:locale|navigation|orientation
mcc移动国家号码,由三位数字组成,每个国家都有自己独立的MCC,可以识别手机用户所属国家
mnc移动网号,在一个国家或者地区中,用于区分手机用户的服务商
locale所在地区发生变化
touchscreen触摸屏已经改变。(这不应该常发生)
keyboard键盘模式发生变化,例如:用户接入外部键盘输入
keyboardHidden用户打开手机硬件键盘
navigation导航型发生了变化。(这不应该常发生)
orientation设备旋转,横向显示和竖向显示模式切换
fontScale全局字体大小缩放发生改变
android:priority
<intent-filter
···
android:priority="3"
··· >
</intent-filter>
- Android:priority执行优先级,默认为0,值越大优先级越高。
- 优先级的概念用于描述控件的 intent的filter的类型。这个属性只对activity和 receivers是有意义的。
- 隐式调用activity的情况下:如果多个activity满足响应的条件,系统只会触发 priority高的那个activity。
- 有序广播发出的情况下:如果多个receiver满足响应的条件,系统会优先触发prioriyt搞的那个receiver。
- priority必须是整数,默认是0,范围是[-1000, 1000]
Android:clearTaskOnLaunch
<activity
···
android:clearTaskOnLaunch="true"
··· >
</activity>
- 假设有A,B两个Activity,在AndroidManifest.xml中将A Activity的设置了
android:clearTaskOnLaunch="true"
然后A中的操作启动了B,进入了B:
(1)如果此时用户按了Home键回到主屏幕上,然后又点击了主屏幕上的A的icon图标启动应用。那么此时不是进入B,而是进入了A
(2)如果用户按了屏幕下方的”最近任务列表“键,调出最近任务列表中,出现的是B,用户点击,此时又进入的是B
以上就是设置了android:clearTaskOnLaunch="true"后的Activity运行的细微差别。属性android:clearTaskOnLaunch,顾名思义,就是说,当设置此属性为true时候,每一次启动此Activity后,将清空以此Activity为根的Task
android:exported
<activity
···
android:exported="true"
··· />
- android:exported 是Android中的四大组件
Activity,Service,Provider,Receiver四大组件中都会有的一个属性
总体来说它的主要作用是:是否支持其它应用调用当前组件。
默认值:如果包含有intent-filter默认值为true;没有intent-filter默认值为false
excludeFromRecents
<activity
···
android:excludeFromRecents="true"
··· >
</activity>
android:excludeFromRecents="true",设置为true后,当用户按了最近任务列表时候,该Task不会出现在最近任务列表中,可达到隐藏应用的目的
android:windowSoftInputMode
<activity
···
android:windowSoftInputMode="stateVisible"
··· >
</activity>
- activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。
这个属性能影响两件事情:
【一】当有焦点产生时,软键盘是隐藏还是显示
【二】是否减少活动主窗口大小以便腾出空间放软键盘
它的设置必须是下面列表中的一个值,或一个state…值加一个adjust…值的组合。在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果。各个值之间用"|"分开。例如:
<activity Android:windowSoftInputMode="stateVisible|adjustResize". . . >
在这设置的值(除stateUnspecified和adjustUnspecified以外)将覆盖在主题中设置的值
各值的含义:
【A】
stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
【C】stateHidden:用户选择activity时,软键盘总是被隐藏
【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
【E】stateVisible:软键盘通常是可见的
【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分
android:noHistory
<activity
···
android:noHistory="true"
··· >
</activity>
- noHistory:如果设置true,当离开activity并不可见时,此activity会从栈中移除并不留下记录
- 默认值为false
android:enabled
<activity-alias
···
android:enabled="false"
··· >
</activity-alias>
- Android 系统能否实例化应用程序中的各组件 —
true表示可以,false表示不允许。 如果此值设为true,则由每个组件的 enabled 属性确定自身的启用或禁用。 如果此值设为false,则覆盖组件的设置值;所有组件都将被禁用 - 默认值是true
android:targetActivity
<activity-alias
···
android:targetActivity=".users.RestrictedProfileActivity"
··· >
</activity-alias>
- 这个属性用于设置通过别名所能够激活的那个Activity的名字。这个名字必须跟它前面的
<activity>元素的name属性匹配。
android:finishOnCloseSystemDialogs
<activity
···
android:finishOnCloseSystemDialogs="true"
··· >
</activity>
- 当
关闭系统窗口请求出现时是否销毁Activity,true为销毁
android:launchMode
<activity
···
android:launchMode="singleTop"
··· >
</activity>
- launchMode在多个Activity跳转的过程中扮演着重要的角色,称之为启动模式。有如下四种:
standard:不管有没有已存在的实例,都生成新的实例
singleTop:如果发现有对应的Activity实例正位于栈顶,则重复利用,不再生成新的实例
singleTask:如果发现有对应的Activity实例,则使此Activity实例之上的其他Activity实例统统出栈,使此Activity实例成为栈顶对象,显示到幕前
singleInstance:比较复杂,详见延伸阅读
延伸阅读:Activity的四种launchMode
android:killAfterRestore
<application
···
android:killAfterRestore="false"
··· >
</application>
- 在执行全系统的恢复操作时,配置恢复后相关的应用程序是否要被终止。 单个包的恢复操作不会导致程序被关闭。 全系统的恢复操作一般只会发生一次,即第一次配置手机时。 第三方应用程序通常不需要用到本属性
- 默认值是
true,表示全系统恢复过程中,应用程序在处理完数据后将被关闭
android:process
<application
···
android:process="system"
··· >
</application>
- 通过在声明文件中设置
android:process属性,我们可以让组件(例如Activity, Service等)和应用(Application)创建并运行于我们指定的进程中
android:allowClearUserData
<application
···
android:allowClearUserData="false"
··· >
</application>
- 是否给以用户删除用户数据的权限
- 如果为true应用管理者就拥有清除数据的权限;false没有
- 默认为true
android:backupAgent
<application
···
android:backupAgent="SettingsBackupAgent"
··· >
</application>
- 实现应用的备份代理的类名,BackupAgent的子类。这个属性的名称因该是全限定类名(如,
com.example.project.MyBackupAgent)。但是,如果名称的首字母被设置为点号,也可以为类名(如,.MyBackupAgent), 他将被追加到在< manifest />元素中定义的包名后 - 没有默认值
android:multiprocess
<application
···>
<provider
···
android:multiprocess="false"
··· >
</application>
- 该属性表示Activity的实例是否可以运行在启动它的组件所在的应用程序进程中。如果可以,则为true,否则为false
- 默认值是false
android:authorities
<application
···>
<provider
···
android:authorities="settings"
··· >
</application>
- 标识内容提供器范围内的数据URI的授权列表,有多个授权时,要用分号来分离每个授权
android:writePermission
<application
···>
<provider
···
android:writePermission="android.permission.WRITE_SETTINGS"
··· >
</application>
- 这个属性用于设置修改内容提供器的数据时,客户端所必须要有的权限
android:singleUser
<application
···>
<provider
···
android:singleUser="true"
··· >
</application>
- 表示单用户,所有用户使用的Activity是同一个,和singletop,singletask的区别是,无论如何启动,他总是一个
android:initOrder
<application
···>
<provider
···
android:initOrder="100"
··· >
</application>
- 这个属性用于定义内容提供器应该被实例化的顺序,这个顺序是相对与相同进程所拥有的其他内容提供器的。当内容提供器间有相互的依赖时,就需要设置这个属性,以确保它们能够按照其依赖的顺序被创建。这个属性值是一个简单的整数,大的数字要被优先初始化
AndroidMainfest详解的更多相关文章
- Android中Activity运行时屏幕方向与显示方式详解
现在我们的手机一般都内置有方向感应器,手机屏幕会根据所处位置自动进行横竖屏切换(前提是未锁定屏幕方向).但有时我们的应用程序仅限在横屏或者竖屏状态下才可以运行,此时我们需要锁定该程序Activity运 ...
- Android application 和 activity 标签详解
extends:http://blog.csdn.net/self_study/article/details/54020909 Application 标签 android:allowTaskRep ...
- Android apk签名详解——AS签名、获取签名信息、系统签名、命令行签名
Apk签名,每一个Android开发者都不陌生.它就是对我们的apk加了一个校验参数,防止apk被掉包.一开始做Android开发,就接触到了apk签名:后来在微信开放平台.高德地图等平台注册时,需要 ...
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
- EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解
前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
- Android Notification 详解(一)——基本操作
Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...
- Android Notification 详解——基本操作
Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...
随机推荐
- BZOJ 3812 主旋律 (状压DP+容斥) + NOIP模拟赛 巨神兵(obelisk)(状压DP)
这道题跟另一道题很像,先看看那道题吧 巨神兵(obelisk) 题面 欧贝利斯克的巨神兵很喜欢有向图,有一天他找到了一张nnn个点mmm条边的有向图.欧贝利斯克认为一个没有环的有向图是优美的,请问这张 ...
- JQuery 实践--让页面动起来
获取和设置元素特性特性属性:是指DOM元素中能够和HTML元素中某个特性对应得上的属性.通常JS特性属性的名称与对应的特性一一匹配,但class <=>className操作特性还是操作属 ...
- python第三方库的更新和安装指定版本
安装指定版本: pip install openpyxl==2.3.4 更新到最新版本: pip install --upgrade openpyxl
- VSCode 插件和快捷键(MAC)
1. 插件 1. JSON 格式优化--- JSON Tools 快捷键: 1). 格式化json字符串 Mac: Cmd+Option+M win: Ctrl+Alt+M 2).压缩json Ma ...
- 参数类型 (@Service层) impl
@Override public List<Map<String, Object>> selectAdvListByPosition(String adStructure, P ...
- CF #589 (Div. 2)C. Primes and Multiplication 快速幂+质因数
题目链接:https://www.luogu.org/problem/CF1228C 问题可以转化为:求质数 $p$ 在 $1\sim n$ 中的每个数中的次幂之和. 因为 $p$ 是一个质数,只能由 ...
- 在Android中使用OpenGL ES进行开发第(三)节:绘制图形
一.前期基础知识储备笔者计划写三篇文章来详细分析OpenGL ES基础的同时也是入门关键的三个点: ①OpenGL ES是什么?与OpenGL的关系是什么?——概念部分 ②使用OpenGLES绘制2D ...
- (转)初试 Netflix 开源持续云交付平台 Spinnaker
目录 Spinnaker 介绍 环境.软件准备 安装 Development Spinnaker 配置依赖环境 配置并安装 Spinnaker 演示 Spinnaker Pipeline 演示 Spi ...
- iOS开发系列--地图与定位总结
现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个陌生的 ...
- 黑马vue---46、vue使用过渡类名实现动画
黑马vue---46.vue使用过渡类名实现动画 一.总结 一句话总结: vue动画的过渡类名的时间点中没有设置样式的话就是默认的样式 使用 transition 元素,把 需要被动画控制的元素,包裹 ...