|
지난 3년간 안드로이드와 관련된 부분들은 주로 앱을 만드는 것부터 시작해서 안드로이드 프레임웍까지 관심을 가져왔다. 이 책은 '안드로이드의 모든 것 분석과 포팅' 이후 버전으로 나온 책으로 서문에 따르면, 원래 이전 책에서 다루고 싶었지만, 시간 관계상 미뤄졌던게 드디어 책으로 나왔다고 한다. 국내에서 안드로이드의 구조를 분석한 책은 몇권 되지 않아서, 개인적으로 다 보았었는데(저자의 이전 책 포함), 편집이나 흐름 자체가 이전 책과 비슷한 맥락이다. 책은 전반적으로 NDK를 다루고 있고, 현재 나와 있는 NDK로 지원안되는 부분들에 대한 방법(PDK)도 제시하고 있다. (어차피 NDK나 SDK나 PDK에 포함되는 관계이므로 라는 설명으로) 책 전반적인 구성은 JNI와 같은 C/C++와 자바를 이어주는 가교부터 시작해서, 빌드하는 방법, NDK 관련해서는 주로 지원되는 라이브러리(OpenGL, Neon 등)와 관련된 예제에 대한 설명이 주를 이룬다. Makefile 관련해서는 필요한 설명만 되어 있어서, 실습할 때 발생하는 예외적인 경우는 구글링으로 찾아봐야 될 것이다. 책을 읽으면서 좋았던 부분중에 하나는 저자가 이전에 실제 삽질한 결과나 고생했던 것에 대한 케이스에 대한 설명이 있다는 것이고(ex) 라이브러리를 불러 오는 과정에 있어서 순서가 꼬인 경우), 전반적으로 학습하기에 정리가 잘 되어 있다는 점이다.(처음 부터 예제를 설명하지 않는다. 필요한 기본 선수 지식에 대한 설명이 되어 있다.) 책을 읽으면서 인상깊었던 부분은 예전에 과제를 진행하면서 불편하지만, 있는지 조차 몰라서 쓰지 못했던 것들이다. 나같은 경우 JNI쪽의 SWIG을 비롯해서 디버깅쪽에 addr2line, ndk-gdb 등이다. 또한 중반 이후로 순수(?) NDK를 지나서 PDK로 넘어가게 되면 직접적으로 binder 의 개념자체가 필수불가결하게 되는데, 이러한 설명이 구조와 연관된 부분이라 이 책에서는 많이 다루지 않아서 이 부분은 이책만 봐서는 이해하기 힘들것이다. 그리고 Appendix 에서 안드로이드와 관련해서 대략적인 설명을 하고 있는데, NDK와 관련해서 큰 그림을 먼저 알고 싶다면, 먼저 봐도 괜찮을 것 같다. 아쉬운점으로 IT 전공서적의 특징상 책의 소스코드가 사실 그렇게 보기 좋게 나열된 것은 아니다. 소스코드가 끝난 다음에서야 설명이 등장하는 식인데, 주석처럼은 아니지만 중간중간에 설명을 인라인화 시키는 것이 가독성 측면에서 어떨까 생각한다. <덧붙여> 혹시나 NDK를 모르는 사람들을 위해서 한가지 이야기를 하자면, 기존의 안드로이드 앱 개발방식이 SDK를 통한 자바 개발환경이었다면, NDK는 C/C++ 환경을 제공한다는 것이다. 여기서 NDK에 대해서 자바 코드가 전혀 없이 순수하게 C/C++로 작성하는 방법이라고 잘못 알고 있는 경우도 있는데 그렇지 않다. java 코드에서 jni 인터페이스를 통해서 C/C++ 라이브러리를 호출하는 것이 NDK이다. 심지어 액티비티를 네이티브 수준으로 끌어 내리는 NativeActivity 예제만 봐도 java 코드에서 C/C++로 작성된 so library를 로드하여 콜백 하는 형태로 되어 있다. |
|
국내에서 안드로이드 NDK관련 서적이 3권정도로 나와있고 번역서가 아닌 유일한 서적이기도 하다. NDK는 C나 C++같은 네이티브 코드 언어를 사용하여 응용 프로그램의 일부를 구현할 수 있도록 하고, 기존 코드를 재사용 할 수 있도록 제공하는 하나의 개발 툴 킷이다. C/C++의 좋은 어플리케이션을 활용할수도 있고 자바에서 처리하지 않고 C/C++에서 처리할 수 있는 장점을 가졌다. 물론 NDK를 사용하지 않아도 충분히 안드로이드로 어플리케이션을 만드는데 문제는 특별히 없다. 특정 분야에 많이 사용이 되어지다 보니... Charter01 ~ Charter03 Charter04 ~Charter06 Appendix 안드로이드는 무엇인가? 좋은 장점을 가지고 있으나 C/C++의 대한 기본적인 개념, 오픈소스 혹은 리눅스에 대한 지식을 가져야 쉽게 다가갈수 있을 듯 하다. 이 책에서는 이러한 어려움 부분을 쉽게 풀어나가고 예제를 통해 알려주고 있다. 저자가 현재 NDK강사 활동을 하고 있어서인지 실제 개발에 있어서 필요로 하고 도움이 되는 부분을 잘 정리하고 소개해주고 있다.
|
|
안드로이드의 모든것 NDK 이 책은 NDK, SDK, PDK에 대한 예제와 SDL등 안드로이드의 어플을 만드는데 필요한 여러가지 부가적인 코딩을 설명해 주고 있다. 필요한 부분만 찾아서 봐서 전체적으로는 다 읽지는 못하지만 게임등을 만드는데 썼던 SDL등 예제가 그나마 많아서 좋았다. 그러나 책의 이름이 안드로이드의 모든것인데 책의 두께나 이론적인 것은 약한것 같다. 영어만 잘하고 소스코드만 보기에는 구글의 사이트를 참고하는게 좋지만 역시나 우리말이 좋으니 이책만큼 NDK에 대한 예제가 많은건 없을것 같으니 꼭 봐야겠다. 개인적으로 인사이드 안드로이드와 이 책 2권을 같이 보면서 공부하면 좋을것 같기도 하다. 빨리 시간을 내서 전체적으로 봐야겠다. |
|
모바일 세계의 두 축은 애플OS와 안드로이드입니다. 다만 안드로이드 생태계를 이끄는 구글은 자체 생산 시스템을 갖지 않다 보니 다른 업체에 물리적 제조를 대행시켜 소비자를 만납니다. 물론 안드로이드 OS가 해당 기기의 소프트웨어 전부는 아니며, 상당 비중으로 각 하드웨어 메이커들이 개별 제품에의 최적화를 위해 별도 펌웨어를 만들어 적용합니다. 그러나 안드로이드는 여전히 폰의 대뇌이자 척수 노릇을 수행하며 갤럭시를 비롯한 여러 스마트폰은 이 생태계 안에서만 생존이 가능하죠. 따라서 안드로이드를 이해하는 건 모바일이 주도하는 가상세계 질서의 절반을 파악하는 것과 같습니다. |
|
이 책의 장점이자 단점을 꼽자면, 책이 얇고 소스가 많다는 점이다.
어찌보면 이 책은 너무나 당연하다듯 Java를 이용한 SDK로 안드로이드 프로그래밍을 어느정도 해보지 않았다면 다가갈 수 없도록 구성되어 있다는 느낌을 받을 수도 있다.
하지만 따지고 보면, JNI 가 아무리 생소하다 한들, 말로 백번 설명하는 것보다는, 여러 예제들을 통해 직접 익히게 하는 방법이 이 책의 구성에서는 가장 좋았다는게 나의 평이다. 적어도 나에게는 이 방법이 가장 적절하다는 생각이다.
NDK를 이용하여 뭔가를 만들어내길 원한다는 듯한 기대로 이 책을 보려 한다면, 그런 기대는 다른 책을 통해 하는 것이 좋다. |
|
어느덧 한빛리더스 5기 마지막 미션입니다. 마지막 미션 도서로 선택한 것은 최근 관심을 가지기 시작한 안드로이드 NDK 개발과 관련하여 시중에 몇 없는 도서중 하나인 [안드로이드의 모든 것 NDK] 입니다.
보라, 저 안드로봇의 당당한 자태를 <-
1. 책소개 앱의 기본 개념부터 설명한 친절한 NDK 집필서
이 책에서는 단지 안드로이드 NDK로 개발한 동적 로딩 라이브러리를 자바 애플리케이션에서 호출하여 사용하는 방법에 그치지 않고, NDK에 포함되지 않은 안드로이드 프레임워크의 리소스를 사용하는 방법도 다루고 있으며 실제 안드로이드의 프레임워크가 작동하는 방식과 유사한 서비스를 만들면서 커널 드라이버까지 접근하여 하드웨어 조작까지 할 수 있도록 설명한다. 『안드로이드의 모든 것 분석과 포팅』(2011) 집필진의 두 번째 책 전작 『안드로이드의 모든 것 분석과 포팅』이 안드로이드 운영체제를 배운 후 사운드, 카메라, GPS 등을 철저히 분석하고 포팅을 다루는 책이라면 『안드로이드의 모든 것 NDK』는 자바로 안드로이드 애플리케이션을 작성하다가 막히는 독자에게 잘 알려지지 않은 저자의 노하우를 친절하게 알려준다. 마법 같은 NDK로 안드로이드의 네이티브 라이브러리를 활용해보자. 2. 목차 CHAPTER 00 들어가며
CHAPTER 01 안드로이드 NDK는 무엇인가?
1.1 안드로이드 NDK의 등장 배경
1.2 NDK에서 제공되는 것
1.3 개발 환경
1.3.1 JDK 설치
1.3.2 안드로이드 SDK 설치
1.3.3 이클립스와 ADT 플러그인 설정
1.3.4 NDK 개발 환경 설정
1.3.5 PDK 설정
1.4 안드로이드 개발 방법
1.4.1 SDK를 이용한 개발 방법
1.4.2 NDK를 이용한 개발 방법
1.4.3 PDK를 이용한 개발 방법 소개 및 동작 구조
1.4.4 Android Debug Bridge
CHAPTER 02 NDK 개발을 위한 안드로이드 애플리케이션 기초 쌓기
2.1 안드로이드 애플리케이션의 구조
2.2 안드로이드 애플리케이션 구성 요소
2.2.1 액티비티
2.2.2 서비스
2.2.3 BroadcastReceiver
2.2.4 ContentProvider
2.2.5 인텐트
2.3 안드로이드 애플리케이션의 라이프 사이클
2.3.1 액티비티 라이프 사이클
2.3.2 서비스 라이프 사이클
2.3.3 BroadcastReceiver 라이프 사이클
2.4 안드로이드 애플리케이션의 퍼미션
CHAPTER 03 본격 NDK 개발!
3.1 네이티브 라이브러리 개발을 위해 알아야 할 것
3.2 JNI
3.2.1 JNA
3.2.2 SWIG
3.2.3 JNI
3.3 JNI 구현 순서
3.4 자바에서 네이티브 코드 호출하기
3.5 네이티브 코드에서 자바로 접근하기
3.6 x86에서 JNI 연습
3.7 안드로이드 Makefile
3.7.1 Android.mk 분석
3.7.2 Application.mk 분석
3.8 C와 C++에서 JNI 구현 시 차이점
3.9 SDK, NDK, PDK 로그 출력
3.9.1 SDK 로그 출력
3.9.2 NDK 로그 출력
3.9.3 PDK 로그 출력
3.10 예제1: 더하기 프로그램
3.10.1 안드로이드 새 프로젝트 생성하기
3.10.2 자바 애플리케이션의 기본 레이아웃 변경하기
3.10.3 자바 코드 수정하기
3.10.4 JNI 규약에 맞는 라이브러리 생성하기
3.10.5 .c 파일을 만들고 컴파일하기
3.11 예제2: 외부 라이브러리 활용하기
3.12 라이브러리 의존성 문제
3.13 JNI_OnLoad
3.14 한글 처리
3.15 자바와 NDK의 속도 차이
3.16 네이티브 스레드로 자바 콜백 만들기
3.17 안드로이드 디버깅
3.17.1 addr2line
3.17.2 gdb를 이용한 디버깅
3.17.3 프로파일링
CHAPTER 04 NDK에서의 그래픽 처리
4.1 bitmap-plasma
4.2 NDK 3D
4.2.1 자바 애플리케이션에서의 OpenGL ES 사용
4.2.2 NDK에서의 OpenGL ES 1.x
4.3 SDL 포팅
4.3.1 SDL이란 무엇인가?
4.3.2 안드로이드 자바와 SDL의 연결
4.3.3 SDL 활용
4.4 Native Activity
4.4.1 프레임워크 내부와 연결점
4.4.2 Native Activity를 만들어 보자
4.5 STL과 Neon의 사용
4.5.1 STL
4.5.2 NEON
CHAPTER 05 NDK의 확장
5.1 플랫폼 안에서 사용되는 네이티브 라이브러리
5.2 NDK용 Android.mk와 전체 소스용 Android.mk의 차이점
5.3 skia 라이브러리로 애플리케이션 만들기
5.4 안드로이드 전체 소스 컴파일 방법
5.5 자바 애플리케이션에서 GPIO 컨트롤하기
CHAPTER 06 멀티미디어
6.1 안드로이드 네이티브 AudioFlinger 활용과 OpenSL ES
6.1.1 네이티브 AudioFlinger 제어
6.1.2 OpenSL ES
6.2 네이티브에서 Surface 접근하기
6.2.1 안드로이드처럼 직접 Surface를 사용하려면 어떻게 해야 할까?
6.2.2 테스트용 애플리케이션
6.3 OpenMAX AL
6.3.1 OpenMAX AL 개요
6.3.2 동작 구조
6.3.3 안드로이드 OpenMAX AL
6.3.4 OpenMAX AL 예제
6.4 안드로이드에서 FFmpeg 활용
6.4.1 안드로이드 멀티미디어 구조
6.4.2 안드로이드 프레임워크에서의 멀티미디어
6.4.3 안드로이드 애플리케이션 계층에서의 멀티미디어
6.4.4 FFmpeg 개요
6.4.5 FFmpeg의 구성
6.4.6 안드로이드 FFmpeg
APPENDIX 안드로이드는 무엇인가?
A.1 안드로이드의 개념
A.2 안드로이드 역사
A.3 안드로이드 특징
A.4 안드로이드 라이선스와 오픈 소스 라이선스
A.4.1 Dalvik VM
A.5 안드로이드 시스템 구조
A.6 우분투와 VirtualBox로 NDK 개발 환경 설정하기 3. 리뷰 안드로이드 SDK를 통해 개발을 하다보면 한계에 부딛치거나 기능적으로 제약이 발생하는 경우가 있다. 리눅스를 기반으로 하는 안드로이드이기 때문에 네이티브 언어를 통한 개발이 가능한데, 이에 대한 환경을 제공해 주는 것이 NDK이다. (자세한 설명은 구글링을 조금만 해보면 나오기 때문에 패스) 쉽게 이야기한다면, SDK는 자바를 기반으로 한 개발환경이고 NDK는 C/C++을 기반으로 한 개발환경이라고 생각하면 된다. 초보 개발자에게는 매우 복잡한 일이 되는데, SDK는 자바만 할줄 알면 어플리케이션 개발에 별다른 문제가 없지만 게임이나 장치 연동 등에 NDK가 필요한 경우(실제 게임같은 경우에는 속도와 성능 측면에서 SDK로 개발하는 일이 별로 없는 것으로 알고있다) C/C++까지 사용해야 하는 경우가 발생할 수도 있다. 이러한 측면에서 이 책은 NDK 개발이 필요한 개발자에게 좋은 책이 될 것이다. 리눅스를 설치해야 하는 번거로운 부분이 존재하지만, 설치부터 NDK 개발, 그래픽 처리, 멀티미디어 처리 등 다양한 부분에 대해 자세하게 설명이 되어있다. 또한 이해를 돕기 위해 많은 분량의 소스코드를 첨부하여 어느정도 프로그래밍에 대해 이해하고 있다면 충분히 도움이 될 것이라 생각한다. 전반적으로 깔끔한 레이아웃과 가독성 높은 글씨체의 사용으로 눈에 잘 들어오며, 코드를 보고 머리가 어지럽지 않다면 크게 무리는 없을 것이다. (수록된 예제들의 충실함이 이를 말해주고 있다) 하지만 아무래도 C/C++과 자바 설명이 함께 들어가있기 때문에 기초 지식이 없다면 다소 어려울 수 있다. 독자의 이해를 돕기 위해 순서도와 그림으로 최대한 풀어서 설명하고 있는 것은 장점이지만, NDK라는 것 자체가 생소할 수 있기 때문에 독자의 기초 지식이 어느정도 요구되야 할 것 같다. 나의 경우에는 C와 자바 초급 수준이기 때문에 생각했던 것보다는 이해하는데 다소 난이도가 있었지만, 개발 경험이 있다면 충분히 이해하리라 믿는다. NDK에 대해 좀더 자세히 공부하고 싶거나, NDK를 통해 안드로이드 어플리케이션을 개발하고자 하는 개발자라면 읽어보는 것을 추천하고 싶다.
|
|
작년한 해 동안 webOS 개발을 진행 한 후 올해부터 다시Android multimedia 개발로 돌아오게 되었다. Android 개발을 진행하면서늘 그래왔듯이 더 나은 그리고 더 많은 개발의 노하우를 얻기 위해 많은 책을 섭렵하려고 노력해 왔다. NDK에대해서도 참고할 만한 개발서를 찾았었기에 NDK 개발과 관련되어 잘 정리된, 2013년 11월 현재 유일한 국내 저자의 집필 서적인, "안드로이드의 모은 것 NDK" 라는 제목의 책을보게 되었다.
이책은 크게 6개의 장으로 구성되어 있으며, 안드로이드 NDK에 대한 소개부터 Multimedia와 관련된 내용까지 다루고있다.
NDK 혹은 Android Platform을 개발하는 사람이 스스로누군가의 도움 없이 개발에 입문하고자 한다면 이 책의 1장"안드로이드 NDK는 무엇인가"가무척 많은 도움이 될 것 같다. 기본적인 개발 환경의 설치부터 개발과 관련된 전체적인 구조에 대해서설명하고 있기 때문이다. 2장에서는 간단히 Androidapplication에 대해서 설명하고 넘어간다. NDK가 application의 기능을 C/C++로 확장하기 위해서 존재하는것이기 때문에 application과의 관계는 떼고 싶어도 떼어 낼 수 없기 때문이다. 3장에 들어가면서 NDK를 사용한application의 example을 다루며 NDK 개발방법에 대해 자세히 설명하며 NDK의 개발의 이점인 성능에 대해서까지 언급하고 넘어간다. 4장에서는 NDK에서의 그래픽 처리 방법을 설명하며, bitmap-plasma부터 게임 개발에 유용하게 사용되는 SDL(Simple DirectMedia Layer)와 Native activity의 사용법등에 대해 다룬다. 5장에서는 NDK의 개발과platform에서의 개발간의 차이를 설명하며, 6장에서는 AudioFlinger의 제어 방법 및 OpenSL ES 및 native surface의 access 방법에 대해서 설명한다. 뿐만 아니라 Android multimedia의 core로서 사용되는 OpenMAX의 AL(Application Layer)과 ffmpeg의 사용에 대해간략히 설명하고 넘어간다.
이 책은 Android NDK를 사용해서 application의 성능을 높이고자 처음 시도하는 개발자들에게 많은 도움이 될 수 있는 책이다. 뿐만 아니라 안드로이드 platform 개발자들에게 있어서도 도움을줄 수 있는 책이다. 처음 개발을 시도하는 사람들이 쉽게 개발을 시도 할 수 있도록 NDK 개발 환경에 대해서 상세히 설명하고 있기 때문이다. 아쉬운 점은이 책엔 platform에 대한 깊은 설명은 거의 없다는 것이다. 좀더 깊이 있는 내용을 기대하는 독자들에게 있어서는 다소 아쉬움을 남길 수 있는 부분이라고 생각한다. NDK 환경을다루는 방법 그 자체만을 집중적으로 다루고 있기 때문이다. 그러나platform에 대해서 깊이 있게 다루고 있는 책들이 몇 권 시중에 나와 있기에 더 깊은 내용을 알고 싶다면 그 책들을 참고 하기로하고 NDK 환경의 사용 그 자체에 대해서 참고하기에 무척 좋은 책이라고 생각한다.
|
|
제목: “안드로이드의 모든 것 NDK: C/C++을 이용한 안드로이드 앱 개발 방법” 작년 한 해 동안 webOS 개발을 진행 한 후 올해부터 다시 Android multimedia 개발로 돌아오게 되었다. Android 개발을 진행하면서 늘 그래왔듯이 더 나은 그리고 더 많은 개발의 노하우를 얻기 위해 많은 책을 섭렵하려고 노력해 왔다. NDK에 대해서도 참고할 만한 개발서를 찾았었기에 NDK 개발과 관련되어 잘 정리된, 2013년 11월 현재 유일한 국내 저자의 집필 서적인, "안드로이드의 모은 것 NDK" 라는 제목의 책을 보게 되었다. 이 책은 크게 6개의 장으로 구성되어 있으며, 안드로이드 NDK에 대한 소개부터 Multimedia와 관련된 내용까지 다루고 있다. NDK 혹은 Android Platform을 개발하는 사람이 스스로 누군가의 도움 없이 개발에 입문하고자 한다면 이 책의 1장 "안드로이드 NDK는 무엇인가"가 무척 많은 도움이 될 것 같다. 기본적인 개발 환경의 설치부터 개발과 관련된 전체적인 구조에 대해서 설명하고 있기 때문이다. 2장에서는 간단히 Android application에 대해서 설명하고 넘어간다. NDK가 application의 기능을 C/C++로 확장하기 위해서 존재하는 것이기 때문에 application과의 관계는 떼고 싶어도 떼어 낼 수 없기 때문이다. 3장에 들어가면서 NDK를 사용한 application의 example을 다루며 NDK 개발 방법에 대해 자세히 설명하며 NDK의 개발의 이점인 성능에 대해서까지 언급하고 넘어간다. 4장에서는 NDK에서의 그래픽 처리 방법을 설명하며, bitmap-plasma부터 게임 개발에 유용하게 사용되는 SDL (Simple DirectMedia Layer)와 Native activity의 사용법 등에 대해 다룬다. 5장에서는 NDK의 개발과 platform에서의 개발간의 차이를 설명하며, 6장에서는 AudioFlinger의 제어 방법 및 OpenSL ES 및 native surface의 access 방법에 대해서 설명한다. 뿐만 아니라 Android multimedia의 core로서 사용되는 OpenMAX의 AL(Application Layer)과 ffmpeg의 사용에 대해 간략히 설명하고 넘어간다. 이 책은 Android NDK를 사용해서 application의 성능을 높이고자 처음 시도하는 개발자들에게 많은 도움이 될 수 있는 책이다. 뿐만 아니라 안드로이드 platform 개발자들에게 있어서도 도움을 줄 수 있는 책이다. 처음 개발을 시도하는 사람들이 쉽게 개발을 시도 할 수 있도록 NDK 개발 환경에 대해서 상세히 설명하고 있기 때문이다. 아쉬운 점은 이 책엔 platform에 대한 깊은 설명은 거의 없다는 것이다. 좀 더 깊이 있는 내용을 기대하는 독자들에게 있어서는 다소 아쉬움을 남길 수 있는 부분이라고 생각한다. NDK 환경을 다루는 방법 그 자체만을 집중적으로 다루고 있기 때문이다. 그러나 platform에 대해서 깊이 있게 다루고 있는 책들이 몇 권 시중에 나와 있기에 더 깊은 내용을 알고 싶다면 그 책들을 참고 하기로 하고 NDK 환경의 사용 그 자체에 대해서 참고하기에 무척 좋은 책이라고 생각한다.
|
|
올해 초에 간단한 안드로이드 앱을 구현한 적이 있다. (참조 : http://jack2.tistory.com/280 ) 그 때 당시 앱을 구현할 때에는 SDK(software development kit)만을 이용하여 구현을 했다. 하지만 이 생각을 깨주는 계기가 있었다. 바로 외부에서 스마트 폰 관련 스터디를 하면서 기존에 가장 많이 사용하고 있는 언어인 C/C++ 를 Android 에서 컴파일하여 실행할 수 있다는 사실을 알게 되었다. (참조 : http://www.hackerschool.org/Sub_Html/HS_Posting/?uid=20 ) 이 사실을 알고 나서도 아~ 이런게 있었구나 하고는 자세한 내용에 대해서는 몰랐는데 지난 달에 NDK 와 관련된 서적이 출간된 것을 확인하고 이 책을 읽어보게 되었다. 전체적인 구성을 보면 NDK 에 대한 설명, NDK 를 이용한 개발방법, 본격적인 NDK 개발 등의 내용으로 구성되어 있다. 영어로 된 해외자료 보다는 한글로 되어있어서 바로바로 이해 할 수 있었던 영어에 약한(?) 개인적으로 많은 도움이 되었다. 좋았던 점은 NDK 에 대해 잘 몰랐던 사람들에게 개념을 이해하기에는 좋은 책인 것 같다. NDK 관련 번역서가 아닌 국내서여서 인지 필자의 노하우(?)가 중간중간에 담겨서 읽을 때 좀 더 쉽게 이해할 수 있었던 것 같다. 전체적인 개념과 해당 용어에 대해 생소한 분들이 찾아보면 좋은 책이 되지 않을까 하는 생각이다. 끝으로 아쉬웠 던 점은 부제가 C/C++ 라이브러리를 이용한 안드로이드 앱 개발이어서인지 어플리케이션과 관련된 내용이 많았다. C/C++ 언어가 강력한 이유는 로우레벨에 접근하기 용이하기 때문인데, 그래서 NDK 를 이용하여 로우레벨에 접근 할 수 있는 다양한 방법에 대한 설명도 있었으면 하는 아쉬움이 남았다. 다음에 NDK 관련 서적이 나온다면 어플리케이션단 뿐만 아니라 NDK를 이용하여 그 아래 단에 관련된 내용도 함께 수록되면 나와 같은 독자들의 호기심을 충족 시켜 주지 않을까 하는 생각이다. |