1. JNI 컴파일 관련.
JNI를 컴파일 하면, so가 생성될텐데, 이 so 를 apk에 포함하려면 어떻게 해야 할까?Android Studio에서는 gradle의 설정을 이용하면 되는데
app/build.gradle에서 다음과 같이 설정해주자.
buildTypes { debug{ signingConfig signingConfigs.debug } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets.main { jniLibs.srcDir 'src/main/libs' jni.srcDirs = [] }
>> 포인트는 sourceSets.main부분이다.
생성된 so를 src/main/libs 에 집어넣는다.,, --> ndk-build 하면 자동으로 들어가도록 만든다.
일반적으로 /src/main/jni 디렉토리에서 컴파일을 하면 그렇게 된다.
>> android studio에서 실행을 하면 자동적으로 알맞은 so가 /data/data/패키지명/lib 에 들어가게 된다.
2. 기타 알면 좋은 팁
앱을 실행하면 자동적으로 libapp.so가 생성되는 경우가 있다.1번의 과정을 거쳤다면 사용자의 so가 복사 되었을 테지만, libapp.so 도 중복생성되는 경우
jni.srcDirs = [] 를 해주면 생기지 않는다.
댓글 없음:
댓글 쓰기