코딩하는 일용직 노동자

빌드시 jni .so 파일을 제외시키는 방법 본문

안드로이드

빌드시 jni .so 파일을 제외시키는 방법

bacass 2021. 1. 13. 20:49

앱을 구글 플레이 스토어에 등록할때 apk파일의 경우 100MB의 용량제한이 있다.
하지만 오래되고, 기능이 많고, 다양한 라이브러리를 품고있는 앱이라면 이 용량이 한계에 다다르는 경우가 있다.

이번엔 쓸모없는 jni .so 파일을 빌드시 제외시키는 방법을 알아보자.

libffmpeg.so 파일이 7.1MB를 차지하고 있다.


lib/armeabi-v7a/libffmpeg.so 파일이 7.1MB를 차지하고 있다.
이 파일을 빌드시 포함하지 않도록 해보자.

build.gradle 파일에 아래와 같이 처리를 해주면 된다.

android { 
    packagingOptions {
        exclude 'lib/armeabi-v7a/libffmpeg .so'
    }
}

libffmpeg.so 파일이 제외된 채 빌드가 되었다.


이렇게하면 libffmpeg.so 파일이 포함되어 있지 않으며, 이전의 파일보다 용량이 작은것을 알 수 있다.

폴더 전체를 포함하지 않게 하려면 아래처럼 하면 된다.

android { 
    packagingOptions {
        exclude 'lib/armeabi-v7a/**'
    }
}

 

반대로 원하는 라이브러리 폴더만 포함시키는 방법도 있다.

android {
    ...
    defaultConfig {
        ...
        ndk {
            abiFilters 'armeabi', 'armeabi-v7a'
        }
    }
}

원하는 라이브러리 폴더만 빌드에 포함시킬 수 있다.