2012-04-25 3 views
1

나는 상당한 양의 연구를 해왔고 Android 용 NDK (SDK가 그다지 많지 않음)를 실험 한 적이있다. 내가 실제로 발견 할 수 없었던 것은 비록 NDK 이 할 수없는 것 (예외 처리 및 rtti의 부족 이외에)에 대한 명확하고 간결한 정의이다.네이티브 액티비티와 U.I의 관점에서의 SDK 활동

게임용 코드와 안드로이드 용 게임 엔진 (전적으로 NDK로 작성)에 대한 코드를 맵핑했지만 많은 사람들이 지원하기를 희망하는만큼 지원되지 않습니다. 그뿐 아니라 내 게임에 섹시한 U.I.을 줄 수 있기를 바랍니다. OpenGL에서 처음부터 모든 것을 쓸 필요가 없습니다.

자바에서 더 쉬울 것이라고 확신하지만 NDK의 프런트 엔드/U.I인지 알고 싶습니다. 컴포넌트는 Touchscreen IO, Sound 및 Graphical Interfaces의 관점에서 Java와 비교할 수있는 지점까지 도달하고 있습니다. 최악의 시나리오 나는 U.I. 자바에서 그냥 네이티브 메소드를 호출하지만 가능한 한 더 많은 일을 할 수 있기를 바랍니다.

감사합니다.

편집 C++는 자바의 U.I. 파와도 다소있는 경우

기능 세트를 사용하면 두 가지 중 어느 것이 더 많은 제어 및 사용자 정의를 제공하는지 알면 멋집니다. 예를 들어 Java 구현은 사용하기가 더 쉽지만 프로그래머는 특정 모양과 유사한 "모양"을 미세 조정할 수있는 많은 옵션을 제공합니까?

답변

2

공식 NDK는 예외 처리를 할 수 있으며 rtti는 정상적으로 작동합니다. Android NDK와 함께 배포되는 "docs/CPLUSPLUS-SUPPORT.html"파일을 읽으십시오.

C++에서는 Java 인터페이스를 구현하고 Java 클래스를 상속하며 새 Java 클래스를 정의 할 수 없습니다. 그렇지 않으면 - 당신은 자바가 할 수있는 모든 것을 할 수 있습니다. Java 객체 멤버에 액세스하거나 Java 함수를 호출하는 것과 같은 많은 것들이 JNI의 사용을 필요로하고 그 코드는 실제로보기 흉하게 보일뿐입니다. 따라서 Java 클래스의 UI 생성/상속이 필요하다면 C++로 모든 것을 코딩 할 수 있습니다.

성능 중요한 코드에만 JNI를 사용하는 것이 좋습니다. 코드 혼합 - UI 용 Java, C/C++의 수학적 계산은 정말 쉽습니다. 또는 OpenGL ES를 사용하여 게임을 코딩하는 경우에도 좋습니다.

+0

활동 및 표면 뷰를 사용하여 Java에서 ES 2.0 컨텍스트를 초기화 한 다음 C/C++에서 나머지 GL 코드를 구현하는 것이 합리적입니까? – zeboidlund

+0

NativeActivity를 사용하지 않으면 그 방법이 있습니다. –