相关疑难解决方法(0)

最佳实践:扩展或覆盖Android库项目类

我们正在使用Android库项目在Android应用程序的不同构建(目标)之间共享核心类和资源.每个特定目标的Android项目都引用了Core库项目(在幕后,Eclipse创建并引用了引用的库项目中的jar).

覆盖图像和XML布局等资源非常简单.放置在目标项目中的资源文件(例如应用程序图标或XML布局)会在构建应用程序时自动覆盖核心库的资源,并使用相同的名称.但是,有时需要重写类以启用特定于目标的行为.例如,亚马逊目标偏好设置屏幕不能包含指向Google Play应用页面的链接,需要更改亚马逊项目的preferences.xml和偏好设置活动类.

目标是减少目标项目中重复代码的数量,同时尽可能从Core库中删除尽可能多的特定于目标的代码.我们已经提出了几种方法来实现特定于不同目标的逻辑:

  1. 在Core库类中编写特定于目标的函数,并使用if/switch块根据产品SKU选择行为.这种方法不是非常模块化,并且使核心库代码库膨胀.
  2. 扩展目标项目中的特定Core类,并根据需要覆盖基本(Core)类函数.然后保留对Core库中基类对象的引用,并使用扩展类对象实例化它(从如何覆盖Android库项目中的类?)

是否有其他策略来覆盖或扩展Android库项目类?在Android应用目标中共享和扩展常见类的一些最佳做法是什么?

java architecture eclipse android design-patterns

32
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

architecture ×1

design-patterns ×1

eclipse ×1

java ×1