在Eclipse上创建Android模块化应用程序

时间:2010-08-31 10:28:24

标签: java android eclipse modularity

我目前正在移植一个框架,用于在J2ME上构建Android应用程序。该框架由几个编译到库(jar)的项目组成。每个单独的JAR都可以包含图形数据(资源,J4ME屏幕等)。每个项目通常都有一个明确定义的入口点(模块)。当有人想使用框架构建应用程序时,他必须只创建一个Midlet项目并添加库依赖项并使用导入的类。

我们一直在使用相同的方法来开发Android框架。在这种情况下,我们只使用Eclipse中的普通Java项目来编译jar库。这些项目与Android Framework(android.jar)有依赖关系。构建新应用程序时,我们在Eclipse中创建一个Android项目并添加依赖项。

我们的下一步是为Android构建更多高级模块,这些模块还可以包含图形信息(活动,对话框,文字,抽屉等)。到目前为止,只需要一个Android Eclipse项目(最终应用程序),它包含所有与图形相关的类和资源。似乎在使用资源(文字,绘图等)时,唯一的方法是创建一个Android应用程序,因为资源只能通过ADT插件(R.XXX)自动创建的整数处理程序来引用。因此,构建图形模块可能无法通过普通的Java jar项目构建。

Android开发人员信息解释说模块化应用程序是可行的,但我没有找到解释该过程的简明教程,但有一些提示,例如如何在application invokes an intent made available by other application时防止出现错误。在构建使用其他应用程序资源的应用程序时,这是有效的。我不需要在系统上安装多个应用程序,但是需要从几个组件构建。

是否有人经历过类似需求的开发?任何好的教程或提示开始?

1 个答案:

答案 0 :(得分:1)

似乎here暗示the accepted answer of this other question是唯一可用的方式。

然而,解决方案是相当新的(它只适用于最新的Android SDK,R6和SDK 2.0.X被排除在支持之外)。它有一些重要的警告我希望谷歌已经在工作:

  • 没有二进制库链接。这意味着主应用程序需要访问源代码(在Eclipse中意味着打开所有链接的库项目)。
  • 资源名称(布局,绘图等)全球处理。这意味着如果您有两个“main.xml”布局,则只会使用最相关的(库列表中最上面的)。
  • 缺少职能/ BUG 。文档声明库项目的导出活动必须仅在库项目的AndroidManifest.xml中声明。当前版本中不起作用TicTacToe示例中的注释暗示这是理想的工作,但对于Android Tools的当前版本,必须在主应用程序项目的AndroidManifest.xml中显式定义库项目中使用的活动。