Android Manifest:为什么有时候“。<classname>”而不仅仅是“<classname>”?</classname> </classname>

时间:2011-09-07 08:54:56

标签: android android-manifest

点是什么意思?

大部分时间我都是这么写的:

<activity android:name="OneActivity" ...>...</activity>

但有时我会在自动生成的文件中看到:

<activity android:name=".OtherActivity" ...>...</activity>

同样在Docs for Service我看到他们写了

<manifest ... >
  ...
  <application ... >
      <service android:name=".ExampleService" />
      ...
  </application>
</manifest>

但我从来没有看到尝试这一方面的任何差异。

5 个答案:

答案 0 :(得分:4)

如果您看一下上面的内容,就会有像

这样的包定义
package="app.package.name"

带有点的类名意味着该类位于已定义的包下。 如果你有另一个包

app.package.name.another

并且该包中有一个类,您必须定义类名称,如

<activity android:name=".another.activityname"

答案 1 :(得分:3)

来自the Android Dev Guide < activity > reference

  

实现活动的类的名称,Activity的子类。属性值应该是完全限定的类名(例如,“com.example.project.ExtracurricularActivity”)。但是,作为简写,如果名称的第一个字符是句点(例如“.ExtracurricularActivity”),则它将附加到元素中指定的包名称。有   没有默认值。必须指定名称。

来自Activity Name in android Manifest in Stack Overflow

的jaywon

答案 2 :(得分:2)

如果您创建了多个软件包,可以找到一些差异,android会在创建项目时可能提到的默认文件夹中检查该类。

对于服务,它会自动将“服务”附加到包名称并在其中查找服务。因此它更像是相对路径和绝对路径,如果将服务放在不同的包名中,则必须提及具有类名的整个包路径。它也适用于接收器..

答案 3 :(得分:1)

要获取任何活动Android需要完全限定名称... 为此我们的清单文件具有属性(即package =“com.test”) 因此,为了使其完全合格,我们在活动名称前加上点(即android:name =“。FirstActivity”)

如果您不希望在每个活动之前使用点,那么只需在清单标记中的包属性后面加点。(即package =“com.test。”)并写入不带点的活动名称(即android:name =“ FirstActivity“) 这样它就可以整体形成一个完全限定的名称(即com.test.FirstActivity)

答案 4 :(得分:-2)

名称前面的点表示它是其他人不会看到的隐藏文件。你可以在youtube上看到如何通过android cell隐藏文件。