2010-05-13 9 views
6

내 애플리케이션에는이를 사용하는 각 회사마다 몇 가지 맞춤 설정 기능이 있습니다. 지금까지 리소스 파일에서 이미지와 문자열을로드했습니다. 아이디어는 기본 리소스가 응용 프로그램과 함께 배포되며 회사의 특정 리소스가 전자 메일에서 링크를 클릭하여 초기화 의도를 시작한 후 서버에서로드된다는 것입니다. 누구든지 리소스 파일을 대체하는 방법을 알고 있습니까? 많은 코드/XML을 다시 작성하지 않도록 리소스 파일을 계속 사용하고 싶습니다.Android 리소스 파일 다운로드 및 바꾸기

저는 앱 스토어가 아닌 자체 서버에서 애플리케이션을 배포하므로 회사 당 하나의 버전을 가질 수 있지만 불행히도 이것은 고객에게 우려할만한 치명적인 보안 경고를 줄 것입니다.

답변

10

아무도 리소스 파일을 바꾸는 방법을 알고 있습니까?

업데이트 된 APK를 배포하는 경우를 제외하고는 불가능합니다. APK는 디지털 서명되어 있으며 런타임에 수정할 수 없습니다.

7

없음은 여기 불가능하지만 당신이 응용 프로그램 디렉토리 .. 즉, 데이터/데이터 런타임에 복사 ... 대신 할 자산 폴더에서 .. 자산 폴더 등 이미지를 복사 할 수있는 없습니다 런타임 폴더에서/yourapppackage/yourresourcefolder 사용하면 이미지 등 .. 즉 코드에서 말 .. 당신은 런타임 경로에서 리소스를 다운로드 할 때 imageView.setBackgroundDrawable(data/data/apppackagename/download/themename/resourcename) ... 이제 이미지에 대한 키 이름과 경로를 XML 파일을 보관

그래서
+1

은, 기본적으로, 대신 안드로이드의 [리소스] (사용 http://developer.android 것을 제안하고 있습니다 .. 키 값 쌍으로 .. 코드에서 그것을 위해 approprite 열거 형을 가지고 런타임에서의 HashMap에서 이미지 경로를 저장 .com/guide/topics/resources/resources-i18n.html) 시스템에서 파일을 사용하기 만하면됩니다. 대신 저장소? – Casebash

+0

나는이 대답을 upvote, 귀하의 첫 번째 문장은 "예, 가능하다"라고 말하면서, 실제로 할 수없고 이것이 단지 해결할 때를 제외하고는. 당신이이 문제를 해결한다면, 나는 그것을 난 당신이 무엇을 의미하는가받을 타격을받지 – Casebash

+0

@Casebash을 upvote에합니다 .. 그래서 기본적으로 당신이 그릴 수 폴더, 즉 자원 폴더를 대체 할 수 없다 "당신이 올바른 경우"하지만, 런타임 경로에서 촬영 한 이미지를 참조 할 수 있습니다 . 그래서 가능한 나는 리소스 폴더에서 이미지를 대체하지만 런타임에 이미지를 대체하기위한 솔루션을 제공하는 것이 가능하지는 않습니다. 런타임 경로를 제공하면 가능합니다. 불편을 끼쳐 드려 죄송합니다. :) 감사합니다. Alok. –