AndroidManifest.xml里加入多个package_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > AndroidManifest.xml里加入多个package

AndroidManifest.xml里加入多个package

 2012/2/16 9:12:10  Trinea  程序员俱乐部  我要评论(0)
  • 摘要:我们都知道对于多个Activity如果在同一个包中,在Mainfest中可以这样注册<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.trinea.sns.activity"android:versionCode="1"android:versionName="1.0"><uses
  • 标签:android XML

我们都知道对于多个Activity如果在同一个包中,在Mainfest中可以这样注册

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.trinea.sns.activity"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="3" />
	<uses-permission android:name="android.permission.INTERNET" />
	
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".UpdateStatusActivity"
                  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=".ViewSnsActivity"
                  android:label="@string/app_name">
        </activity>
    </application>
</manifest>

?上面的UpdateStatusActivity和ViewSnsActivity同样在包com.trinea.sns.activity下面可以如此定义,但如果

UpdateStatusActivity在包com.trinea.sns.activity下,而ViewSnsActivity在包com.trinea.sns.activity2下面怎么办



每一个Activity、Service等应用程序组件都会对应AndroidManifest.xml文件中的一个<activity>、<service>标签。在这些标签中有一个必选的属性:android:name,该属性需要指定一个类名,像上面的.UpdateStatusActivity和android.intent.action.MAIN。大家发现这两个有什么不同了吗,对了。第一个是.的方式而第二个是全路径的方式。指定android:name属性值有3种方式,如下:


1. ?指定完全的类名(packagename+classname),例如,net.blogjava.mobile.Main。

2. ?只指定类名,例如,.Main,其中Main前面的“.”是可选的。该类所在的包名需要在<manifest>标签的package属性中指定。

3. ?指定相对类名,这种方式类似于第2种方式,只是在<activity>标签的android:name属性中不光指定类名,还有部分包名。例如,如果Main类在net.blogjava.mobile.abcd包中,就可以在<manifest>标签的package属性中指定net.blogjava.mobile,然后在<activity>标签的android:name属性中指定.abcd.Main。


? ?由此可见,package的目的是为了更方便地指定android:name以及其他相关属性的值,就是一个默认的包。如果不在android:name中指定包名,会自动将package属性值加在前面


?

发表评论
用户名: 匿名