추가하지도 않은 libRSSupport.so 파일이 apk에?

android 2019. 6. 20. 20:54

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

app 용량이 커지고 있어서.. 빌드된 apk를 풀어서 분석하던 도중에.. native lib 에 새로운 파일이 보였다. 

lib/armeabi-v7a/librsjni_androidx.so

lib/armeabi-v7a/libsjni.so

lib/armeabi-v7a/libRSSupport.so


lib/arm64-v8a/librsjni_androidx.so

lib/arm64-v8a/libsjni.so

lib/arm64-v8a/libRSSupport.so


이중에서 libRSSupport.so 파일의 용량이 제일 크고, 다 합치면 4MB를 넘는 것이었다.. 

소스코드에서는 찾을수 없는 파일이었고, 이름으로 유추해보면 RenderScript 관련된 파일 같은데, 

검색을 조금 해보니 다음과 같은 결과를 찾았다. 

렌더스크립트를 사용하기 위해서 gradle에 아래처럼 설정을 해주면 자동으로 들어가는 파일이었다. 

android {
    compileSdkVersion 
28

    defaultConfig 
{
        minSdkVersion 
9
        targetSdkVersion 
19

        renderscriptTargetApi 
18
        renderscriptSupportModeEnabled 
true

    
}
}

renderscriptSupportModeEnabled 항목을 true로 하면, buildtool 버전에 따라서 알맞는 버전의 so 파일이 같이 바인딩되어서 apk에 포함되는데, buildtool 버전을 28.0.3 사용하고 있다면 대략 64bit 기준으로 2.2MB 정도되는 so 파일이 포함된다. 

설명 : renderscriptSupportModeEnabled - Specifies that the generated bytecode should fall back to a compatible version if the device it is running on does not support the target version.

추가되는 파일 : https://android.googlesource.com/platform/prebuilts/fullsdk-linux/build-tools/28.0.3/+/androidx-paging-release/renderscript/lib/packaged/arm64-v8a/libRSSupport.so 

그런데 신기한점은 내가 renderscript를 사용안하고 있는데, 해당 so 파일이 포함되었다. ㅠㅠ 

조금더 찾아 보니, 원인은 glide-transformations 이었다. 

해당 현상이 issue로도 등록되어 있는데 ( https://github.com/wasabeef/glide-transformations/issues/133 ) 아직 문제해결은 안되어 있는 상태다.  glide-transformations에서 제공하는 BlurTransformation 에서 rs를 사용하는듯 하다.  사용안하는 기능때문에 32bit, 64bit 합쳐서 4MB가 추가된다니 좀 아까워서..  gradle 설정에서 아래를 추가해보고 확인해 봤다. 

renderscriptSupportModeEnabled false


그래도 추가된다.  그지같다. 

결론 : 사용하고 있는 transform 코드만 가져다 붙이고 glide-transforamtions 의존성을 제거하는 방법 밖에 없다.. ㅠㅠ




: