안드로이드(Android) NDK와 VFP

VFP란?
VFP(Vector Floating Point)는 ARM 에서 IEEE 부동 소수점 연산 표준(ANSI/IEEE Std 754-1985 Standard for Binary Floating-Point Arithmetic) 을 만족하는 단정도(single-precision)와 배정도(double-precision) 부동 소수점 연산을 제공하는 보조 연산장치다. Vector 라는 단어에도 불구하고 진정한 SIMD(Single Instruction Multiple Data)를 제공한다고 보기는 힘들지만, ARM 에서 제법 실수 연산의 성능 향상에 기여하고 있다.
VFP의 작동 방식은?
VFP가 지원되는 CPU는 기본 ARM명령어 외에 [...]

안드로이드(Android) NDK 실행파일 프로젝트 예제

얼마 전에 안드로이드(Android) NDK로 실행파일을 만드는데 사용되는 BUILD_EXECUTABLE 이라는 변수를 소개 드렸습니다. 하지만 잘 되지 않는다고 말씀하시는 분들이 있어서 예제 파일을 제공해드립니다. 여기 있습니다.

hello.zip

hello.zip 파일을 NDK의 apps 디렉토리에 푸시면 됩니다. 디렉토리가 apps/hello/project 이런 식으로 되면 됩니다. 이제 Cygwin 에서 다음과 같은 명령을 통해 결과를 확인하실 수 있습니다. 저는 1.6 NDK를 사용했습니다. 생성되는 실행파일은 1.5 용입니다. [...]

안드로이드(Android) NDK로 실행파일 만드는 법

우연한 기회에 s3c6410 보드와 관련된 현상에 대해 의견을 나누던 중, NDK로 JNI용 공유 라이브러리가 아니라, 실행 파일을 만드는 방법에 대한 질문을 받았습니다. 생각해 보니 문서에 나와있지 않기 때문에, 궁금해하실 분들이 더 있을 것 같아 기록해 둡니다.
 Android.mk 파일의 BUILD_SHARED_LIBRARY 를 BUILD_EXECUTABLE로 바꾸고, main() 함수를 제공하면 실행 파일이 생깁니다.
 NDK 문서에는 BUILD_SHARED_LIBRARY 와 BUILD_STATIC_LIBRARY 만 언급되어 있지만, 1.5와 [...]

안드로이드(Android) NDK는 wchar_t을 지원하지 않습니다.

오늘 Android 1.6 NDK에 포함된 툴 체인(Toolchain)을 사용하여 파이썬(Python) 3.1.1을 빌드 할 수 있는지 실험해 봤다. 목적은 NDK에 포함된 라이브러리가 어느정도의 호환성을 갖고 있는지 가늠해보기 위해서다. 자세한 결과는 나중으로 미루고 이번 포스트에서는 간단한 내용 몇개만 짚고 넘어간다. 구글링을 해보면 RandomSplat 에 파이썬 2.6.2를 크로스컴파일 하는 내용을 발견할 수 있다. 이 곳에 3.1.1 을 위한 패치가 [...]

The Go Programming Language

C++, Objective-C, C#. 이름만 보아도 C에서 유래한 언어들이 참으로 많습니다. 그 이름에서는 드러나지 않지만 Java역시 거슬러 올라가면 C를 만나게 됩니다. C에 의해 대체되어 지금은 사라진 언어로 보아야 합니다만, 이 C 의 전신이 B 입니다. 살아있는 전설, 유닉스(Unix)의 아버지 Ken Thompson의 작품입니다. Ken Thomson 이 C 에서 파생된 또 하나의 언어를 들고 돌아왔습니다. Go 라는 이름을 [...]

안드로이드(Android) 1.6 NDK 출시

SDK가 출시된 지 두 주 만에, NDK가 출시되었습니다. 이전의 포스트에서 미리 살펴본 내용과 다르지 않기 때문에 자세한 내용은 생략합니다.
관련 포스트:

안드로이드(Android) 1.6 NDK 의 리눅스(Linux) 설치 스크립트 오류
안드로이드(Android) 1.6 NDK 미리 보기 – OpenGL ES 지원
안드로이드(Android) 1.6 SDK r1 출시
Now available: Android 1.6 NDK
Download Android 1.6 NDK, Release 1

안드로이드(Android) 1.6 NDK 미리 보기 – OpenGL ES 지원

어제 안드로이드 1.6 SDK 가 출시되었습니다만, NDK 에 관한 소식은 아직 없습니다. 그래서 Donut 소스 트리로 직접 들어가 미리 보기로 합니다. NDK 폴더에 있는 CHANGES.TXT 를 보니 1.6 NDK 에 관한 내용이 들어가 있군요. 게임 개발자들 눈이 번쩍 뜨일 구절이 있네요. “OpenGL ES”. 친절하게도 “San Angeles Observation” 라는 데모도 함께 온다고 합니다. CHANGES.TXT 를 덧붙입니다.
관련 [...]

C++은 어디로 가고 있는가?

DDJ 에 실린 Bjarne Stroustrup 의 <The C++0x “Remove Concepts” Decision> 을 보면 “Concept” 가 제거되며 C++0x의 일정 역시 연기되어 C++1x로 바뀐다고 한다. 기사에서는 “Concept”를 제거하는 결정을 하게 된 배경을 설명하고 있는데, 5년 정도의 재 작업 후에 다시 들어가리라는 희망에도 불구하고 C++ 위원회가 시대에 뒤쳐진 것은 아닌가 하는 의구심을 버릴 수가 없다.
지금 사용하고 있는 C++표준은 [...]

Android 1.5 NDK Release 1

안드로이드 블로그에서 갑자기 날아든 소식. NDK 가 나왔습니다.
 http://android-developers.blogspot.com/2009/06/introducing-android-15-ndk-release-1.html
 NDK 는 독립 형 C 응용을 제작하기 위한 것은 아니고, Dalvik VM 용 응용에서 JNI 를 통해 사용할 수 있는 공유라이브러리를 제작하기 위한 도구입니다.(플랫폼 빌더를 위한 도구는 더더욱 아닙니다.) 때문에 NDK 는 ARMv5TE 타깃을 위한 크로스 툴 체인(gcc 4.2.1)과 헤더및 공유라이브러리들을 포함하고 있을 뿐만 아니라, 안드로이드 SDK 와 [...]

C++ Coding Standards

C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (C++ In-Depth Series) –
Sutter, Herb/ Alexandrescu, Andrei/Addison-Wesley Professional

2005년은 C++ 부흥이 시작되는 해입니다. 표준라이브러리 확장 규격인 TR1 이 올해 내로 발표되어 컴파일러 업체들을 꽤 분주하게 만들 겁니다. 또 C++ 의 다음버전인 C++0x 의 표준화 작업이 시작되는 해이기도 합니다. 이 책은 C++을 C++스럽게 사용하도록 하는 코딩 스타일을 [...]