进来需要将cocos2d项目移植到android 上,所以经常创建新的android项目,对 AndroidManifest.xml 不了解,造成了巨大的困扰
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.woody.test"
android:sharedUserId="string"
android:sharedUserLabel="string resource"
android:versionCode="integer"
android:versionName="string"
android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
</manifest>
xmlns:android 定义android命名空间,一般为http://schemas.android.com/apk/res/android,这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。
package 指定本应用内java主程序包的包名,它也是一个应用进程的默认名称
sharedUserId 表明数据权限,因为默认情况下,Android给每个APK分配一个唯一的UserID,所以是默认禁止不同APK访问共享数据的。若要共享数据,第一可以采用Share Preference方法,第二种就可以采用sharedUserId了,将不同APK的sharedUserId都设为一样,则这些APK之间就可以互相共享数据了。
sharedUserLabel 共享的用户名 设置了 shareUserlabel才有效
versionName 这个是版本号 是给用户看的
installLocation 是优先安装位置
第二层(<Application>):属性
一个androidmanifest必须有一个Application标签,它是用来表明应用程序的属性和组件
<application android:allowClearUserData=["true" | "false"]
android:allowTaskReparenting=["true" | "false"]
android:backupAgent="string"
android:debuggable=["true" | "false"]
android:description="string resource"
android:enabled=["true" | "false"]
android:hasCode=["true" | "false"]
android:icon="drawable resource"
android:killAfterRestore=["true" | "false"]
android:label="string resource"
android:manageSpaceActivity="string"
android:name="string"
android:permission="string"
android:persistent=["true" | "false"]
android:process="string"
android:restoreAnyVersion=["true" | "false"]
android:taskAffinity="string"
android:theme="resource or theme" >
</application>
android:allowClearUserData('true' or 'false') 用户可以自行清除数据的选项
<span style="font-family:Microsoft YaHei;">android:allowTaskReparenting 允许<span style="color: rgb(51, 51, 51); font-size: 13px; line-height: 19.5px;">activity 更换从属任务 </span></span>
<span style="font-family:Microsoft YaHei;"><span style="color: rgb(51, 51, 51); font-size: 13px; line-height: 19.5px;">
</span></span>
<span style="font-family:Microsoft YaHei;"><span style="color: rgb(51, 51, 51); font-size: 13px; line-height: 19.5px;"><span style="color: rgb(51, 51, 51); font-family: verdana, sans-serif; font-size: 13px; line-height: 19.5px;">android:backupAgent <span style="color: rgb(51, 51, 51); font-family: verdana, sans-serif; font-size: 13px; line-height: 19.5px;">设置该APP的备份(暂时未用到)</span></span>
</span></span>
<span style="font-family: verdana, sans-serif;">
</span>
<span style="font-family: verdana, sans-serif;">android:debuggable <span style="color: rgb(51, 51, 51); font-family: verdana, sans-serif; font-size: 13px; line-height: 19.5px;">当设置为true时,表明该APP在手机上可以被调试</span></span>
android:description/android:label 第一句描述字符串资源许可,第二句警告用户如果批准该权限会可能有什么不好的事情发生
android:name Application子类的全名。当应用程序进程开始时,该类在所有应用程序组件之前被实例化
若该类(比方androidMain类)是在声明的package下,则可以直接声明android:name="androidMain",但此类是在package下面的子包的话,就必须声明为全路径或android:name="package名称.子包名成.androidMain"
android:permission 设置许可名,这个属性若在<application>上定义的话,是一个给应用程序的所有组件设置许可的便捷方式,当然它是被各组件设置的许可名所覆盖的
android:presistent 该应用程序是否应该在任何时候都保持运行状态,默认为false。因为应用程序通常不应该设置本标识,持续模式仅仅应该设置给某些系统应用程序才是有意义的
?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.zdhsoft"
android:versionCode="2"
android:versionName="1.1">
<uses-sdk android:minSdkVersion="8"/> //sdk版本号
<uses-feature android:glEsVersion="0x00020000" /> <span style="color: rgb(51, 51, 51); font-family: verdana, sans-serif; font-size: 13px; line-height: 19.5px;">描述应用所需要的硬件和软件特性,以便防止应用在没有这些特性的设备上安装。</span>
<application android:label="@string/app_name" label 名称
android:icon="@drawable/icon"> 图标
<activity android:name=".MyGame" 项目名称
android:label="@string/app_name" //中文名
android:screenOrientation="landscape" //横竖屏
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
//<span style="color: rgb(51, 51, 51); font-family: verdana, sans-serif; font-size: 13px; line-height: 19.5px;">是一个资源的风格,它定义了一个默认的主题风格给所有的activity,当然也可以在自己的theme里面去设置它,有点类似style</span>
android:configChanges="orientation">
<div style="color: rgb(51, 51, 51); font-family: verdana, sans-serif; font-size: 13px; line-height: 19.5px;">当配置list发生修改时, 是否调用 onConfigurationChanged() 方法 比如 "locale|navigation|orientation". </div><div style="color: rgb(51, 51, 51); font-family: verdana, sans-serif; font-size: 13px; line-height: 19.5px;">这个我用过,主要用来看手机方向改变的. android手机在旋转后,layout会重新布局, 如何做到呢?</div><div style="color: rgb(51, 51, 51); font-family: verdana, sans-serif; font-size: 13px; line-height: 19.5px;">正常情况下. 如果手机旋转了.当前Activity后杀掉,然后根据方向重新加载这个Activity. 就会从onCreate开始重新加载.</div><div style="color: rgb(51, 51, 51); font-family: verdana, sans-serif; font-size: 13px; line-height: 19.5px;">如果你设置了 这个选项, 当手机旋转后,当前Activity之后调用onConfigurationChanged() 方法. 而不跑onCreate方法等.</div>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
这些是经过整理的 内容 详细请参考 http://www.cppblog.com/zdhsoft/archive/2014/02/03/cocos2dx03.html 相关资料