2013-01-18 2 views
0

동일한 코드베이스의 다른 응용 프로그램을 빌드해야합니다. 첫 번째 애플리케이션에는 카풀을 제공하는 기능이 있고 두 번째 애플리케이션에는 카풀에 검색하고 등록하는 기능이 있습니다. 이제는이 두 가지 응용 프로그램이 다를 필요가 있습니다. 그들의 진입 점은 내가 다를 필요가있는 것입니다. 실행 중 Intent-Filter를 변경하기위한 빌드 타임 옵션을 제공하는 방법이 있습니까?동일한 코드베이스에서 2 개의 응용 프로그램 빌드하기

일반적인 기능을 위해 jar 파일을 만드는 방법에 대한 제안이 많이 있습니다. 하지만 그런 식으로하고 싶지 않아. 다른 방법이 있습니까?

+0

이 도움말이 도움이 되길 바랍니다. http://stackoverflow.com/questions/4188250/how-to-create-multiple-android-apps-from-one-code-base & http://developer.android.com/ training/multiple-apks/index.html –

+0

나는 두 가지를 모두 겪어 왔지만, 그들은 내 문제를 해결하지 못했습니다. 감사. – Siddharth

답변

1

이렇게하려면 빌드시 구성 할 수있는 방식으로 코드를 인수 분해해야합니다. 이것은 종종 빌드 타임으로 작업 할 수있는 특정 파일의 프로그램 파일 (매니페스트, 자바 파일, 빌드 파일 등) 편집을 요구합니다.

+0

그래서 개미 같은 것이 있습니까? – Siddharth

+0

개미는 건물을 만들기위한 확실한 선택이지만 python/ruby와 같은 프로그래밍 방식의 파일 편집이 필요합니다. – JoxTraex

+0

나는 그것을 피할 수 있고 어딘가 간단한 해결책이 있다고 생각했다. 대답을 수락하기 전에 잠시 기다려 드리겠습니다. 다시 한번 감사드립니다. – Siddharth

1

예, 두 개의 매니페스트 파일을 만듭니다. Maven을 사용하여 컴파일하십시오 (이 경우에도 Ant를 사용할 수 있다고 가정합니다) 두 개의 프로파일을 생성하십시오. 프로파일에 따라 매니페스트를 설정하십시오.

즉. 당신이 당신의 별도의 진입 점을 설정할 수 있도록

의 pom.xml은

<profile> 
    <id>Target1</id> 
    <properties> 
     <customerManifest>Target1Manifest.xml</customerManifest> 
     </properties> 
     </profile> 
<profile> 
    <id>Target2</id> 
    <properties> 
     <customerManifest>Target2Manifest.xml</customerManifest> 
     </properties> 
     </profile> 

<plugin> 
       <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
       <artifactId>android-maven-plugin</artifactId> 
       <version>3.2.0</version> 
       <configuration> 
        <androidManifestFile>${customerManifest}</androidManifestFile> 
        <sdk> 
         <platform>15</platform> 
        </sdk> 

      </plugin> 

이 매니페스트을 전환합니다.

+0

그래서 mvn clean 패키지를 빌드 할 때 -P TargetX –

관련 문제