【问题标题】:Can I not have multiple packages in my android project我的android项目中可以没有多个包吗
【发布时间】:2014-06-08 01:57:06
【问题描述】:

我正忙于阅读完全限定名称和数据包等,

在我的项目中,我将所有内容分解为包,只是为了尝试组织我的项目,但我现在意识到这不太适合 android manifest 元素,因为您只能提供一个包?

我可以像这样在我的项目中有多个包吗?

【问题讨论】:

  • 说你可以,因为你的包名应该是你在创建时或在清单中使用的那个。因为我有我的 myproject.test 然后每个新包都像 myproject.test.anything 一样

标签: android android-package-managers


【解决方案1】:

您应该指定一个主包,该包可以有任意多个子包:

com.example.android 可以是一个主包。

那么您可以指定以下内容:

com.example.android.activities
com.example.android.adapters
etc...

当然,您也可以轻松地将类添加到“根包”中。

查看Java package naming conventions 了解更多信息,Android 也遵循这些约定。

【讨论】:

  • 因此,如果我只是将所有包放在 com.example.appname 包下,它应该是正确的。因为我了解某些意图需要使用完全限定名称,所以我的主包必须是唯一名称吗?如果有人有相同的包名,并安装两个应用程序怎么办?
  • 当然你并没有真正使用“com.example.appname”。阅读stackoverflow.com/questions/6273892/… 并单击链接。我们谈论惯例,这意味着您没有必须遵循它们,但如果我们遵循它们,每个人都会生活得更快乐。此外,确实,如果有人决定使用完全相同的包名,可能会出现问题。但这就是为什么您使用自己的域名等来创造尽可能多的多样性。
【解决方案2】:

您必须为您的应用程序指定一个通用包名称。 eg:com.example.rhino68mobileapp 并使用此 eg:com.example.rhino68mobileapp.utils 启动所有其他包

【讨论】:

    【解决方案3】:

    是的,您可以在 android 中使用多个包,只需要在应用程序中使用访问修饰符,以便您的一个包类或对象可以在需要时与其他包类通信。

    Java 提供不同的访问修饰符:

    • 对包可见。默认值。不需要修饰符。
    • 仅对班级可见(私有)。

    • 对全世界(公众)可见。

    • 对包和所有子类可见(受保护)。

    更多信息请阅读here

    已编辑:

    您可以像这样在清单中定义主包(应用程序主包)和其他包:

    <manifest package="com.example.mainPackage">
      <application . . .>
        <activity android:name=".packageOne.ActivityOne" . . . />
        <activity android:name=".packageTwo.ActivityTwo" . . . />
       <activity android:name=".packageThree.ActivityThree" . . . />
      </application>
    </manifest>
    

    【讨论】:

      【解决方案4】:

      是的,你可以。

      AndroidManifest.xml 中的应用程序包标识您的应用程序。

      但是你的 Java 代码可以随意组织。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-09-30
        • 2017-01-10
        • 2015-09-20
        • 2010-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多