- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
Date 17/10/16 08:43:49
Name   T.Robin
Subject   외계어(?) 주의-Qt for Android를 직접 빌드해봤습니다

그러니까...... 사건은 며칠 전으로 거슬러 올라갑니다.


혹시 Android를 가지고 뭘 할게 없을까 생각하던 참에, 집에서 첫째녀석이 한글카드를 읽는게 보이더군요. Android에 마침 TTS 기능이 있어서, 이걸 이용하면 뭔가 해볼 수 있지 않을까 하는 생각을 하게 되었습니다. 그래서 Android Studio를 실행하고, Android의 "My First App" 예제를 따라하면서 TTS로 글자를 읽어주는 프로그램을 만들었습니다.


하지만 이 프로그램은 두 가지 심각한 결점(?)이 있었습니다.

1. 아들녀석이 이 프로그램만 찾더군요. 미취학 아동은 집중력도 짧고, 다양하게 이것저것 찔러보는게 중요한데, 한가지에 너무 집착하게 되면 오히려 발달에 역효과를 가져옵니다. 집사람 왈, 스마트폰 app은 바로 반응이 오기 때문에 아이들이 빠르게 중독될 뿐 아니라 참을성을 기르기가 어려워지는 문제점이 있다더니만, 그게 바로 눈앞에 펼쳐졌습니다. 평소에는 여러가지 장난감과 책을 오가던 녀석이, 프로그램을 만지고, 한시간정도 다른걸 하고 나더니 제게 와서는 다시 프로그램을 갖고 놀면 안되겠느냐고 하더군요. 순간 이건 아니라는 생각이 들었습니다. 중독될거 뻔히 보이는데(집사람은 유아교육 전공입니다) 덤으로 그딴거 뭐하러 만들었냐는 집사람의 타박도 들었고요. -_-

2. 느립니다. 느려요. 물론 1.0대에 비하면 미친듯이 빠르다지만, Java는 구조적으로 느릴 수밖에 없는 구조입니다. 맨날 C++만 만지다가 Java로 옮겨타니 이것저것 편의성은 끝내주는데 아주 답답하게 느립니다. 혹자는 차이가 나냐고 묻습니다만, 제게는 애니메이션 프레임이 맨눈으로 보이는 것 같은 착각까지 일더군요. 이쯤 되면 중증(......).


1번은 뭐 어쩔수 없지만, 2번은 그 속도를 어떻게 해야하나 고민하다가, 결국 가장 만만한(......) Qt for Android를 사용할 생각을 하게 되었습니다. 제조사의 공식 배포판을 쓰는 방법도 있지만, 저 공식 배포판이라는게 워낙 빌드를 구닥다리 툴들로 해놔서(JDK7+NDK r10) 마음에 안 들더군요. 그래서 최신판 도구로 직접 빌드하기로 마음먹었습니다. 초기 구성은 이랬습니다:

JDK 9+BuildTools 26.0.2+Android SDK level 19+NDK r15c


예외가 있다면 SDK level 19 정도인데, 저건 SDK 최신판을 돌렸다가는 제 전화기에서도 못 돌리는 상황이 나와버려서...... -_-;

Android Studio에 따르면, SDK 19면 Play Store에 접속하는 전화기들 중 90% 정도를 커버할 수 있다고 나오더군요.


당연한 이야기지만, 빌드는 다들 디립다 실패했습니다. 그래도 Android Studio로 한번 만들고 나니 빌드를 어떻게 해야 할지 대충 보이긴 하는데, Qt Wiki의 빌드법은 너무 오래된 구닥다리 방법이고(공식 배포판), 꼭 필요하지 않은 설정도 많고, 제 상황에 잘 맞지도 않는 것 같아 큰 도움이 되지는 못하더군요. configure 옵션을 어떻게 넣을지에 대한 기본 구조 정도는 도움이 되었습니다만 거기까지였습니다. 처음에는 Bluetooth LE가 없다고 나와서 이게 뭔소린가 하고 봤더니 Bluetooth LE는 API 21부터 지원되더군요(-_-). 뭐, 그거야 빌드할때 저 모듈을 빼는걸로 끝냈는데, 그 다음부터는 계속 빌드가 완료되었다고 나왔음에도 불구하고 프로그램을 만들어보려 하니 buildtool이 없다는 이야기가 나왔습니다. 그리고 저는 애꿎은 Android Studio와 Android SDK 설정만 이것저것 바꿔보면서 재컴파일을 했고, 결과는 당연히 실패...... -_-;


그래서 이것저것 삽질하다 뭔가 하나를 찾았습니다. 알고보니 Android SDK가 JDK 9을 제대로 인식하지 못하는 문제가 있더군요(-_-; ). Qt를 빌드할때 계속 Java가 없다고 투덜댔는데, 이게 뭔가 봤더니 Android SDK에 있는 find_java.bat 파일이 내는 에러였습니다. JDK를 8로 바꿨더니 모든 문제가 해결되더군요. Qt 자체가 워낙 덩치가 커서 빌드 완전히 끝내고 테스트하려면 최소 3~4시간 정도가 소요되는 탓에, 이 문제 하나 해결한다고 주말을 통채로 헌납해버렸습니다.


