2012-01-17 4 views
31

자바를 사용하여 Android에 간단한 앱을 썼습니다.Android : Java, C 또는 C++?

그것은 헤더 및 활동을 구축 할 수 있도록 라이브러리, 핸들 사용자 입력, 사용 하드웨어 센서, 액세스 응용 프로그램 리소스를 제공 더, C 또는 C++로 프로그래밍 할 때 :
그러나 나중에 나는이 발견했다.

안드로이드 애플리케이션은 자바 프로그래밍 언어로 작성된 :이 관련되는 방법 (Source)

. (Source)

세 가지 언어 모두 가능합니까?
바보 같은 질문에 사과드립니다.

답변

33

당신이 링크하는 문서는 좋은 정보를 가지고 있습니다. 또한 다음과 같은 과 연결됩니다 :

NDK는 대부분의 응용 프로그램에 도움이되지 않습니다. 개발자로서 그 이점과 단점을 조화 시키려면 이 필요합니다. 특히 기본 코드를 사용해도 성능이 자동으로 향상되지는 않지만 항상 은 응용 프로그램의 복잡성을 증가시킵니다. 일반적으로 네이티브 코드는 응용 프로그램에 필수적인 경우에만 사용해야합니다. C/C++로 프로그래밍하는 것이 더 좋기 때문이 아닙니다.

NDK는 일반적으로 신호 처리, 물리 시뮬레이션 등과 같이 많은 메모리를 할당하지 않는 자체 포함 된 CPU 집약적 인 작업입니다. 간단히 C 에서 실행할 메서드를 다시 코딩하면 성능이 크게 향상되지 않습니다. 네이티브 코드로 개발해야하는지 여부를 검토 할 때는 요구 사항에 대해 을 생각하고 Android 프레임 워크 API가 에 필요한 기능을 제공하는지 확인하십시오. 그러나 NDK는 기존 C/C++ 코드의 큰 코퍼스를 재사용하는 효과적인 방법이 될 수 있습니다 ( ).

4

Java에서는 항상 "원시 코드"구성 요소를 호출 할 수 있습니다. 그러나 가능한 경우 코드에서 미묘한 버그 및 플랫폼 종속성을 유발할 수 있으므로 가능한 경우이를 피하고자합니다.

그러나 C/C++에서 Android 용 전체 애플리케이션을 코딩 할 수 있다고는 생각하지 않습니다. 최소한 Java 래퍼가 있어야합니다.

3

AFAIK, c 또는 C++는 센서 관련 기능이나 하드웨어와 같은 질문에 대해 Android API를 사용하는 것보다 핵심적인 dalvik 기능을 실제로 프로그래밍하려고 할 때 좋은 질문입니다.

API를 사용하여 빌드 응용 프로그램을 만들려면 대부분 Java/XML로 작성해야합니다.

+0

Dalvik은 대부분 C++로 작성되었지만 JVM에서 작업하는 것은 Android 용 응용 프로그램 작성과 실제로 같지 않습니다. C++ api는 Java보다 훨씬 제한적입니다. 센서 용 기본 API가 존재하는지조차 알지 못합니다. 분명 Java에 대한 API도 있습니다. – Voo

5

Android는 Linux의 밑에 있으므로 어떤 언어로도 실행할 수 있습니다. 재미있게 Android 휴대 전화에서 Perl 스크립트를 실행했습니다. 실용적인 응용 프로그램 개발의 관점에서 보면 Dalvik에서 실행되는 Google의 Java 구현이 일반적인 경로가 될 것입니다.

2

다시 작성this investigation에 따라 17 배 성능/배터리 수명을 향상시킬 수 있습니다 C 에서 그 "많은 메모리를 할당하지 않는 자체 포함, CPU 집약적 인 작업"중 하나를. This article은 CCTOOLS Fortran을 실행하는 것이 훨씬 빠릅니다. 따라서 대체 언어는 고려 가치가 있습니다.