2012-11-20 8 views
1

나는 도서관 프로젝트를 가지고 있으며, 모든 리소스와 클래스 파일을 포함하고있다.이 프로젝트는 모든 테마 관련 이미지를 포함하고 있으며, 새 프로젝트를 만들기 위해 내 라이브러리 프로젝트를 공유하고있다.프로젝트에서 리소스 폴더를 독립적으로 공유하는 방법은 무엇입니까?

그러나 앱 테마 관련 이미지를 변경하려면 라이브러리 프로젝트 이미지를 업데이트해야하지만 내 라이브러리 프로젝트는 다른 프로젝트와 이미 공유되어 있으므로 손댈 필요가 없습니다.

새 프로젝트에는 새 이미지 세트를 모두 추가 할 수 있지만 이미지는 늘어나고 불필요한 이미지에는 두 세트가 추가됩니다.

리소스 폴더를 프로젝트와 독립적으로 공유 할 수있는 방법이 있습니까? 그래서 존경받는 프로젝트와 내 리소스 폴더를 공유 할 수있는 요구 사항에 따라 다릅니다. 이

 
Library Project 
    | 
    |__ class files 
    | 
    |__ resource folder(contais all drawables and layouts) 

내가 컴파일시 특정 리소스 폴더를 선택할 수처럼

그래서이 될 것인가?

답변

0

해결 방법 # 1 : 웹에서 런타임에 다운로드되는 버전 리소스. 라이브러리 프로젝트에 리소스를 포함시키지 마십시오. 이렇게하면 .jar 파일로 배포하여 타사 개발자와의 통합을 단순화 할 수 있습니다. 이렇게하면 웹에서 런타임에 자원을 다운로드하여/data 폴더 나 SD 카드 또는 메모리에 캐시해야합니다.

해결 방법 # 2 : 프로젝트를 빌드 할 때 ant 또는 maven을 사용하십시오. 이렇게하면 기본 구성으로 프로젝트를 배포하고 사용자 지정 구성을 작성할 수 있습니다. 정의 된 구성 매개 변수에 따라이 방법으로 리소스를 모든 폴더에 배치 할 수 있으며 컴파일 중에 해당 리소스를 가져올 수 있습니다.

0

나는 도서관을 버전을 바꿀 것이고, maven이나 이와 유사한 것들과의 의존성을 관리 할 것이다. 이 방법을 사용하면 이전 버전의 라이브러리를 사용하는 나머지 프로젝트를 손상시키지 않습니다. 시간이있을 때 프로젝트를 모든 버전의 라이브러리로 업데이트 할 수 있으며 물론 라이브러리를 계속 업데이트 할 수 있습니다. 새 버전을 생성합니다.

0

나는 이런 식으로 진행되는 라이브러리의 리소스 폴더를 설명하는 static 필드를 추가합니다.

public class Library { 

    // The resource-folder 
    public static final File RES_FOLDER; 

} 

그런 다음 필드를 사용하여 리소스 폴더에 액세스하십시오. 테마를 별도의 앱으로 만드는 것이 좋습니다.

관련 문제