什么是注册活动时的“点”
我是一个在Android操作系统编程的菜鸟。 我注意到,在我读过的书中,作者在清单中注册其活动时,在活动名称前放置了一个“点”。 我环顾了Android开发者网站,我无法弄清楚为什么我们需要“点”。 “点”实际上是服务器的目的吗? 我需要它吗? 我已经在下面包含了一个例子。 注意“NewActivity”之前的“点”:
<activity android:name=".NewActivity"></activity>
正如您已经注意到的那样,这一点并不是必须的,但它基本上意味着:活动类位于应用程序的相同包中。 所以,如果你的应用程序包是: com.my.package
那么:
- 。你的
.YourActivity
意味着你的类在com.my.package
里面。 -
YourActivity
意味着你的类在com.my.package
里面(和上面一样)。 -
.activities.YourActivity
意味着你的类在com.my.package.activitites
里面。 - 你甚至可以做一些事情:
com.my.package.activities.YourActivity
,当你想要有不同版本的应用程序,并使用Ant来自动更改包的引用时,com.my.package.activities.YourActivity
是非常有用的。
http://developer.android.com/guide/topics/manifest/activity-element.html#nm
安卓:名称
实现活动的类的名称,Activity的子类。 属性值应该是完全限定的类名(例如“com.example.project.ExtracurricularActivity”)。 但是,如果名称的第一个字符是一个句点 (例如,“.ExtracurricularActivity”), 则会将其附加到<manifest>
指定的包名称 。
所以给了ApplicationManifest.xml
:
<manifest ... package="com.stackoverflow.android.geotask" ...> <application ...> <activity android:name=".view.TaskListListView" ...> ... </application> </manifest>
那么由于android:name=".view.TaskListListView"
有一个前导期,所以它被解释为android:name="com.stackoverflow.android.geotask.view.TaskListListView"
。
那个小点会把你的package
附加到应用程序清单中。
如果你的包名是com.app.demo
。
<activity android:name=".HelloWorldActivity">
这意味着活动是在演示包内。
你可以用这个replace
<activity android:name="com.app.demo.HelloWorldActivity">