2013-11-24 6 views
0

여기에서 사용하는 것이 가장 좋은 용어는 아니지만 설명하겠습니다.소스 파일 덮어 쓰기

내 응용 프로그램의 경우 코어 라이브러리부터 시작합니다. 여기가 앱, 소스 파일, 자산, 레이아웃 등입니다. 그런 다음 각 시장 (Google, Amazon, BlackBerry 등)에 대해 새 프로젝트를 만들고 코어 라이브러리에 의존하게합니다. 이를 통해 다른 모든 시장 버전에 변경 사항을 복제하지 않고도 하나의 기본 코드로 작업 할 수 있습니다.

나는 단순히 선택된 프로젝트의 고해상도 디렉토리에 같은 값을 넣어 "우선"리소스 파일에서 시장 링크 등을 넣어.

소스 파일에서 동일한 작업을 수행 할 수 있기를 기대했지만 여러 개의 덱스 파일 오류가 발생했습니다.

동일한 핵심 라이브러리에서 무료 버전을 구축하려고합니다. 두 가지 버전이 있는데, 각기 다른 광고 제공 업체 (Google 및 Amazon)가 있습니다. 핵심 라이브러리에 두 개의 광고 라이브러리가 있어야 할 필요가 없습니다. 내 생각은 기본적으로 비어 있으며 아무것도하지 않는 CustomLoader 클래스를 핵심 라이브러리에 포함시키는 것이 었습니다. 그런 다음 광고가 필요한 프로젝트에서 새 CustomAd 클래스를 배치하여 원본을 코어 라이브러리에 "오버라이드"합니다. 이것이 가능합니까?

답변

0

좋아, 그래서 나는 일을하기 위해 약간의 마법을 사용했다. 코어 lib에 CustomAd 클래스를 만들었습니다. 또한 Util 클래스에는 공용 정적 인터페이스가 있습니다. CustomAd은 null이 아닌 경우 인터페이스의 메소드를 실행합니다.

광고 프로젝트의 새로운 런처에서 정적 인터페이스를 설정 한 다음 시작 화면을 실행합니다.

이렇게하면 앱용 핵심 라이브러리 하나를 유지하고 다른 시장에서 다른 광고 제공 업체를 운영 할 수 있습니다.

0

build.gradle 파일에서 Android Studio로 마이그레이션하고 구성을 정의하는 것이 좋습니다.