Skip to content

FreeType:Android:NDK

Android NDK에서 FreeType을 사용하는 방법에 대하여 설명한다.

Android NDK에서 FreeType 사용하기

에뮬이나 단말기에서 libskia.so를 로컬의 라이브러리 폴더로 복사한다. 버전마다 다른것 같은데 제시한 나의 환경에서는 이 파일에 FreeType이 들어 있는 것을 확인했다.

C:\cygwin\home\Administrator\android-ndk\build\platforms\android-8\arch-arm\usr\lib

Android.mk파일에 추가한 libskia.so파일을 등록한다.

LOCAL_LDLIBS+=-L$(SYSROOT)/usr/lib -lskia 등등의 방법으로...

네이티브 코드에 FreeType 헤더를 추가하여 함수를 사용한다.

#include <ft2build.h>
#include FT_FREETYPE_H

NDK에서 FreeType 폰트사용

안드로이드 플랫폼에는 freetype 폰트 라이브러리가 포함되어 있지만 ndk에서 제공하지 않기 때문에 에뮬이나 폰에서 pull 명령어로 가져와야 한다. freetype font 라이브러리 위치는 /system/lib/libskia.so 이다.

adb pull /system/lib/libskia.so

추출된 라이브러리를 해당 플랫폼의 NDK lib 폴더에 복사한다. NDK r5버전의 Android 2.2 라이브러리 폴더는 아래와 같다.

android-ndk-r5b\platforms\android-8\arch-arm\usr\lib\

JNI컴파일libskia.so를 링크하도록 Android.mk를 수정한다.

LOCAL_LDLIBS := -lskia

freetype 헤더 파일을 사용하기 위해 아래 링크에서 freetype 파일을 다운받는다. URL은 http://sourceforge.net/projects/freetype/files/ 이다.

압축을 풀고 include폴더 안에 있는 헤더파일들을 NDK include 폴더(android-ndk-r5b\platforms\android-8\arch-arm\usr\include\)에 복사한다. NDK r5버전의 Android 2.2 헤더파일 폴더는 아래와 같다.

JNI코드에서 아래와 같이 헤더파일을 추가하여 사용한다.

#include<ft2build.h>
#include FT_FREETYPE_H

See also

Favorite site