2

我有一个 APK 文件,其中包含我在 API 21 上运行的应用程序,以便我可以最好地支持材料设计功能。由于 Android Lollipop (API 21) 仅在12.4% 的设备上运行,我自然也希望支持较低的 API。对我来说,为 API v21 和低于 v21 创建具有不同布局的应用程序的最佳方式是什么?我应该创建两个不同的应用程序,一个针对 v21 优化,一个针对低于 v21 的应用程序,还是有更简单的方法?

谢谢!

4

3 回答 3

2

您不应该构建多个 APK,因为这将成为维护的噩梦。

使用Android 支持库Android 设计库来利用最新的平台功能,同时向后移植到早期的 API 级别。

于 2015-07-18T03:43:22.273 回答
2

看,您可以创建多个应用程序并且您可以使用 Android 支持库。(Android 支持库是通过为您处理小事来完成此任务的最佳资源之一)。它始终是您的选择。

于 2015-07-18T03:52:37.130 回答
2

对于许多具有针对较新平台版本的设计或其他优化的应用程序来说,这是一个常见问题(不仅仅是 API 21+ ......但是当 API 25 出现时呢?)

在做出这个决定之前有几个因素需要考虑——一些编程和一些组织。Android 具有许多功能来支持同一应用程序内的向后兼容性。资源文件夹、检查平台 API 的静态方法、兼容性库。一些组织不愿支持多个应用程序的想法。

以下是您可能需要为自己的环境优先考虑的列表:

  1. 您能否将支持多个 API 所需的资源文件夹限制在可接受的复杂程度?管理一些额外的布局和/或图像文件夹非常容易。但是对单个Activityor的许多布局的紧密依赖Fragment,然后支持许多屏幕密度和设备尺寸……您最好将它们分成不同的应用程序以降低复杂性。

  2. 您是否有多个需要确定设备 API 的嵌套对象依赖项?如果您有一层又一层的对象,它们都有不同的 API 要求(对象 A 用于 API 21+,对象 B 仅用于 API 19,等等,然后对象 AA 用于 API 17+,并且还取决于对象 A 或对象 B,取决于 API) - 您可能会被迫进行单一应用程序开发。或者您可能被迫创建库和单独的 APK,以便您可以正确测试您的代码。

  3. 企业是否理解“单个 APK”并不意味着“比多个 APK 便宜”?有时将开发划分为单独的 APK 会降低复杂性并增加开发输出,同时降低 QA 的成本。在其他时候,他们将经历单独的发布批准和其他使分离效率低下的“繁文缛节”活动。此外,有时开发人员会喜欢在“最新和最好的”API 目标中工作,而落后的目标 API 的质量会受到影响。

  4. 您能否支持库或子模块开发,以便您可以通过多个 APK 有效地重用代码?分离 APK 后,可能会出现对每个代码库不够熟悉以有效重用组件的趋势。一个 APK 中存在的问题可能会在没有识别的情况下得到解决,这也解决了另一个 APK 中的类似(但不完全相同)问题。

一般来说,保持相同的代码库会增加复杂性,这有助于保持对一组代码的关注并让管理人员满意。但是,特定情况(例如拥有通知应用程序 - 在 Lollipop 中通知的性质发生了变化)可能会导致需要创建一个新的 APK,这可能会显着减少对旧版本的支持,这可能是最好的采用较新的版本达到饱和。

Google 允许您为单个应用上传多个针对不同 API(甚至设备)的 APK。这是额外的灵活性 - 以及额外的应用商店维护。

祝你好运。

于 2015-07-18T03:56:38.113 回答