2011-10-29 2 views
4

리눅스 (Eclipse를 사용하지 않음)에서 개미를 사용하여 apk를 구축 중이며 < 2.3의 내 거대한 데이터베이스 압축을 유지하기 위해 자산을 압축하는 것과 그렇지 않은 것을 쉽게 전환 할 수있는 방법을 찾으려고합니다. 이 문서에 따라 :android APK를 빌드 할 때 aapt에 인수를 전달하는 방법은 무엇입니까?

http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/

나는 aapt -0 db 같은 것을 지정하여이 작업을 수행 할 수 있다고 볼 수 있지만, 나는 aapt에와 방법을 개미 상호 작용을 편집하는 방법에 대한 정보를 찾을 수 없습니다. 아니면 혼자서 도망쳐 야합니까? 나는 무엇을해야합니까?

답변

7

빌드 할 때 AAPT를 실행하는 Android의 build.xml (SDK, 도구 및 개미에서 찾을 수 있음)입니다.

build.xml을 찾아 "-package-resources"대상을 아래 대상으로 바꿉니다. 지금 당장은 테스트 할 수 없으므로 ANT로 빌드 할 때 "-Dcompression.disabled = set"으로 설정하거나 "compression.disabled = set"으로 설정하면됩니다. .properties-file.

<target name="-package-resources" depends="-crunch"> 
    <!-- only package resources if *not* a library project --> 
    <do-only-if-not-library elseText="Library project: do not package resources..." > 
     <aapt executable="${aapt}" 
       command="package" 
       versioncode="${version.code}" 
       versionname="${version.name}" 
       debug="${build.is.packaging.debug}" 
       manifest="AndroidManifest.xml" 
       assets="${asset.absolute.dir}" 
       androidjar="${android.jar}" 
       apkfolder="${out.absolute.dir}" 
       nocrunch="${build.packaging.nocrunch}" 
       resourcefilename="${resource.package.file.name}" 
       resourcefilter="${aapt.resource.filter}" 
       projectLibrariesResName="project.libraries.res" 
       projectLibrariesPackageName="project.libraries.package" 
       previousBuildType="${build.last.target}" 
       buildType="${build.target}"> 
      <res path="${out.res.absolute.dir}" /> 
      <res path="${resource.absolute.dir}" /> 
      <if> 
       <condition> 
        <isset property="compression.disabled" /> 
       </condition> 
       <then> 
        <nocompress/> 
       </then> 
      </if> 
     </aapt> 
    </do-only-if-not-library> 
</target> 
+0

감사합니다. 나는 apk를 거대하게 만들었을 것이기 때문에 이런 식으로 끝나지 않았지만 어쨌든 대답을 알게되어 기쁩니다. – yuttadhammo

+2

오케이! nocompress 요소에 확장 속성을 추가하여 파일 유형별로 만들 수도 있습니다. ' ' –

+1

누구나 안드로이드 SDK 내부 파일을 modyfing없이 방법을 발견? – Wojciech