默认创建两个桌面图标

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.testapplication"
    android:versionCode="1"
    android:versionName="1.0" >


    <uses-sdk
        android:minSdkVersion="19"
        android:targetSdkVersion="22" />


    <uses-permission android:name="android.permission.RESTART_PACKAGES" >
    </uses-permission>
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.SET_DEBUG_APP" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />


    <!-- Required  一些系统要求的权限,如访问网络等 -->
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="com.milink.android.air.permission.JPUSH_MESSAGE" />
    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <!-- 接收短信权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <!-- 这个权限用于进行网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!-- 这个权限用于访问GPS定位 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <!-- 允许应用读取低级别的系统日志文件 -->
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.CAMERA" />
    <!-- 接收开机启动广播 -->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <!-- //全局对话框 -->
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />


    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />


    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Holo.Light.NoActionBar" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".AnimationActivity"
            android:label="hello"
            android:icon="@drawable/a1" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />


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

        <activity android:name="com.android.testapplication.ActivityLifeCycleTest" />
        <activity android:name="com.android.testapplication.EventBusActivity" />
        <activity android:name="com.android.testapplication.CustomViewActivity" />
        <activity android:name="com.android.test.photo.ImageFolderActivity" />
        <activity android:name="com.android.testapplication.ObjectAnimatorActivity" />
        <activity android:name="com.android.testapplication.CanvasTextActivity" />
        <activity android:name="com.android.testapplication.HttpTest" />


        <meta-data
            android:name="UMENG_APPKEY"
            android:value="56c42afe67e58ec41d000e1f" >
        </meta-data>
        <meta-data
            android:name="UMENG_CHANNEL"
            android:value="android_test" >
        </meta-data>
    </application>


</manifest>



mainfest中Activity的属性:
1、android:name  value="string"
  应用的类名,建议填写完整的类名(包名+类名)
2、android:theme  calue="resource or theme"
   activity的样式主题, 如果没有设置,则activity的主题样式使用application中的theme属性
3、android:label  value="string resource"
   应用的名称,桌面上所见的app的名称
4、android:description  value="string resource"
   在permission标签中,使用它提供对权限用途和所保护对象的更有用的描述
5、android:icon  value="drawable resource"
    应用的app图标
6、android:banner 暂无
7、android:logo  "drawable resource" 暂无
8、android:launchMode value=["standard" | "singleTop" | "singleTask" | "singleInstance"]
     Activity有四种加载模式:standard、singleTop、singleTask、singleInstance(其中前两个是一组、后两个是一组),默认为standard
9、android:screenOrientation  value=["unspecified" | "user" | "behind" |
                                     "landscape" | "portrait" |
                                     "reverseLandscape" | "reversePortrait" |
                                     "sensorLandscape" | "sensorPortrait" |
                                     "sensor" | "fullSensor" | "nosensor"]
activity显示的模式
默认为unspecified:由系统自动判断显示方向


landscape横屏模式,宽度比高度大


portrait竖屏模式, 高度比宽度大


user模式,用户当前首选的方向


behind模式:和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)


sensor模式:有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换


nosensor模式:忽略物理感应器,这样就不会随着用户旋转设备而更改了
10、android:configChanges  value=["mcc", "mnc", "locale",
                                 "touchscreen", "keyboard", "keyboardHidden",
                                 "navigation", "screenLayout", "fontScale", "uiMode",
                                 "orientation", "screenSize", "smallestScreenSize"]
当配置list发生修改时, 是否调用 onConfigurationChanged() 方法  比如 "locale|navigation|orientation". 
主要用来看手机方向改变的. android手机在旋转后,layout会重新布局, 如何做到呢?
正常情况下. 如果手机旋转了.当前Activity后杀掉,然后根据方向重新加载这个Activity. 就会从onCreate开始重新加载.
如果你设置了 这个选项, 当手机旋转后,当前Activity之后调用onConfigurationChanged() 方法. 而不跑onCreate方法等.


