안드로이드 바인더(Android Binder) 강의 Part 2

오는 2010년 10월 15일 “제6회 Korea Android 세미나”에서 안드로이드 바인더에 대한 이야기를 조금 더하기로 했습니다. 지난 번에는 커널 장치 관리자 수준까지 내려가서 바인더의 하부 기작을 분석하는데 집중했습니다. 안드이드가 제공하는 RPC가 어떤 형태로 구현되어 있는가를 찾는 작업이었다고 보여집니다.
하지만 이번 강의는 반대 방향에서 접근하려고 합니다. 주 관심 영역을 애플리케이션과 같은 높이에 두고, 바인더의 설계 목표가 무엇이며, 애플리케이션에는 [...]

바인더의 한계와 전망

“안드로이드 바인더 소개” 페이지의 제5장 “바인더의 한계와 전망”을 포스트했습니다. 5장은 2009년 발표때 시간이 모자라 생략했던 부분입니다.

안드로이드 바인더 소개

안드로이드 서비스 관리자(Android Service Manager)

“안드로이드 바인더 소개” 페이지의 제4장 “서비스 관리자(Service Manager)”를 포스트했습니다. 이제 제5장만 올리면 끝납니다.

안드로이드 바인더 소개

안드로이드 바인더 데이터 전달 메커니즘

“안드로이드 바인더 소개” 페이지의 제3장 “바인더의 데이터 전달”을 포스트했습니다. 제4장은 다음 주 월요일쯤에…

안드로이드 바인더 소개

안드로이드 바인더 소개

2009년 10월 22~23일에 열린 제4회 Korea Android 세미나에서 “안드로이드 바인더” 라는 제목으로 짤막한 강의를 한 적이 있습니다. 장치 관리자 수준의 저수준 기작에 대한 분석을 제공하는 것이 목적이었고, 고수준의 기작에 대한 소개는 다음 기회로 미룬다는 말씀을 드렸던 것으로 기억합니다. 다행히 오는 10월 15일에 열리는 제6회 Korea Android 세미나에서 그 약속을 지킬 수 있을지도 모르겠습니다. 아직 구체적인 [...]

안드로이드(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와 [...]