【问题标题】:Android Development - How to maintain common code across several android platforms [closed]Android 开发 - 如何跨多个 android 平台维护通用代码 [关闭]
【发布时间】:2017-08-01 22:40:42
【问题描述】:

我们正在开发针对各种安卓设备的原生安卓应用 -

  • Android TV - Leanback 启动器
  • Android 平板电脑
  • 亚马逊消防电视
  • Android TV - 中国制造无品牌(使用自定义启动器)

有趣的是,这四个平台对图形资源的要求都略有不同,而带有 Leanback 启动器的 Android TV 有特定的意图过滤器要求。

这是我的第一个真正的 android 项目。创建不同的项目只是为了将不同的资产打包到特定的 apk 中似乎没有意义。

感谢任何指导。

【问题讨论】:

  • “图形资产”到底有什么区别?对于<intent-filter>,为所有目标设置它应该是安全的,即使其中三个将被忽略。这是否只是一个项目、一个具有产品风格的项目,还是一组模块(例如,一个公共库和四个应用程序模块)在很大程度上取决于细节......所以我们需要这些细节。
  • 除了 - app-icon 的大小不同。 Android TV 和 Fire TV 使用矩形启动器图标 FireTV - 1280x720 Android TV - 320x180 Android 平板电脑和 Android TV(未经认证) - 各种标准尺寸 - 基于显示密度的方形或圆形 - Android studio 负责这些尺寸 - 但不是矩形的.
  • 这听起来很小。在这种情况下,我推荐一个具有产品风格的单个项目,每个不同的目标一个。每种风味都可以有自己的ic_launcher 资源(或任何您称其为的资源),这些资源是为其环境量身定制的。代码和清单将保持不变并驻留在 src/main/ 中,自定义资源位于特定于风味的目录中(例如,src/firetv/src/androidtv/)。

标签: android android-studio android-tv amazon-fire-tv


【解决方案1】:

不要制作不同的项目,因为您正在使用 Android Studio 制作不同的项目“风格”。这样,您可以对每个平台进行所需的各种修改,然后在构建期间您可以选择要构建的风格。查看enter link description here

【讨论】:

    【解决方案2】:

    您可以创建不同的模块。我们也有类似的情况:各种产品,除了一组资源外,大体相同。我们的方法是定义一个包含所有公共代码和资源的库模块,然后创建依赖于库模块并包含特定于平台的内容的特定于平台的应用程序模块。有时,为了让所有东西都能编译,我们需要定义存根资源,然后在 Android Studio 组装产品时将其替换为真实的资源。

    您还可以使用产品风格为各种版本定制构建。

    【讨论】:

      猜你喜欢
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多