2011-01-19 5 views
12

Google은 레이아웃과 코드가 매우 유사한 여러 앱을 보유하고 있습니다. 유일한 차이점은 그래픽 요소를 전환하고 하나의 상수 파일과 문자열 파일을 변경한다는 것입니다. 물론 이것에 대한 몇 가지 문제점이 있습니다. 첫 번째는 네임 스페이스입니다. 동일한 네임 스페이스를 가진 앱을 사용하면 다른 앱을 덮어 씁니다.Android 앱 대량 게시

이 작업에 대한 제안 사항은 무엇입니까? 현재 우리 namesapce입니다 : 내가 생각 com.company.appname 내가 할 수있는 :이에 도움이 개미 스크립트에 대한 게시물을 본 적이

com.company.appname.appversion,하지만 난 궁금 해요 더 많은 유체 솔루션을 제공합니다.

+0

목적이 무엇인지 모르겠으므로 앱 디자인에 의문을 제기하지 않아도되지만, 여러 테마로 구성된 하나의 앱을 사용하면 간소화 된 것으로 보입니다. –

+0

라이브러리를 사용하고 싶지 않은 경우 여기에 솔루션을 게시했습니다. http://stackoverflow.com/questions/3711967/best-way-to-have-paid-and-free-version-of-an -android-app/13111546 # 13111546 –

답변

18

나는 이것을 돕기 위해 Android Library Projects을 조사 할 것을 제안합니다.

이 방법은 내 앱 중 Lite v Free 에디션에 사용합니다. 나는 모든 소스와 애플 리케이션을위한 대부분의 리소스를 포함하는 Library 프로젝트를 가지고 있으며, 1st를 라이브러리 프로젝트로 사용하는 2 개의 프로젝트, Lite 용과 Full Edition 용을 각각 하나씩 사용합니다.

두 개의 종속 프로젝트는 각각 고유 한 리소스와 매니페스트를 가지고있어서 네임 스페이스가 다르며 에디션에 따라 다른 문자열, 드로어 블 등으로 교체 할 수 있습니다.

저는 Ant 접근법을 시도했지만 라이브러리 프로젝트 접근법보다 훨씬 번거로운 것 같았습니다. 희망이 도움이됩니다.

+0

이렇게하는 방법을 파악하는 데 어려움을 겪고 있습니다. 라이브러리로 주 응용 프로그램을 가지고 있지만 상수 파일을 덮어 쓰려고하면 오류가 발생합니다. 나는 자바가 작동하는 방식으로 이것이 기대되어야한다고 생각하지만, 어떻게해야 할 지 잘 모르겠습니다. 존재하지 않는 메인 프로젝트에서 상수 파일을 가져와야합니까? – bryon

+1

자바 클래스에 상수가 정의되어 있고 각각의 프로젝트에서 프로젝트의 각 에디션에 대해 서로 다른 값을 갖는 동일한 클래스를 가지려고한다고 가정 해 보시겠습니까? 네임 스페이스 충돌은 그것을 허용하지 않을 것입니다. 여러분은 여러분의 가치를 자원으로 옮겨서 메인/라이브러리 프로젝트에 존재할 수 있지만 종속 프로젝트에서 같은 이름의 자원에 의해 재정의 될 수 있도록 고려해야 할 필요가 있다고 생각합니다. 위의 Android 문서 링크에서 lib 프로젝트에서 리소스가 병합되는 방법을 설명하는 부분을 살펴보십시오. – mmeyer

+0

나는이 접근 방식을 사용했고, 이제는 두 가지 애플리케이션이 동일한 contentprovider를 제공 할 수 없다는 것을 알고 무료 버전에서 유료 버전으로 마찰없는 업그레이드를하기 위해 고심하고있다. (http://stackoverflow.com/questions/3306639/multiple -apps-use-same-content-provider) – rds