3

我正在考虑尝试为游戏构建一个复杂的 android 应用程序结构,或者只是出于练习的原因。我曾经在objective-c中编码,所以我在android方面没有那么多经验......

无论如何,在工作中,我们在 ios 上构建我们的应用程序,如下所示:

-核心框架:处理所有核心项目、导航、数据处理、机制等。在我们所有的项目中都是一样的

-project 框架:它的文件主要依赖(包括)核心框架的文件,扩展/修改它们,并根据项目做一些事情

-skin framework:这包含所有的资源和图像,如果我们想做一个重新皮肤的项目,我们只需要改变这个

-主项目:这包括将所有内容组合成一个应用程序的所有内容。只是启动应用程序,仅此而已,其他任何事情都由不同的框架完成

所以我想在android上做一个类似的结构,但我不确定我是否能做到……我看到有android项目和库项目,我可以将它们包含到彼此中……但是我的问题是:

1:我可以在ios上构建一个类似的结构吗?

2:我可以制作一个包含机制基础的“核心”库,另一个只包含资源的库,以及第三个(或者第三个可能是实际可运行的项目),什么可以从资源中获取资源库,可以将作业分发到核心库等...

3:我可以随意组织资源吗(例如不要将每张图片都扔到drawable文件夹根目录中)。例如,以某种方式有一个字符文件夹(我知道我不能在 res 文件夹中做 forlders),并将文件映射到 map 文件夹等......我唯一的机会将它们命名为“正确”?(map_sheet_type_1, map_sheet_type_2, character_sheet_type_1, etc)

或者我应该在一个项目中完成所有事情,将所有内容分成很多包,并仅将库用于“如何将“A”对象转码为“B”对象”之类的工作?

感谢您提前回答

4

2 回答 2

1

虽然我以前从未开发过游戏,但一个应用程序就是一个应用程序:

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

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

于 2013-02-20T00:18:54.673 回答
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 等)。是的,您绝对可以拥有多个库。

至于在一个应用程序中拥有多个项目,请参阅此链接如何从多个 Android 项目创建单个应用程序

于 2013-02-20T00:21:07.287 回答