android – Eclipse:来自单一来源的多个项目

前端之家收集整理的这篇文章主要介绍了android – Eclipse:来自单一来源的多个项目前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
起初我不得不说我对英语不太好,所以如果我能很好地解释我的意思,我很抱歉:)

我有一个项目,我需要复制n次;每个新项目必须具有相同的源代码,但不同的资源(例如:图像,html文件,声音,pdf等)和不同的类/包名称.

我的项目不是标准的java,而是android phonegap.
我有一个eclipse插件,创建一个空的phonegap项目…也许有一种方法修改这个插件来创建我的标准项目?

可能吗?最好的方法是还有一个系统将主要项目的源变更提交给孩子,但这不是强制性的.

对不起我的英语.

编辑:

对不起,如果我再次编辑这个问题,但实际上我找不到解决我的问题的方法.

我想将它与一个例子集成,也许我可以解释我需要什么.

想象一下,你已经为eclipse和phonegap开发了android应用程序,对于足球队来说,例如巴塞罗那.

该应用程序主要是在html jquerymobile,但你已经修改了活动,android清单,添加了一些phonegap插件,一些媒体资源等.

现在你必须为更多的团队,很多团队复制这个应用程序.对于每个人,您必须创建一个新的phonegap项目,修改每个文件,添加插件,添加资产……这些任务不能没有错误.

但是最大的问题是:如果您的代码中只有一点点更新,那么如何在10/20/50/100/1000项目中复制它?

我已经添加了android,phonegap和cordova标签,以便更具体.

对不起我的英语.

编辑N°2

我刚刚玩了maven android插件一个多星期了,但没有成功.
我需要的是集中代码,我可以在其中切换应用程序和包名,图标以及一些配置文件.

Android libs不是解决方案,因为它无法导出资产文件.

我开始为这个问题寻找详细答案的赏金…请帮助:(

解决方法

从维护的角度来看,我不会考虑基于相同的代码库复制1000个项目.我将使用单个项目管理客户特定的资源,并在项目构建阶段交换所需的资源.换句话说,1个项目构建1000个apks,而不是1000个项目来构建1000个apks.

基于您在问题中给出的详细信息,正确的方向(据我所知)来解决这种使用场景(从单一源代码库构建多个应用程序)是采用外部构建工具,如Ant或Maven支配构建进程(两者都提供了在完整的构建生命周期中对每一步(即编译,dex,包等)进行精细控制的能力),并且如果需要,可以编写用于批量构建的shell脚本.

我不是PhoneGap的乐趣,但是根据我的理解快速浏览它的Get Started Guide,它只是Android SDK上的另一个编程层堆栈,通过主要使用Web编程语言提供编写移动应用程序的能力(HTML,CSS,Javascript),应用程序仍保留原始项目框架,因此我不会期望编写Ant / Maven脚本来构建PhoneGap应用程序.

一旦您成功构建了Maven的PhoneGap应用程序.您可以开始研究如何解决您的情况,我之前在StackOverflow中看到了类似的情况,请查看this threadthis thread进行一些案例研究.您可以启动概念验证项目进行可行性研究.

我发布了一些示例代码,展示了Maven如何实现这一点,见下文.

示例项目目录结构:

myApp/
  src/
  res-barcelona/
  assets-barcelona/
  res-realmadrid/
  assets-realmadrid/
  ... ...
  project.properties
  AndroidManifest.xml
  pom.xml

示例pom.xml文件

<profiles>
  <profile>
    <id>barcelona</id>
    <properties>
      <app.package.name>com.company.app.barcelona</app.package.name>
      <app.res.dir>${project.basedir}/res-barcelona</app.res.dir>
      <app.assets.dir>${project.basedir}/assets-barcelona</app.assets.dir>
    </properties>
  </profile>
  <profile>
    <id>realmadrid</id>
    <properties>
      <app.package.name>com.company.app.realmadrid</app.package.name>
      <app.res.dir>${project.basedir}/res-realmadrid</app.res.dir>
      <app.assets.dir>${project.basedir}/assets-realmadrid</app.assets.dir>
    </properties>
  </profile>
  ... ...
</profiles>

....

<plugins>
  <plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>android-maven-plugin</artifactId>
    <version>3.1.1</version>
    <extensions>true</extensions>
    <configuration>
      <sdk>
        <platform>13</platform>
      </sdk>
      <undeployBeforeDeploy>true</undeployBeforeDeploy>
      <renameManifestPackage>${app.package.name}</renameManifestPackage>
      <resourceDirectory>${app.res.dir}</resourceDirectory>
      <assetsDirectory>${app.assets.dir}</assetsDirectory>
    </configuration>
  </plugin>
  ... ...
</plugins>

要构建app-barcelona.apk,请运行mvn clean install -Pbarcelona.
要构建app-realmadrid.apk,请运行mvn clean install -Prealmadrid.
要构建其他1000个apks,请编写shell脚本.

Android Maven插件提供了许多配置,让您可以在每个阶段/目标中精细控制构建过程.查看Project Documentation了解详细信息.

猜你在找的Android相关文章