【问题标题】:What's the best practice for sharing classes between a Wear and Android app?在 Wear 和 Android 应用之间共享课程的最佳做法是什么?
【发布时间】:2014-07-06 01:48:27
【问题描述】:

我正在使用我在我的 Android 手机应用中序列化并在我的 Android Wear 应用中反序列化的类。它们都在同一个 Android Studio 项目中,并作为一个部署。

如何在两者之间共享类而不在每个包中都有类的副本?现在我正在复制/粘贴它,但是我有什么办法可以将它包含在两个应用程序中?

目录结构为:

./
    mobile/
           ...src/etc
    wear/
           ...src/etc

如何处理常见的类?

【问题讨论】:

    标签: android gradle android-studio wear-os


    【解决方案1】:

    您可以在项目中创建一个新的“Android 库”模块,并将您的常用类放在那里。

    然后您只需将其添加为 Mobile 和 Wear 模块的依赖项(在项目结构 -> 依赖项 -> 添加 -> 模块依赖项中)。这样您就可以从两个模块创建/使用这些类的实例。

    【讨论】:

    • 是的,做到了 :) 创建了很多文件,只是为了在两个项目之间包含一些类。我只是在与 Visual Studio 上的 C++ 解决方案进行比较,其中两个项目可以通过简单的#include 共享一个类。无论如何,谢谢你,这很好。
    • @RobinEisenberg 嘿,你是对的。在 Java 中,文件/目录和编译单元之间的耦合要紧密得多。不过,作为奖励,使用这种方法应该只编译一次类(例如,C/C++ 中的库)。
    • 我们应该从这个库模块中删除 AndroidManifest.xml 吗?
    • @rudakovsky 不一定。清单已合并,因此最好在适当的地方保留声明。例如,如果库中的一个类需要特定的权限,那么如果库的清单声明了该权限就可以了(我什至会说更好)。这样,它将自动包含在引用它的任何应用程序模块中。
    • @MujtabaMahmood 基本上一样——你可以将它作为库模块的资产或原始资源包含在内,并从应用程序模块中使用。
    【解决方案2】:

    通常使用模块化来共享代码库。 AndroidStudio 使用module 命名。

    模块是源文件和构建设置的集合,可让您将项目划分为离散的功能单元。

    可以是Android Library(.aar) 或Java Library(.jar)。在这两种情况下,都将使用build.gradle 文件中的apply plugin: 'com.android.library' 行创建一个新模块。您可以使用它来放置共享代码。

    要包含/添加这个模块,你应该使用

    File -> New -> Import Module...
    

    此命令将所有必要的信息添加到settings.gradle 文件中,您将可以通过它使用它

    implementation project(':<module_name>')
    

    【讨论】:

      猜你喜欢
      • 2017-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 2011-05-02
      • 2011-12-10
      相关资源
      最近更新 更多