我目前正在将一个用于在 J2ME 上构建应用程序的框架移植到 Android。该框架由多个编译为库(jar)的项目组成。每个单独的 JAR 都可以包含图形数据(资源、J4ME 屏幕等)。每个项目通常都有一个明确定义的入口点(模块)。当有人想要使用该框架构建应用程序时,他只需创建一个 Midlet 项目并添加库依赖项并使用导入的类。
我们一直使用相同的方法来开发 Android 框架。在本例中,我们仅使用 Eclipse 中的普通 Java 项目来编译为 jar 库。这些项目与 Android 框架 (android.jar) 具有依赖关系。构建新应用程序时,我们在 Eclipse 中创建一个 Android 项目并添加依赖项。
我们的下一步是为 Android 构建更高级的模块,这些模块还可以包含图形信息(活动、对话框、文字、可绘制对象等)。到目前为止,只需要一个 Android Eclipse 项目(最终应用程序),其中包含所有与图形相关的类和资源。似乎在使用资源(文字、可绘制对象等)时,唯一的方法是创建 Android 应用程序,因为资源只能通过 ADT 插件 (R.XXX) 自动创建的整数处理程序来引用。因此,构建图形模块可能无法通过普通的 Java jar 项目来构建。
Android开发者信息解释了模块化应用程序是可行的,但我还没有找到解释该过程的简明教程,但有一些提示,例如如何防止在应用程序调用其他应用程序提供的意图 http://developer.android.com/resources/articles/can-i-use-this-intent.html。当构建使用其他应用程序资源的应用程序时,这是有效的。我不需要在系统上安装多个应用程序,而是需要由多个组件构建的应用程序。
有没有人有过类似需求的开发经验?有什么好的入门教程或技巧吗?
似乎描述了唯一可用的方法here http://developer.android.com/guide/developing/eclipse-adt.html#librarySetup正如所暗示的其他问题的接受答案 https://stackoverflow.com/questions/3608680/is-is-possible-at-build-time-to-merge-android-applications.
然而,该解决方案相当新(它仅适用于最新的 Android SDK R6,并且不支持 SDK 2.0.X)。它有一些主要的警告,我希望谷歌已经在努力解决这些问题:
-
没有二进制库链接。这意味着主应用程序需要访问源代码(在 Eclipse 中意味着打开所有链接库项目)。
-
资源名称(布局、绘图等)被全局处理。这意味着如果您有两个“main.xml”布局,则只会使用最相关的(库列表中最上面的)布局。
-
缺少功能/BUG。该文档规定,库项目的导出活动只能在库项目的 AndroidManifest.xml 中声明。这不起作用在当前版本中。里面的评论井字游戏 http://developer.android.com/resources/samples/TicTacToeLib/index.html示例提示这是所需的工作,但对于当前版本的 Android Tools,库项目中使用的活动必须在主应用程序项目的 AndroidManifest.xml 中显式定义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)