android Manifest.xml选项(部分属性用法详解)

Manifest.xml下的一些属性定义和用法:

----------------------------------------------------------------------------------------------------------------------------------

android:allowTaskReparenting        

 

         用法<application android:allowTaskReparenting="true/false"></application>

是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。

用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)——“true”,表示能移动,“false”,表示它必须呆在启动时呆在的那个Task里。

        如果这个特性没有被设定,设定到<application>元素上的allowTaskReparenting特性的值会应用到Activity上。默认值为“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,“false”表示不。默认值是“false”。这个特性只对启动一个新的Task的Activity(根Activity)有意义; 对Task中其它的Activity忽略。

         当这个值为“true”,每次用户重新启动这个Task时,都会进入到它的根Activity中,不管这个Task最后在做些什么,也不管用户是使用 BACK还是HOME离开的。当这个值为“false”时,可能会在一些情形下(参考alwaysRetainTaskState特性)清除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特性)。

--------------------------------------------------------------------------------------------------------------------------------

 

android:multiprocess

允许多进程

--------------------------------------------------------------------------------------------------------------------------------

android:name

 

activity的类名, 必须指定

 

-------------------------------------------------------------------------------------------------------------------------------

android:onHistory

是否需要移除这个activity当用户切换到其他屏幕时。 这个属性是 API level 3 中引入的

-------------------------------------------------------------------------------------------------------------------------------

 

android:permission

-------------------------------------------------------------------------------------------------------------------------------

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 被引入


Manifest.permission继承关系

public static final class Manifest.permission extends Object

 

java.lang.Object

                            android. Manifest.permission

Manifest中的权限

ACCESS_CHECKIN_PROPERTIES

允许在登入数据库的时候读写其中的属性表,并上传改变的值

ACCESS_COARSE_LOCATION

允许应用访问范围(如WIFI)性的定位

ACCESS_FINE_LOCATION

允许应用访问精确(如GPS)性的定位

ACCESS_LOCATION_EXTRA_COMMANDS

允许应访问额外的提供定位的指令

ACCESS_MOCK_LOCATION

允许应用创建用于测试的模拟定位提供者

ACCESS_NETWORK_STATE

允许应用访问网络上的信息

ACCESS_SURFACE_FLINGER

允许应用使用低版本视图的特征

ACCESS_WIFI_STATE

允许应用访问关羽Wi-Fi网络的信息

ACCOUNT_MANAGER

允许应用进入帐户认证

AUTHENTICATE_ACCOUNTS

允许应用为ACCOUNT_MANAGER扮演一个帐户认证系统 

BATTERY_STATS

允许应用去统计电源信息

BIND_APPWIDGET

允许应用告诉AppWidget哪个应用能够访问该AppWidget的数据

BIND_DEVICE_ADMIN

必须通过关机接收者的请求来确保只有系统能够与之交互

BIND_INPUT_METHOD

必须通过InputMethodService的请求来确保只有系统能够与之绑定

BIND_WALLPAPER

必须通过WallpaperService的请求来确保只有系统能够与之绑定

BLUETOOTH

允许应用去连接蓝牙设备

BLUETOOTH_ADMIN

允许应用找到与之连接的蓝牙设备

BRICK

被请求废止设备(非常危险)

BROADCAST_PACKAGE_REMOVED

允许应用发出一个程序包被移除的广播消息

BROADCAST_SMS

允许应用发出一个收到短信的消息

BROADCAST_STICKY

允许应用发出一个与intent相连的消息

BROADCAST_WAP_PUSH

允许应用发出一个收到WAP PUSH的广播消息

CALL_PHONE

允许应用启动一个用户确认电话被拨打而不通过拨打电话的用户界面的的拨打程序

CALL_PRIVILEGED

允许应用启动一个用户确认电话被拨打而不通过拨打电话的用户界面的的任意号码的拨打,包括紧急号码.

CAMERA

能够启动照相机设备的请求