mcc:IMSI(国际移动用户识别码)发生改变,检测到SIM卡,或者更新MCC
mnc:IMSI网络发生改变,检测到SIM卡,或者更新MCC,其中mcc和mnc理论上不可能发生变化
locale:语言发生改变,用户选择了一个新的语言,文字应该重新显示
touchscreen:摸屏发生改变,这通常是不应该发生的
keyboard:The 键盘类型发生改变,例如,用户使用了外部键盘
keyboardHidden:键盘发生改变,例如,用户使用了硬件键盘
navigation:导航发生改变,(这通常不应该发生) 举例:连接蓝牙键盘,连接后确实导致了navigation的类型发生变化。因为连接蓝牙键盘后,我可以使用方向键来navigate了
screenLayout:屏幕的布局发生改变,这可能导致激活不同的显示
fontScale:全局字体大小缩放发生改变
orientation:设备旋转,横向显示和竖向显示模式切换。
screenSize: 屏幕大小改变了
smallestScreenSize: 屏幕的物理大小改变了,如:连接到一个外部的屏幕上


4.2增加了一个layoutDirection属性,当改变语言设置后,该属性也会成newConfig中的一个mask位。所以ActivityManagerService(实际在ActivityStack)在决定是否重启Activity的时候总是判断为重启。
需要在android:configChanges 中同时添加locale和layoutDirection。
在不退出应用的情况下切换到Settings里切换语言,发现该Activity还是重启了。
11、android:permission  value="string"
   应用某些功能需要的权限
12、android:multiprocess  value=["true" | "false"]
    允许多进程
13、android:process  valu="string"
一个activity运行时所在的进程名,所有程序组件运行在应用程序默认的进程中,这个进程名跟应用程序的包名一致。<application>中的元素process属性能够为所有组件设定一个新的默认值。但是任何组件都可以覆盖这个默认值,允许你将你的程序放在多进程中运行。  如果这个属性被分配的名字以:开头, 当这个activity运行时, 一个新的专属于这个程序的进程将会被创建。 如果这个进程名以小写字母开头, 这个activity将会运行在全局的进程中,被它的许可所提供。 
14、android:taskAffinity   value="string"
拥有相同的affinity的Activity理论上属于相同的Task,应用程序默认的affinity的名字是<manifest>元素中设定的package名
 15、        android:allowTaskReparenting  value=["true" | "false"]
是否可以将目标activity从启动它的那个Task移动到他自己定义的而且马上要显示的那个Task.如果为false,它就会留在启动它的那个Task中.
是否允许activity更换从属的任务,比如从短信息任务切换到浏览器任务
 16、    android:finishOnTaskLaunch   value=["true" | "false"]
当用户重新启动这个任务的时候,是否关闭已打开的activity,默认是false
如果这个属性和allowTaskReparenting都是true,这个属性就是王牌。Activity的亲和力将被忽略。该Activity已经被摧毁并非re-parented
 17、android:finishOnCloseSystemDialogs  暂无
18、   android:clearTaskOnLaunch value=["true" | "false"]
     比如 P 是 activity, Q 是被P 触发的 activity, 然后返回Home, 重新启动 P,是否显示 Q
19、  android:noHistory   value=["true" | "false"]
 当用户从Activity上离开并且它在屏幕上不再可见时,Activity是否从Activity stack中清除并结束。默认是false。Activity不会留下历史

 20、 android:alwaysRetainTaskState=""
 21、 android:stateNotNeeded=""
 22、 android:excludeFromRecents=""
 23、  android:showOnLockScreen=""
 24、  android:enabled=""
 25、    android:exported=""
 26、   android:windowSoftInputMode  value=["stateUnspecified",
                                       "stateUnchanged", "stateHidden",
                                       "stateAlwaysHidden", "stateVisible",
                                       "stateAlwaysVisible", "adjustUnspecified",
                                       "adjustResize", "adjustPan"]

activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。

这个属性能影响两件事情:

【A】当有焦点产生时,软键盘是隐藏还是显示

【B】是否减少活动主窗口大小以便腾出空间放软键盘

各值的含义:

【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置

【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

【C】stateHidden:用户选择activity时,软键盘总是被隐藏

【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

【E】stateVisible:软键盘通常是可见的

【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

27、   android:immersive=""

28、   android:hardwareAccelerated=""
29、  android:uiOptions=""
30、   android:parentActivityName=""
31、   android:singleUser=""
32、   android:persistableMode=""
33、  android:allowEmbedded=""
34、  android:documentLaunchMode=""
35、  android:maxRecents=""
36、  android:autoRemoveFromRecents=""
37、 android:relinquishTaskIdentity=""
38、 android:resumeWhilePausing=""


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值