2012-01-25 23 views
4

我进入一个已经存在的大Android项目。清单看起来像这样:Android Manifest:活动包是否仍然需要在apk的主包装下?

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.group1.package1"> 
    <application ... > 
    <activity android:name="com.company.group1.MyActivity /> 
    <service android:name="com.company.group2.blah.MyService" /> 
    <provider android:name="com.company.group3.etc.MyProvider" /> 
    ... more fully-qualified activities ... 
    </application> 
</manifest> 

基本上,实体遍布整个地方,包装明智,所有完全合格。这当然打破了各种惯例,但不知何故,它工作得很好。我试图从谷歌的声明中发现这是一个糟糕的主意,但我还没有找到任何反对它的官方建议或它会导致什么样的问题。

重命名包com.company是不是一个好的选择,因为该公司有多个应用程序。

我的问题是:是否有任何理由比常规其他组织项目以更合理的方式?由于源代码控制历史问题以及其他问题,我预计会大规模重命名。

回答

3

没有,活动的名称不必是APK的主包下。例如,可以指定一个在使用完全不同包名的外部jar中定义的Activity。

实际需要根据AndroidManifest.xml documentation的是,活动名称为“应该是一个完全合格的类名”。

但是,随着文档继续提及,在大多数情况下,有一种速记,您不必始终指定完全限定的类名称。这是通过在'。'之前的名称。 (即 “<activity android:name=".MyActivity />”)

相关问题