CHANGE_COMPONENT_ENABLED_STATE

允许应用去改变一个应用是否是激活状态

CHANGE_CONFIGURATION

允许应用修改当前的配置,如本地设置

CHANGE_NETWORK_STATE

允许应用改变网络的连接状态

CHANGE_WIFI_MULTICAST_STATE

允许应用进入Wi-Fi的组播方式

CHANGE_WIFI_STATE

允许应用改变Wi-Fi的连接状态

CLEAR_APP_CACHE

允许应用清除所有安装在设备上的应用的缓存

CLEAR_APP_USER_DATA

允许应用清除使用者的信息资料

CONTROL_LOCATION_UPDATES

允许从广播设备来更新或不更新本地的消息

DELETE_CACHE_FILES

允许应用删除掉缓存文件

DELETE_PACKAGES

允许应用删除掉程序包

DEVICE_POWER

允许低权限的访问电源管理项

DIAGNOSTIC

允许应用诊断程序资源

DISABLE_KEYGUARD

允许应用禁用键盘锁

DUMP

允许应用从系统服务中恢复转储的信息

EXPAND_STATUS_BAR

允许应用扩大或缩小状态栏

FACTORY_TEST

如制造商测试的应用一样用终极权限用户运行

FLASHLIGHT

允许访问手电筒

FORCE_BACK

允许应用强制的返回操作而不论是不是最终的activity

GET_ACCOUNTS

允许应用访问账目服务中的统计清单

GET_PACKAGE_SIZE

允许应用查找出任何程序包使用的空间

GET_TASKS

允许应用找到关于当前或最近运行的任务和在哪些acitivities里运行

GLOBAL_SEARCH

这个权限可以被内容提供者用来允许使用全程搜索他们的数据

HARDWARE_TEST

允许访问硬件及周边设备.

INJECT_EVENTS

允许应用注入用户事件(键盘、触摸)到事件中然后提供给任意的窗口

INSTALL_LOCATION_PROVIDER

允许应用安装一个位置提供商到位置管理器中

INSTALL_PACKAGES

允许应用安装程序包.

INTERNAL_SYSTEM_WINDOW

允许应用打开被部分系统用户接口使用的窗口

INTERNET

允许应用打开网络套接口

KILL_BACKGROUND_PROCESSES

允许应用去呼叫killBackgroundProcesses(String).方法

MANAGE_ACCOUNTS

允许应用去管理帐户管理者中的重要清单

MANAGE_APP_TOKENS

允许应用去管理(创建、销毁、顺序)在窗口管理者中的应用

MASTER_CLEAR

MODIFY_AUDIO_SETTINGS

允许应用修改全局音频设定

MODIFY_PHONE_STATE

允许改变拨打电话的状态-电源等

MOUNT_FORMAT_FILESYSTEMS

允许格式化可移除的存储仓库的文件系统

MOUNT_UNMOUNT_FILESYSTEMS

允许装备或解除可移除的存储仓库的文件系统

PERSISTENT_ACTIVITY

允许应用使它的activities更持久稳固

PROCESS_OUTGOING_CALLS

允许应用监督、限定或终止呼出的电话

READ_CALENDAR

允许应用读取用户的日历数据

READ_CONTACTS

允许应用读取用户的联系人数据

READ_FRAME_BUFFER

允许应用抓取屏幕和更多可获得的缓冲数据

READ_HISTORY_BOOKMARKS

允许应用去读取(非写)用户浏览历史和书签

READ_INPUT_STATE

允许应用去的当前键盘和控制的状态

READ_LOGS

允许应用读取低级别的系统日志文件

READ_OWNER_DATA

允许应用读取所有者的数据

READ_PHONE_STATE

允许读取电话的状态

READ_SMS

允许应用读取短信息.

READ_SYNC_SETTINGS

允许应用读取同步的设置

READ_SYNC_STATS

允许应用读取同步的统计数据

REBOOT

重新启动设备的请求

RECEIVE_BOOT_COMPLETED

