4

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

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

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

Android开发者资料说明模块化应用是可行的,但是我还没有找到一个简明的教程来解释这个过程,但是一些技巧,比如当一个应用调用一个由其他应用提供的意图时如何防止错误发生。这在构建使用来自其他应用程序的资源的应用程序时有效。我不需要在系统上安装几个应用程序,而是一个由多个组件构建的应用程序。

有没有人有类似需求的开发经验?有什么好的教程或技巧可以开始吗?

4

1 回答 1

1

似乎这里描述了唯一可用的方法,正如其他问题的公认答案所暗示的那样。

然而,该解决方案是相当新的(它只适用于最新的 Android SDK,需要 R6 并且 SDKs 2.0.X 不被支持)。它有一些我希望谷歌已经在努力的主要警告:

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