Android 프로젝트의 애셋에 GZIP-ed 파일을 추가하면 프로젝트가 패키지화 될 때 ".gz"확장자가 제거됩니다. 따라서 자산 폴더의 "foo.gz"는 getAssets().open("foo")
을 사용하여 코드에 액세스해야합니다. 사용중인 다른 확장자 (예 : ".html")에서는 이와 같은 현상이 발생하지 않습니다. 자산은 여전히 GZIP로되어 있습니다 (입력 스트림을 GZIPInputStream에 랩핑하여 읽어야합니다).왜 안드로이드는 자산의 .gz 파일 확장자를 제거합니까?
이 표준적인 동작 또는 버그입니까? 그것이 표준이라면 어떤 확장 기능을 제거했는지 그리고 어떤 확장 기능이 보존되어 있는지에 대한 문서가 있습니까?
편집 : 나는 현명하게 것들을 misstated. 이클립스 플러그인에이 문제가 발생했습니다. 나는 aapt를 직접 실행하여 문제가 도구 자체에 있는지 또는 플러그인에서 어떻게 사용하고 있는지 확인하지 않았습니다.
안드로이드 자산 패키지 도구 (aapt에)이 파일에 .gz 인식하고이를 다시 압축하지 않고 한 .zip에 추가합니다 (즉, 그것은 GZIP 헤더를 스트립과에서 "압축"항목에 흠뻑 빠져들 수 있도록 zip 아카이브, 빌드 시간 최적화). 당신이 묘사하는 행동은 다르게 들립니다. – fadden
.gz 확장자 제거는 특히 프로그래머에게 친숙하지 않은 것처럼 보입니다. 또한 .apk 보관 파일은 다른 이름과 마찬가지로 assets 폴더의 같은 위치에 파일을 가지고 있습니다. –
이것은 aapt 내의 고의적 인 것으로 보인다. (아마도 파일 이름만을 기반으로한다.) 아마도 gzipped 일 경우 사람들을 혼란스럽게 할까? http://www.google.com/codesearch#uX1GffpyOZk/tools/aapt/Package.cpp&exact_package=git://android.git.kernel.org/platform/frameworks/base.git&q=%22Writing%20all%20files%22&type = cs & l = 309 –