2013-02-19 120 views
3

我正在考虑尝试为游戏构建复杂的Android应用程序结构,可能或仅仅是出于实践的原因。林用于在Objective-C代码,所以我不会在Android中,许多经历过......Android复杂项目组织

反正在工作中,我们构建在这样的ios我们的应用程序:

-core框架:处理所有的核心项目,导航,datahandling,机制等,它在我们所有的项目相同

- 项目框架:它的文件大多是依靠(含)的核心框架的文件,扩展/修改它们,并做不同的东西

项目

-skin框架:这包含了所有的资源和图片,如果我们想要做一个重新皮肤的项目,我们会你必须改变这个

- 主要项目:这包括所有东西都扑在一起到一个应用程序。只是启动应用程序,没有更多的,其他任何事情都是由不同的框架完成的

所以我想在android上做类似的结构,但我不确定我甚至能够做到这一点......我看到有Android项目和库项目,我可以将它们纳入eachother ...但我的问题是:

1:我可以建立一个类似于ios上的结构吗?我可以举例说明一个“核心”库,它包含了机制的基础知识,另一个库仅包含资源,第三个库(或第三个库可能是实际可运行的项目),什么可以获得资源库中的资源,可以将作业分配到核心库等等。

3:我可以像我喜欢的那样组织资源(所以不要将每张图片都放到可绘制的文件夹根目录中)。例如有一个字符文件夹(我知道我不能在res文件夹forlders),并将地图文件映射到地图文件夹,等等...我唯一的机会来命名他们“正常”? (map_sheet_type_1,map_sheet_type_2,character_sheet_type_1等)(如果它将成为一个游戏,它会使用opengl,大量的精灵绘图等)

或者我应该在单个项目中做所有事情,包,并使用库仅用于“如何将”A“对象转码为”B“对象”的作业?

谢谢你的答案提前

+0

或者如果有人知道有关架构/结构/建筑相当复杂的Android应用程序的一些好书,请告诉我:) – HomeUser 2013-02-19 23:42:14

回答

1

虽然我以前从来没有开发一个游戏,而是一个应用程序是一个应用程序:

  1. 你提到你有可执行的项目和库项目中,图书馆可以使用其他图书馆,而唯一转到该设备的东西就是可执行项目正在构建的任何东西。注意编译库*.jar files资源不能用于您的可执行项目(这就是为什么ActionBar Sherlock必须用作库项目)这一点很重要。为了使用放置在库项目中的资源,项目必须在Eclipse中打开完整的源代码,以便它可以一起编译。这是因为在应用程序内部,只有一个R(资源)对象,并且在构建过程中,所有项目的所有资源都放在一起。
  2. 不幸的是没有。正如你自己提到的那样,资源不能放在子文件夹中,甚至文件名也被限制,因为它们只能使用小写字母,数字和_(下划线)。只要聪明有条理,写一个规范或什么的。
  3. 包是用Java组织单个项目的方式。如果你会使用多个或单个是你的选择。通常你可以封装在一个图书馆项目中,这些项目可以很容易地在不同的项目中重复使用,最终的项目将包含特定于该应用程序/游戏的所有内容。我会举例说明我工作的地方,我们有一个KicthenLibrary,它是一个我们在每个Android应用程序中使用的库项目。该库已经包含了一个优秀的多线程位图下载和缓存类,在Google发布他们的MapFragment,简单的Http GET/POST方法等之前,我们曾经有一个MapFragment(现在已经弃用)。正如你所看到的,所有这些都是东西可以轻松地在几个不同的项目中重复使用。

就像最后一个技巧一样,http://www.eclipse.org/egit/恕我直言,从Eclipse内部直接使用GIT更容易。

+0

非常感谢你! – HomeUser 2013-02-20 06:48:16

+0

我已经和我们的android开发者协商过了,他给了我一个提示: 他们正在将一些图像存储在软件包中(例如eu.project.images.hdpi),他们得到这样的结果: holder .itemIcon.setImageDrawable(GUIUtil.getImage(“alert_standard”,context)); alert_standard是一个PNG图像,GUIUtil.getImage正在检查缓存中的图像,如果未找到,则会组装包名(eu.project.images.hdpi.alert_standard.png),加载它,以及返回一个可绘制的对象... 现在,我只是好奇,如果我可以将这一切都打包到图书馆...我检查下班后... – HomeUser 2013-02-20 08:31:55

+0

大声笑,我很愚蠢像地狱:PA很久以前我写了一个使用SD卡图像的应用程序...所以我可以编写一个从卡片读取图像到内存的类,如果我需要其他图片,请删除一些图片并阅读其他图片...我可以将我的资源文件夹组织为疯狂地,因为我想在SD卡上:D:D:D所以我可以组织,并且始终得到我需要的图像... :) – HomeUser 2013-02-20 19:02:24

0

这里有几个链接,可以帮助你开始这个。

http://kasperholtze.com/android/how-to-best-organize-your-android-source/

http://bartinger.at/organization-tips-for-android-projects/

此外,当我在一家初创,我们做了两个iOS和Android的应用程序。我们开始为每个应用程序创建本地应用程序,并且结构有所不同。全局信息/变量的处理方式不同,我无法像iOS那样构造我的文件。也就是说,Android结构并不是非常难以找到,我在我的资产文件夹(针对库和js等)中创建了大量的子文件夹。是的,你肯定有几个库。

至于在一个应用程序中有几个几个项目,看到这个链接How to create a single application from multiple Android projects

+0

非常感谢! – HomeUser 2013-02-20 06:49:03