답변:
Android API는 Java입니다. Google은 2010 년부터 C / C ++ 개발자를위한 NDK (SDK)를 제공합니다.
NDK는 두 가지 방법을 제공합니다.
NDK는 C / C ++ API를 거의 제공하지 않습니다.
그러나 많은 API는 Java 전용입니다 (JNI를 통해 사용 가능).
NDK 5 버전은 다음을 제공하기 때문에 C ++ 개발자가 사용할 수있는 첫 번째 버전입니다.
가장 고통스러운 작업은 안드로이드 장치에서 디버깅하는 것입니다. 따라서 데스크탑 플랫폼, 첫 번째 iOS 플랫폼 (시뮬레이터) 및 마지막 (Android)에서 먼저 디버깅 할 수있는 자체 다중 플랫폼 프레임 워크 (OS X, Windows, Linux, iOS 및 Android)를 개발합니다.
Android 에뮬레이터 (시뮬레이터 아님)의 성능이 저하되어 OpenGL ES 2.x를 에뮬레이트 할 수 없습니다. 실제 장치를 개발하는 것이 좋습니다.
많은 유용한 정보를 찾을 수 있습니다.
두 개의 SDL + OpenGL 게임을 Android로 이식 하기 위해 Android NDK 를 성공적으로 사용했으며 놀랍도록 쉽습니다. GL 컨텍스트를 만들고 C ++ 코드가 콜백 할 수 있도록 입력, 사운드 및 이미지로드와 같은 유틸리티 클래스를 제공하는 200 줄 Java 래퍼가 있습니다. NDK의 "San-Angeles"샘플 프로그램은 훌륭한 출발점입니다.
그건 그렇고, Java 라인없이 C / C ++ 프로그램을 빌드하는 것이 가능하지만 때때로 JVM을 콜백하여 일부 OS 레벨 메소드에 액세스하는 것이 편리하다는 것을 알았습니다.
게임이 이미 Linux에서 컴파일되면 집처럼 느껴질 것입니다. 현재 프로젝트의 100 개 이상의 파일 중 4 개에만 #ifdef ANDROID_NDK
지시문 (이미지 및 사운드 관련 클래스)이 있습니다.
사실 게임 포팅에 소비 된 대부분의 시간은 내가 알지 못하는 알려진 에뮬레이터 버그 때문 이었습니다.
ANDROID_NDK_ROOT
이에 있는지, 설정 $PATH
(함께 [sdk_location]/tools
하고 [sdl_location]/platform-tools
); 프로젝트 디렉토리로 이동하십시오. ndk-build
;를 사용하여 NDK 코드를 컴파일하십시오 . Java 코드를 컴파일하고 ant compile
;를 사용하여 패키지를 빌드하십시오 . 을 사용하여 에뮬레이터 또는 연결된 장치에 업로드하십시오 ant install
. 엔진 오픈
Android는 버전 1.5부터 Android NDK를 통해 기본 애플리케이션을 지원하므로 대상 사용자를 매우 잘 처리해야합니다. JNI를 통해 애플리케이션의 기본을로드하고 입력 및 렌더링 호출과 같은 간단한 Android Java 애플리케이션이 여전히 필요합니다.
NDK에는 여러 가지 버전이 있지만 최신 NDK를 사용하고 지원하려는 대상 API를 선택할 수 있습니다. Android 버전 2.3부터는 기본적으로 더 많은 작업을 수행 할 수 있고 Java 코드가 덜 필요하지만 2.3에 대한 장치 지원은 현재 매우 제한적입니다.
기본 Android C / C ++ 개발은 최소한 전체 화면 게임에 적합한 솔루션이며 기존 C / C ++ OpenGL ES 응용 프로그램을 이식하는 데 필요한 노력은 매우 작습니다.