结构
继承关系
public final class Manifest extends Object
java.lang.Object
android.Manifest
内部类
- class Manifest.permission权限
- class Manifest.permission_group权限组
构造函数
public Manifest ()
详细
android:allowTaskReparenting
- 用法<application android:allowTaskReparenting="true/false"></application>
- 是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。
- 用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)
- “true”,能移动
- “false”,它必须呆在启动时呆在的那个Task里。默认值为“false”
一般来说,当Activity启动后,它就与启动它的Task关联,并且在那里耗尽它的整个生命周期。当当前的Task不再显示时,你可以使用这个特性来强制Activity移动到有着affinity的Task中。典型用法是:把一个应用程序的Activity移到另一个应用程序的主Task中。
例如,如果e-mail中包含一个web页的链接,点击它就会启动一个Activity来显示这个页面。这个Activity是由Browser应用程序定义的,但是,现在它作为e-mail Task的一部分。如果它重新宿主到Browser Task里,当Browser下一次进入到前台时,它就能被看见,并且,当e-mail Task再次进入前台时,就看不到它了。
Actvity的affinity是由taskAffinity特性定义的。Task的affinity是通过读取根Activity的affinity 决定。因此,根据定义,根Activity总是位于相同affinity的Task里。由于启动模式为“singleTask”和 “singleInstance”的Activity只能位于Task的底部,因此,重新宿主只能限于“standard”和“singleTop”模式。
android:alwaysRetainTaskState
- 用法<activity android:alwaysRetainTaskState="true/false"></activity>
-
标记Activity所在的Task的状态是否总是由系统来保持
- “true”,表示总是
- “false”,表示在某种情形下允许系统恢复Task 到它的初始化状态。默认值是“false”。
- 这个特性只针对Task的根Activity有意义;对其它Activity来说,忽略之。
一般来说,特定的情形如当用户从主画面重新选择这个Task时,系统会对这个Task进行清理(从stack中删除位于根Activity之上的所有Activivity)。典型的情况,当用户有一段时间没有访问这个Task时也会这么做,例如30分钟。
然而,当这个特性设为“true”时,用户总是能回到这个Task的最新状态,无论他们是如何启动的。
例如,像Browser应用程序,这里有很多的状态(例如多个打开的Tab),用户不想丢失这些状态。
android:clearTaskOnLanunch
- 用法<activity android:clearTaskOnLanunch=”true/false”></activity>
- 标记是否从Task中清除所有的Activity,除了根Activity外(每当从主画面重新启动时)
- “true”,表示总是清除至它的根 Activity,
- 每次用户重新启动这个Task时,都会进入到它的根Activity中,不管这个Task最后在做些什么,也不管用户是使用 BACK还是HOME离开的。
- “false”表示不。默认值是“false”。
- 可能会在一些情形下(参考alwaysRetainTaskState特性)清除Task的 Activity,但不总是。
- 这个特性只对启动一个新的Task的Activity(根Activity)有意义; 对Task中其它的Activity忽略。
假设,某人从主画面启动了Activity P,并从那里迁移至Activity Q。接下来用户按下HOME,然后返回Activity P。一般,用户可能见到的是Activity Q,因为它是P的Task中最后工作的内容。然而,如果P设定这个特性为“true”,当用户按下HOME并使这个Task再次进入前台时,其上的所有的
Activity(在这里是Q)都将被清除。因此,当返回到这个Task时,用户只能看到P。
如果这个特性和allowTaskReparenting都设定为“true”,那些能重新宿主的Activity会移动到共享affinity的Task中;剩下的Activity都将被抛弃,如上所述。
android:configChanges
当配置list发生修改时, 是否调用 onConfigurationChanged() 方法比如 "locale|navigation|orientation".
举例:在按下power键时,直接在应用程序里onPause处理就好。当app是竖屏时,这样处理没问题。但是当app是横屏时,按下power键,app会强制回到竖屏,并且会重新调用activity的onCreate。很多时候这不是预期结果,所以就会用到android:configChanges。
在配置文件里设置android:configChanges=”keyboardHidden|orientation”,这样在屏幕方向改变的时候就不会重新调用activity的onCreate()方法,而是调用onConfigurationChanged(),然后在activity里面重在下。
@Override
public void onConfigurationChanged(Configuration newConfig){
super.onConfigurationChanged(newConfig);
if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
//横向
}else{
//竖向
}
}
android:enabled
- activity 是否可以被实例化
- 用法:<activity android:enabled="true"></activity>
android:excludeFromRecents
- 是否可被显示在最近打开的activity列表里
- 用法:<activity android:excludeFromRecents="true"></activity>
android:exported
是否允许activity被其它程序调用
android:finishOnTaskLaunch
用来标记当用户再次启动它的Task(在主画面选择这个Task)时已经存在的Activity实例是否要关闭(结束)
“true”,表示应该关闭
“false”表示不关闭。默认值是“false”。
如果这个特性和allowTaskReparenting都设定为“true”,这个特性胜出。Activity的affinity忽略。这个 Activity不会重新宿主,但是会销毁。
android.icon
- 加在应用程序图标
- 用法:<application android:icon="@drawable/xx_icon"></application>
android:label
定义了每个title栏的名称,但是优先级低于activity中的setTitle()
android:launchMode
用于指示Activity如何启动。这里有四种模式,与Intent对象中的Activity Flags(FLAG_ACTIVITY_*变量)共同作用,来决定Activity如何启动来处理Intent。它们是:
"standard"
"singleTop"
"singleTask"
"singleInstance"
默认模式是“standard”。
“standard”和“singleTop”为第一组,“singleTask”和“singleInstance”为第二组。
第一组可以被实例化很多次。这些实例可以属于任何task并且可以位于activity stack的任何位置。典型的情况是,它们会进入调用startActivity()的Task(除非Intent对象包含 FLAG_ACTIVITY_NEW_TASK标志,在这种情况下会选择一个不同的Task——参考taskAffinity特性)。
taskAffinity详情可见http://blog.csdn.net/zhaoyazhi2129/article/details/28290293
android:multiprocess
允许多进程
android:name
activity的类名, 必须指定
android:onHistory
是否需要移除这个activity当用户切换到其他屏幕时。 这个属性是 API level 3 中引入的
android:permission
http://blog.csdn.net/zhaoyazhi2129/article/details/8998575
android:process
一个activity运行时所在的进程名,所有程序组件运行在应用程序默认的进程中,这个进程名跟应用程序的包名一致。
<application>中的元素process属性能够为所有组件设定一个新的默认值。但是任何组件都可以覆盖这个默认值,允许你将你的程序放在多进程中运行。如果这个属性被分配的名字以:开头,当这个activity运行时, 一个新的专属于这个程序的进程将会被创建。如果这个进程名以小写字母开头,这个activity将会运行在全局的进程中,被它的许可所提供。
android:screenOrientation
activity显示的模式,
"unspecified" 默认值"landscape" 风景画模式,宽度比高度大一些"portrait" 肖像模式, 高度比宽度大。"user" 用户的设置"behind""sensor" "nosensor"
android:stateNotNeeded
是否 activity被销毁和成功重启并不保存状态
android:taskAffinity
activity的亲属关系, 默认情况同一个应用程序下的activity有相同的关系
android:theme
activity的样式主题, 如果没有设置,则activity的主题样式从属于应用程序, 参见<application>元素的theme属性
android:windowSoftInputMode
activity主窗口与软键盘的交互模式, 自从API level 3 被引入
分享到:
相关推荐
### Android Manifest.xml 文件详解 #### 一、Manifest.xml 文件概览 `Manifest.xml` 是 Android 应用程序的核心配置文件之一,它定义了应用程序的基本结构和行为,包括应用的组件(如 Activity、Service 和 ...
`AndroidManifest.xml` 是每个 Android 应用项目中的核心配置文件,位于项目的根目录下。该文件主要用于描述应用的基本信息及其内部组件,例如 Activity、Service、BroadcastReceiver 和 ContentProvider 等,并且还...
GSYVideoPlayer提供了很多自定义选项,如全屏模式、控制栏显示、清晰度切换等,可以根据需求进行设置。 总的来说,通过结合JCameraView和GSYVideoPlayer,我们可以轻松实现Android应用中的微信式拍摄、录制视频以及...
manifest.xml$ python code_fetcher.py -d nfc -m manifests/nfc-manifest.xml -b master默认是下载android10-release分支,可以使用-b选项指定下载分支,其他分支名可以通过下载一个仓库后git branch -a查看鸣谢...
在Android中,拍照通常涉及到`Manifest.permission.CAMERA`权限。在6.0及以上版本,即使在AndroidManifest.xml中声明了此权限,也需要在运行时请求。 ```java if (ContextCompat.checkSelfPermission(this, ...
此外,需要注意的是,从Android 6.0(API级别23)开始,部分危险权限在运行时需要用户动态授予,即使在Manifest中声明了也不行。因此,对于这些权限,需要在运行时检查和请求。 在实现拨号功能时,还要考虑用户体验...
<=<activity android:name=")[^"]*' manifest.xml) echo "包名: $PACKAGE_NAME" echo "类名: $CLASS_NAME" # 清理临时文件 rm apk_file.apk manifest.xml ``` 请替换`com.example.myapp`为你要查询的实际包名。...
你可以使用` jarsigner `命令行工具或集成在Android Studio中的签名选项进行签名操作。 总结,修改Android系统时间需要在Manifest中声明`CHANGE_SYSTEM_TIME`权限,并可能需要在运行时动态请求。在API 26以上,系统...
� GPS 卫星导航功能,手机照相, MP3 ,蓝芽等均被列为 Android 所提供支持的基本选项。 � Android 的平台基本上是免费的,虽然有部份原生链接库会要求费用,但大部份是免权利金; Android 的 程序可以采用 JAVA ...
dom = xml.dom.minidom.parse("d:/android_source/manifest/default.xml") root = dom.documentElement prefix = git_exe + " clone https://android.googlesource.com/" suffix = ".git" if not os.path.exists...
在Android应用中,如果需要访问互联网,需要在AndroidManifest.xml文件中声明相应的权限。这可以通过在`<manifest>`标签内添加以下代码来实现: ```xml <uses-permission android:name="android.permission....
在Android中,我们可以使用`AlertDialog.Builder`来创建这个对话框,并为每个选项添加一个监听器。当用户点击其中一个选项时,我们需要启动相应的Intent来打开相册或相机。 1. **从相册选择图片**: 使用`Intent....
1. 遵循Android权限管理,确保在Manifest.xml中添加了读取存储的权限: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> ``` 2. 对于Android 6.0及以上版本,需要在运行时...
DEX文件是Android虚拟机(Dalvik或ART)执行的字节码,而Manifest.xml则定义了应用的组件、权限和其他设置。 AndroidKiller的主要功能包括: 1. **DEX文件解析**:它可以将DEX文件反编译为Java源代码,这样用户就...
8. **LinearLayout**:要实现组件垂直排列,需要在`LinearLayout`的XML属性中设置`android:orientation="vertical"`,对应选项A。 9. **Activity的label属性**:在`AndroidManifest.xml`中,Activity的`label`属性...
为了显示地图并启用定位,我们需要创建一个GoogleMap对象,并设置地图类型和定位选项。在onMapReady()回调中: ```java @Override public void onMapReady(GoogleMap googleMap) { map = googleMap; map....
2. 在AndroidManifest.xml中声明Activity:需要在manifest文件中添加对应的Activity声明,并指定它的主题为`android:theme="@android:style/Theme.Holo.Preference"`或其兼容版本,以便获得适当的样式。 ```xml ...
为了确保音乐在设备休眠时也能持续播放,可能需要在`Manifest.xml`中声明`WAKE_LOCK`权限,并在`Service`中获取并释放电源锁。 9. **持久化数据存储**: 如果音乐列表较大,可以考虑使用SQLite数据库或...
数字签名是Android应用的签名证书SHA1值,可以通过Eclipse的Preferences菜单在Android Build选项中查看。获取SHA1值后,将其与包名一同填入,即可创建应用并获得API Key。 2. **下载SDK开发包** 百度地图提供了多...