안드로이드 에뮬레이터를 사용하여 앱을 테스트할 때, 구버전까지 지원하도록 만든 경우, 낮은 버전에 대한 테스트를 진행해야 한다.
이때, 에뮬레이터를 사용하는데, 4.X 버전을 사용하는 경우, 한문, 일어등은 정상적으로 표시되는 반면, 한글은 정상적으로 표시되지 않는 증상이 있다. 이를 해결하기 위해서 system.img 파일에 한글을 표시할 때 사용할 NanumGothic.ttf, NanumGothicBold.ttf 파일을 추가해주면 된다.
방법은 다음과 같다.
(아래의 방법은 우분투를 기준으로 합니다. 윈도우는 이번에 bash 가 추가되었다고 하니 비슷하게 사용할 수 있지 않을까 합니다.)
1. android-sdk-linux 폴더의 system-images 의 4.X 버전대의 폴더를 선택한다. 여기서는 설명을 위해서 android-17 을 선택하여 이동하였다.
(내 개발 PC 기준으로 ~/Develop/android/android-sdk-linux/system-images/android-17/google_apis/x86$ 의 위치에 system.img 파일이 있다.)
(x86 이 기본적으로 CPU 가상화 가능을 이용하여 속도가 빠르니까...)
2. mount 명령어를 이용하여 system.img 파일을 마운트한다.
1) 마운트를 위한 폴더를 하나 만든다.
명령어 : mkdir mnt
2) 마운트 명령어를 이용하여 system.img 파일을 mnt 폴더에 마운트 한다.
명령어 : sudo mount -t etx4 -o loop system.img mnt
3) 복사 명령을 이용하여 NanumGothic.ttf, NanumGothicBold.ttf 폰트를 복사한다.
복사할 위치는 mnt/fonts 폴더이다.
명령어 : sudo cp <나눔폰트가 있는 위치/폰트명> <블라블라>/mnt/fonts/
4) 언마운트 명령어를 이용하여 마운트를 해제한다.
명령어 : sudo umount mnt
3. 폰트가 추가된 system.img 파일의 system image 의 가상머신을 시작해본다. 언어설정을 한글로 설정하지 않아도 한글 폰트가 정상적으로 보이면 다행!!!!!!! 아니면 위 과정을 다시 수행한다.
4.X 버전대에는 나눔고딕폰트가 한국어에 대한 기본 폰트이므로 위에서 이야기한 2개의 폰트를 추가하면 잘 작동한다.
혹시 폰트의 mod 값이 644 가 아닌 경우 변경해준다. (-rw-rw-r--), 왜인지는 모르겠는데, 실행권한이 있으면 안되는 듯.. 테스트해보지 않아서 모르겠다.
마지막으로 잘 적용된 android sdk 17 버전의 에뮬레이터 동작 화면, 한글이 정상적으로 표시된다.
끝.