2011-09-09 6 views
0

음, 제목이 잘 쓰여져 있지 않다는 것을 압니다 만, 저의 경우는 그렇게 복잡합니다! 나는이 사건을 여기에서 수색했지만 다른 비슷한 질문은 실제로 내 것과 다르다. 나는 (원시 형식 등 텍스트, 이미지) 내용을 표시하는 안드로이드 프로그램을 작성했습니다내 데스크톱 응용 프로그램을 사용중인 사용자가 클라이언트 측에서 미리 패키지화 된 apk 파일을 수정하는 방법은 무엇입니까?

  • "자산"폴더에 저장됩니다

    여기 내 문제입니다. 이제는이 응용 프로그램을 최종 사용자에게 제공하는 Windows 응용 프로그램 (나도 작성)과 함께 전달하여 apk 파일의 "assets"폴더에 내용을 추가하고 수정 된 apk를 원하는 이름으로 출력 할 수있게합니다. 전화).

이 작업을 수행하는 가장 좋은 해결책은 무엇이며 어떤 도구와 명령을 사용해야합니까? 내 소프트웨어에 어떤 도구 (aapt, jarsigner, ...)를 포함시켜야하며이 작업을 위해 내 소프트웨어에서 어떤 명령을 실행해야합니까? 내 경우에 대한

상세 정보 :

  • 내 사용자가 고급없는 및 안드로이드 프로그래밍 및 APK 수정에 대해 아무것도 몰라, 나는 그들이 단지 내 클라이언트 Windows 응용 프로그램을 사용하고 싶습니다.
  • 클라이언트 컴퓨터에서 JDK, JRE 등을 사용하지 않으려합니다.
  • 수정 프로세스에는 다음이 포함됩니다. AndroidManifest.xmldrawable \ icon.png을 대체하고 일부 파일을 자산 폴더에 추가합니다.
  • 내 키 저장소 파일과 서명되지 않은 원본 apk 파일을 내 소프트웨어와 함께 배포하여 프로세스가 끝나면 서명하게됩니다.

P.S : OK, 몇 시간 후에 내가 거의 발견 9 단계 솔루션 및 최종 사용자 정의 서명-ZIP 정렬 APK 파일 및 오류없이 장치에 설치되어있어! 하지만 문제는 다음과 같습니다. 사용자가 생성하는 모든 apk 파일은 동일한 패키지 이름 (com.MyName.MyApp)을 가지며 누군가가 휴대 전화에 2 개 이상을 설치하면 문제가 발생합니다. 이 문제에 대해 "aapt - rename-manifest-package"를 시도해야합니까? 어떻게 사용 하는가?

답변

2

나는 마침내이 작업 솔루션으로 끝났습니다. 관심있는 모든 사람들을 위해 여기에 넣었습니다. TempFolder에서

1 추출 임시 폴더 (예. TempFolder)

2을 넣어 사용자가 생성 한 파일 "자산"과에 "original.apk"(source.apk) "고해상도 \ 당김"폴더

-3- AndroidManifest.xml을 생성하고

4- 실행을 TempFolder이 명령 입력 : aapt에 패키지 -f -M 'PathToManifest "-S"PathToResFolder "android.jar -I -F"를 NearlyFinal.apk "-A"PathToAssetsFolder "

5 카피" classes.dex "를 NearlyFinal.apk가있는 폴더로 복사하십시오.

6- 다음 명령을 실행하십시오. aapt add -f NearlyFinal.apk classes.dex jad.속성

7- 서명 APK 파일 : jarsigner를 -storepass [keystorePass] -keystore KeyStoreFile.key NearlyFinal.apk [KeyStoreName]

8 zipalign을 APK 파일 : zipalign을 4 NearlyFinal.apk "Final.apk"

9- 이름을 바꾸고 사용자의 기본 설정에 따라 Final.apk를 이동하십시오.

마감

+1

패키지를 변경할 수 있습니까? – stinepike