AndroidManifest.xml里加入不同package的component (ActivityService里android:name里指定的值一般为句号加类名),可以通过指定完全类名(包名

【AndroidManifest.xml里加入不同package的component (ActivityService里android:name里指定的值一般为句号加类名),可以通过指定完全类名(包名】沉舟侧畔千帆进,病树前头万木春。这篇文章主要讲述AndroidManifest.xml里加入不同package的component (ActivityService里android:name里指定的值一般为句号加类名),可以通过指定完全类名(包名相关的知识,希望能为你提供帮助。
我们都知道对于多个Activity如果在同一个包中,在Mainfest中可以这样注册
Xml代码  

AndroidManifest.xml里加入不同package的component (ActivityService里android:name里指定的值一般为句号加类名),可以通过指定完全类名(包名

文章图片
  1. < span  style="font-size:  small; "> < ?xml  version="1.0"  encoding="utf-8"?>    
  2. < manifest  xmlns:android="http://schemas.android.com/apk/res/android"   
  3.             package="com.trinea.sns.activity"   
  4.             android:versionCode="1"   
  5.             android:versionName="1.0">    
  6.         < uses-sdk  android:minSdkVersion="3"  />    
  7.         < uses-permission  android:name="android.permission.INTERNET"  />    
  8.            
  9.         < application  android:icon="@drawable/icon"  android:label="@string/app_name">    
  10.                 < activity  android:name=".UpdateStatusActivity"   
  11.                                     android:label="@string/app_name">    
  12.                         < intent-filter>    
  13.                                 < action  android:name="android.intent.action.MAIN"  />    
  14.                                 < category  android:name="android.intent.category.LAUNCHER"  />    
  15.                         < /intent-filter>    
  16.                 < /activity>    
  17.    
  18.         < activity  android:name=".ViewSnsActivity"   
  19.                                     android:label="@string/app_name">    
  20.                 < /activity>    
  21.         < /application>    
  22. < /manifest> < /span>    
  上面的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属性值加在前面
 
参考:http://developer.android.com/guide/topics/manifest/activity-element.html#nm

    推荐阅读