允许应用接收在系统完成启动后发出的ACTION_BOOT_COMPLETED广播信息

RECEIVE_MMS

允许应用去监听多媒体信息并记录和对起进行处理

RECEIVE_SMS

允许应用去监听短消息并记录和对起进行处理

RECEIVE_WAP_PUSH

允许应用监听WAP push信息

RECORD_AUDIO

允许应用记录音频信息

REORDER_TASKS

允许应用改变任务的关系位置

RESTART_PACKAGES

已废弃使用

SEND_SMS

允许应用发送短消息.

SET_ACTIVITY_WATCHER

允许应用查看和控制activities是怎样在系统中运行的

SET_ALWAYS_FINISH

允许应用去控制当activities被覆盖后是否是立即接触结束

SET_ANIMATION_SCALE

改变动画的比例因子

SET_DEBUG_APP

设置一个应用为调试模式

SET_ORIENTATION

允许低级别的设置屏幕的方向

SET_PREFERRED_APPLICATIONS

已废弃

SET_PROCESS_LIMIT

允许应用设置可以运行的最大数的应用进程

SET_TIME

允许应用设置系统时间

SET_TIME_ZONE

允许应用设置系统时区时间

SET_WALLPAPER

允许应用设置壁纸

SET_WALLPAPER_HINTS

允许应用设置锁定的壁纸

SIGNAL_PERSISTENT_PROCESSES

允许应用发出一个给所有稳定进程信号的请求

STATUS_BAR

允许应用打开、关闭或使状态栏或图标失去作用

SUBSCRIBED_FEEDS_READ

允许应用访问内容提供者的签署认证

SUBSCRIBED_FEEDS_WRITE

SYSTEM_ALERT_WINDOW

允许应用使用TYPE_SYSTEM_ALERT来打开窗口,并将窗口显示于其他应用的顶端

UPDATE_DEVICE_STATS

允许应用更新设备资料信息

USE_CREDENTIALS

允许应用从管理器得到授权请求

VIBRATE

允许应用访问震动器

WAKE_LOCK

允许使用电源锁定管理以使进程休眠或屏幕变暗

WRITE_APN_SETTINGS

允许应用去写入接入点设置

WRITE_CALENDAR

允许应用写(非读)用户的日历数据

WRITE_CONTACTS

允许应用写(非读)用户的联系人数据

WRITE_EXTERNAL_STORAGE

允许应用写(非读)用户的外部存储器

WRITE_GSERVICES

允许应用修改Google服务地图

WRITE_HISTORY_BOOKMARKS

允许应用写(非读)用户的浏览器历史和书签

WRITE_OWNER_DATA

允许应用写(非读)用户的数据

WRITE_SECURE_SETTINGS

允许应用写或读当前系统设置

WRITE_SETTINGS

允许应用写或读系统设置

WRITE_SMS

允许应用写短消息信息

WRITE_SYNC_SETTINGS

允许应用写同步设置


Manifest.permission_group 继承关系

public static final class Manifest.permission_group extends Object

 

java.lang.Object

                            android. Manifest.permission_group

 

常量

ACCOUNTS

直接通过统计管理器访问管理的统计

COST_MONEY

可以用来让用户花钱但不需要通过与他们直接牵涉的权限

DEVELOPMENT_TOOLS

与开发联盟特征相连的权限组

HARDWARE_CONTROLS

被用来提供直接访问硬件设备的权限

LOCATION

用来允许访问用户的当前位置的权限

MESSAGES

用来允许应用发送用户收到的被拦截的信息

NETWORK

用来提供访问网络服务的权限

PERSONAL_INFO

用于提供访问用户私人数据如联系人、日历、电子邮件等的权限

PHONE_CALLS

用于跟访问和修改拨号状态如截取去话信息、读取和修改电话状态等的权限

STORAGE

与SD卡访问相关联的权限组

SYSTEM_TOOLS

与系统API有关联的权限组

 



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值