안드로이드(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) 2.0.1 SDK 출시

안드로이드 SDK 가 업데이트되었습니다. 2.0 은 2.0.1 로 올라갔고, 1.6 역시 리비전이 증가했습니다. SDK Tools와 ADT 도 업데이트되었고요.
모든 2.0 기기는 올해 안에 2.0.1 로 업그레이드된다고 합니다. 즉 2.0 기기는 사라질 거라는 뜻이지요. 2.0.1 을 API 레벨 6 으로 구분한답니다, 이에 반해 2.0은 레벨 5을 사용했습니다. 2.0 을 좀 서두른듯했고, NDK 출시가 늦어지고 있어 이유가 뭘까 [...]

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

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

hello.zip

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

android-gcc 를 소개합니다.

최근 시간 날 때마다 파이썬(Python)을 안드로이드(Android) 환경으로 이식하는 작업을 하고 있습니다. 이 과정에서 발견한 NDK 관련 이슈들을 몇 개 포스트 하기도 했습니다. 오늘은 작업 도중 부산물로 얻어진 스크립트 하나를 소개 드릴까 합니다. android-gcc라 이름 붙인 이 스크립트는,  NDK 에 포함된 툴체인을 NDK의 빌드 환경에서 분리하여, 좀 더 일반적인 gcc의 동작을 흉내 내는 것입니다. 파이썬을 이식하는 [...]

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

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

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

오늘 안드로이드 2.0 소스가 공개되자마자 NDK 부터 살펴봅니다. 지난 달에 2.0 SDK 는 이미 공개되었지만, NDK는 아직 나오지 않았습니다. 지난 버전(1.6)은 SDK 출시 이후 두 주 만에 NDK가 출시된 전력이 있습니다. 아직 정식 출시되지는 않았습니다만 eclair 브랜치에 들어있는 2.0 NDK 의 바뀐 내용들을 살펴봅니다.

예전에 포스트로 알려드린 설치스크립트 host-setup.h 의 문제가 해결된 것으로 보이고
당연히 android-5 가 [...]

안드로이드(Android) 2.0 소스가 공개되었습니다

Eclair 브랜치에 머지가 이루어진 것으로 보입니다. repo 로 elair 브랜치를 선택할 수도 있습니다. 이 것으로 안드로이드 2.0 소스가 모두 공개된 것인지는 분명하지 않고, 앞으로 추가의 머지가 이루어질 가능성도 있습니다. 어쨌거나 그 동안의 우려에도 불구하고 예상보다 빨리 소스 공개가 시작되어 다행입니다. SDK 발표 이후 17일만 입니다. 이리 저리 내용물들을 좀 살펴본 다음에 다시 포스트 하겠습니다.
관련 포스트:

안드로이드(Android) [...]

안드로이드(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 의 리눅스(Linux) 설치 스크립트 오류

Cygwin 으로 작업하는데 한계를 느껴서, 오늘 NDK 개발 환경을 리눅스로 옮기려고 한다. VMWare 위에 올린 Ubuntu 에 리눅스용 Android 1.6 NDK 를 설치하려고 하니 오류 메시지를 인쇄하고는 실패하고 만다. 최종 단계인 build/host-setup.sh 을 실행하는 도중에 일어나는 일인데, 출력되는 메시지는 이렇다.
Checking host development environment.
NDK Root : /home/flowdas/android-ndk-1.6_r1
GNU Make : make (version 3.81)
[: [...]