2012-12-17 2 views
5

내 안드로이드 응용 프로그램에서는 속성 파일을 약간만 변경하면됩니다. 예를 들어다시 작성하지 않고 Android APK 파일의 리소스를 변경할 수 있습니까?

:

내 특성 파일에서, 특정 클라이언트에 대한 환영 메시지가있다. 그래서 내 응용 프로그램에서 클라이언트 이름 만 변경해야합니다.

하지만 문제는 소스에서 수행 한 다음 모든 클라이언트에 대해 항상 빌드해야한다는 것입니다.

다시 빌드를 만들지 않고 .apk 파일에서 직접 변경할 수 있습니까 &.

+0

모든 클라이언트가 응용 프로그램에서 자체 이름을 원하기 때문에 – Prateek

+4

나는 그것을 알고 있습니다. 왜 당신은 재건을 피하고 싶습니까? 너 스키니 같은 거 컴파일하는거야? –

+1

단일 텍스트를 제외하고는 변경 사항이 없기 때문에 ........ 클라이언트 측의 시스템 팀이 저를 기다려야합니다. 내 의존성이 없으면 변경을 원할 것입니다. – Prateek

답변

8

이렇게하려면 패키지 된 APK의 압축을 풀고 변경하려는 문자열을 찾아야합니다. 문자열은 바이트 코드 (Java String) 또는 2 진 형식 (XML String)으로 인코딩되거나 변환되었을 수 있습니다. 이 작업이 완료되었는지 여부와 새로운 String이 어떻게 생겼는지 파악해야합니다. 그런 다음이를 바꿔 넣기 전에 동일한 방법으로 인코딩하고 바꿔야 할 문자열을 가져와야합니다.

이 모든 작업을 마친 후에는 apk 형식으로 다시 사용할 수있게하려면 앱을 다시 압축하고 서명 도구를 실행하고 수동으로 정렬해야합니다.

솔직히 말해서 앱을 다시 컴파일하는 것보다 시간이 오래 걸립니다.

+3

+1 번거롭지 않게 설명합니다. 바이너리를 어지럽히는데. – asgs

+0

을 제외하고는 비 개발자가 할 수있는 다른 쉬운 방법은 없습니다 .... – Prateek

0

Android APK Tool을 사용하십시오.

는 설명

그것은 리버스 엔지니어링 3 자에 대한 도구를 인용하자면, 바이너리 안드로이드 애플 리케이션, 마감했다. 리소스를 거의 원래 형식으로 디코딩하고 수정 한 후 을 다시 빌드 할 수 있습니다.

1

소스 코드를 소유하고 있기 때문에 APK를 풀고 다시 작성하는 것은 시간 낭비 일 것 같습니다. 원래 빌드 프로세스에서이 문제를 해결해야합니다.

Eclipse를 사용하여 수동으로 APK 패키지를 빌드하는 경우 자동화 된 빌드 시스템 (Ant, Maven 등)을 설정하고 클라이언트 이름을 빌드 스크립트의 매개 변수로 제공해야합니다.

이미 Ant 또는 Maven을 사용하고 있다면 이러한 도구는 텍스트 파일의 태그를 컴파일하기 전에 속성 값으로 바꾸는 방법을 이미 제공합니다. 보다 정확한 답변을 제공 할 수 있도록 빌드 환경에 대해 자세히 알려주십시오.

+0

현재 이클립스에서 수동 방식을 사용하고 있습니다. ".apk 파일 만들기를위한 개미 사용 방법"에 대한 자세한 정보를 제공 할 수 있습니다. – Prateek

+2

StackOverflow 규칙에 따라 주제에 대한 기본 지식이 있으면 구체화 된 새로운 질문을 만들어야합니다.Google 키워드는 "android ant build"입니다. – Torben

관련 문제