뭐, 결국엔 Hello World의 기동에 성공했습니다만, Java로 만든 프로그램을 Qt로 컨버전하려고 보니 Qt의 Text to Speech 모듈은 Android에서는 시스템 언어만 지원하고 다른 언어는 지원하지 못하는 문제가 있어서 절망했다는 이야기도 있습니다-이를테면, 시스템 언어가 한국어로 되어있으면 한국어만 읽을 수 있고 영어는 읽지 못한다는 거죠(Android Studio에서는 되는데. OTL).


소소하게 삽질 이야기좀 써봤습니다.


P.S:

Qt Wiki는 Qt for Android 빌드시 Android NDK r10을 쓰라고 해놓고, r11~14까지는 빌드가 안되는 문제가, r15 계열에서는 빌드는 되는데 app이 Qt library를 못 찾는 문제가 있다고 씌여있는데, 전 잘만 되더군요. 내용을 너무 방치해둔 듯 합니다. -_-




1


    목록
    번호 제목 이름 날짜 조회 추천
    6768 IT/컴퓨터22시간 노트북 나오면 사실건가요 snap 835 12 망고스틴나무 17/12/15 4632 0
    6743 IT/컴퓨터망 중립성 관련해서 청와대 청원이 열렸네요. 12 고먐미 17/12/08 5018 4
    6725 IT/컴퓨터'옵션 열기'의 정체 16 Toby 17/12/07 8787 34
    6723 IT/컴퓨터14년 역사 네이버 블로그가 바뀐다 3 벤젠 C6H6 17/12/07 4411 0
    6698 IT/컴퓨터ios 11.2에서 통신사 기능이 업데이트 되었습니다 2 Leeka 17/12/03 6328 0
    6697 IT/컴퓨터애플이 하이 시에라, ios 11에서 연타석 사고를 또 쳤습니다 10 Leeka 17/12/02 4042 2
    6681 IT/컴퓨터애플, High Sierra 초 긴급 보안 업데이트 배포 8 Leeka 17/11/30 3700 0
    6676 IT/컴퓨터[어플 추천] 핀크(finnq) 이정도면 거의 재무관리 끝판왕 18 기쁨평안 17/11/29 6831 2
    6667 IT/컴퓨터제로보드 게시판에는 몇 자까지 적을 수 있을까? 17 Toby 17/11/28 5102 0
    6557 IT/컴퓨터애플, 세계 최초 시총 9천억달러 돌파(한화 1000조 돌파) 5 Leeka 17/11/09 3777 0
    6506 IT/컴퓨터아이폰 X 사전예약 및 여러가지 잡설들 7 Leeka 17/11/01 3416 3
    6425 IT/컴퓨터뱀은 다리를 가지고 있다구 15 Toby 17/10/16 4808 10
    6422 IT/컴퓨터외계어(?) 주의-Qt for Android를 직접 빌드해봤습니다 12 T.Robin 17/10/16 7897 1
    6370 IT/컴퓨터모델러의 히포크라테스 선서 4 aqua 17/10/05 4331 7
    6355 IT/컴퓨터애플의 새로운 시스템, APFS 이야기 15 Leeka 17/09/28 5955 3
    6338 IT/컴퓨터acer aspire r15 후기 4 팅핑랩썬브클 17/09/26 4714 0
    6333 IT/컴퓨터가성비 끝장 노트북 추천해드립니다. 14 팅핑랩썬브클 17/09/25 5917 2
    6307 IT/컴퓨터컴퓨터 견적 150만원대 뽑아왔습니다. 구매 하루전. 많은 조언바랍니다.(키보드,모니터,스피커 포함가) 5 콩자반콩자반 17/09/19 5742 0
    6277 IT/컴퓨터아이폰 7로 보는 아이폰8, 8+, X의 예상 가격 6 Leeka 17/09/13 3125 1
    6272 IT/컴퓨터아이폰 차이점 간략 요약 19 Leeka 17/09/13 4508 0
    6249 IT/컴퓨터T맵이 평소랑 다른 길을 안내할 때... 13 Toby 17/09/08 4617 0
    6236 IT/컴퓨터아이패드 프로 12.9 2세대 2일차 사용후기 15 Leeka 17/09/06 11182 0
    6231 IT/컴퓨터[긴급] 혹시 알툴바나 스윙 브라우저의 자동 로그인 기능 “알패스”를 쓰시는 분이 계신가요? 24 April_fool 17/09/05 5645 0
    6195 IT/컴퓨터컴쫌알이 해드리는 조립컴퓨터 견적(2017. 9월) 25 이슬먹고살죠 17/08/29 7747 20
    6150 IT/컴퓨터다음달부터 시작될 애플과 구글의 코덱전쟁 2라운드 16 Leeka 17/08/23 6794 2
    목록

    + : 최근 2시간내에 달린 댓글
    + : 최근 4시간내에 달린 댓글

    댓글