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

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

Xml代码  

  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. <application android:icon="@drawable/icon" android:label="@string/app_name">
  9. <activity android:name=".UpdateStatusActivity"
  10. android:label="@string/app_name">
  11. <intent-filter>
  12. <action android:name="android.intent.action.MAIN" />
  13. <category android:name="android.intent.category.LAUNCHER" />
  14. </intent-filter>
  15. </activity>
  16. <activity android:name=".ViewSnsActivity"
  17. android:label="@string/app_name">
  18. </activity>
  19. </application>
  20. </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

时间: 2024-10-27 14:02:42

AndroidManifest.xml里加入不同package的component (Activity、Service里android:name里指定的值一般为句号加类名),可以通过指定完全类名(包名+类名)来解决的相关文章

学习Android之-----------------------AndroidManifest.xml

在Android中,有一个文件叫AndroidManifest.xml ,该文件是Android项目开发的全局配置文件, 以.xml结尾.熟悉java web开发的朋友可能都知道,在Web工程中,也有一个全局的配置文件,叫web.xml. 当然AndroidManifest.xml 与 web.xml 是类似的,我们都可以在文件中配置有关项目的相关配置(如初始 化变量设置,Android Activity配置,servlet配置等等). 总的来说,开发Android应用所有需要配置的都需要在 A

AndroidManifest.xml以及manifest节点

参考资料:http://developer.android.com/guide/topics/manifest/manifest-intro.htmlhttp://developer.android.com/guide/topics/manifest/manifest-element.html 每个Android应用程序工程根目录必须有一个AndroidManifest.xml文件.这个文件包含着应用程序在Android系统中的配置信息.在程序被安装时这些信息会被系统读取,并被合理的安装.这些信

AndroidManifest.xml配置文件详解(转载)

AndroidManifest.xml配置文件详解 2013-01-05 10:25:23 分类: Android平台 AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查阅.下面是一个标准的AndroidManifest.xml文件样例.     [html] view plaincopy <?xml version="1.0" encoding="utf-8"?&g

android笔记(一)AndroidManifest.xml

这是整个 Android 项目的配置文件,在程序中定义的所有四大组件都需要在这个文件里注册.另外还可以在这个文件中给应用程序添加权限声明,也可以重新指定你创建项目时指定的程序最低兼容版本和目标版本. 在AndroidManifest.xml中有这样一段代码: <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <

关于QT for Android生成的AndroidManifest.xml学习说明

<?xml version="1.0"?> <manifest package="org.qtproject.example" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" android:installLocation

MonkeyRunner 之如何获取APP的Package Name和Activity Name

MonkeyRunner 之如何获取APP的Package Name和Activity Name   最近尝试学习使用monkeyrunner进行Android自动化测试,一开始均是使用点击屏幕坐标的方法来运行应用程序,可是点击屏幕坐标的方法比较麻烦,且通用性差.通过度娘我知道可以使用device.startActivity("package name /activity")这个函数来直接启用安装在手机中的app,可是如何获得activity却成了关键,现将获取activity的方法总

Android开发之查看应用包名package和入口activity名称的方法

使用android自动化测试工具monkeyrunner启动应用时,需要填写被测程序的包名和启动的Activity,以下有两种查看应用包名package和入口activity名称的方法: 方法一:使用aapt    //aapt是sdk自带的一个工具,在sdk\builds-tools\目录下 1.以ES文件浏览器为例,命令行中切换到aapt.exe目录执行:aapt dump badging E:\apk\es3.apk 2.运行后的结果中以下两行分别是应用包名package和入口activi

查看Android应用包名package和入口activity名称

使用android自动化测试工具启动应用时,需要填写被测程序的包名和启动的Activity,以下有两种查看应用包名package和入口activity名称的方法: 方法一:使用aapt    //aapt是sdk自带的一个工具,在sdk\builds-tools\目录下 1.以ES文件浏览器为例,命令行中切换到aapt.exe目录执行:aapt dump badging E:\apk\es3.apk 2.运行后的结果中以下两行分别是应用包名package和入口activity名称 package

Android自动化编译设置AndroidManifest.xml中package值(包名)

手动修改Android的AndroidManifest.xml中package值(包名)很简单,手动修改即可.但是项目中需要把Android的项目源代码放到服务器端在客户下载时候动态编译生成,且生成的app签名相同但包名不同(若此时包名相同就是相同的app),这种需求需要在服务器端自动化编译Android源代码时候自动调整AndroidManifest.xml中package值才能实现.查阅相关资料,结合Java对XML文件的读写技术,写了一个方法,让服务器端在编译之前预加载修改AndroidM