2016-06-21 1 views
-1

나는 어떤 형태로든 구글에서 아래의 문을 참조하십시오Android가 Java를 지원하지만 다른 언어를 지원하지 않는 이유는 무엇입니까?

안드로이드 는 자바 라이브러리 나는 자바에서 오는하고

을 많은 수의 기준으로 지원하기 때문에

안드로이드 개발의 대부분은 자바를 기반으로 웹 응용 프로그램 배경. 나는 "Windows가 특정 언어를 지원하지만 Linux는 지원하지 않는다"는 말을 들어 본 적이 없습니다. 그렇다면 모바일 OS의 맥락에서 안드로이드가 자바를 지원하는 이유는 무엇입니까? 모든 OS의 역할은 명령을 실행하는 것이며 특정 언어를 지원하지 않는 것입니다. 맞습니까?

저는 여기에 기본적인 것이 빠져 있다는 것을 알고 있습니다 만, 그게 뭔가?

+0

더 많은 android and java와 매우 흡사합니다. android는 Java 기반입니다. –

+0

OS가 자체적으로 언어 프로그램을 전혀 실행하지 않습니다. 컴파일러/인터프리터/링커가 필요합니다. 안드로이드 OS에서 C# 컴파일러를 추가하십시오! – Rohit5k2

+0

BTW C++에서 NDK와 코드를 사용하거나 C#에서 Xamarin과 코드를 사용할 수 있습니다. – Rohit5k2

답변

4

그렇다면 모바일 OS의 맥락에서 우리가 안드로이드를 지원한다고 말하는 이유는 무엇입니까?

"우리"가 누구인지는 알 수 없습니다. 숙련 된 컴퓨터 프로그래머는 그런 말을하지 않을 것이고, 심지어 당신이 만든 견적서도 그렇게 말하지 않을 것입니다.

모든 OS의 역할은 특정 언어 권한을 지원하지 않는 명령을 실행하는 것입니까?

수정. 뿌리를 내린 안드로이드 기기가 있다면 원하는 언어를 Android로 포팅 해보십시오. 맞춤 ROM 모드에서는 지원되는 언어로 원하는 프로그램을 실행할 수 있습니다.

그러나 대부분의 사람들은 Android 기기를 뿌리 째 뽑지 않았습니다. 일반적인 Android 기기에서 Android 프레임 워크는 프로그래밍에 쉽게 사용할 수있는 것에 제한을두고 있습니다.

  • 당신이 뿌리 안드로이드 장치

    를 실행 거의 비슷하다 서버, 완벽하게 제어 할 수 있습니다 곳 사람들을 :

    예를 들어, 당신은 두 가지 주요 범주로 자바를 지원하는 서버의 세계를 나눌 수 있습니다 당신이 할 수있는 모든 다른 사람에 의해 관리되는 자바 구동 서버에서 실행되는 WAR 및 관련 파일 (예를 들어, 고정 자산)을 업로드입니다

  • 사람들은

후자의 시나리오에서는 프로그래밍에 완벽한 유연성을 가지지 않을 것입니다. 아마도 JVM 기반 스크립팅 언어를 통합 할 수 있지만 C++ 사용에 어려움이있을 수 있습니다. OS —에서 문제가되지 않습니다. 서버 자체가 C++ 프로그램을 완벽하게 실행할 수 있습니다. 이것은 여러분의 코드가 실행되고있는 프레임 워크의 문제입니다 (요즘 WAR를 사용하는 사람들은 서버 측 Java 개발에서 일한 이래로 오랜 시간이 걸렸습니다).

Android 개발을위한 기본 프레임 워크는 Java를 기반으로합니다. WebView의 호의에 따라, 이것은 또한 하이브리드 개발 (HTML/CSS/JS)을위한 후크를 열어 준다.NativeActivity을 사용하면 C/C++로 전체 Android 앱을 작성할 수 있습니다. 다양한 툴체인을 사용하면 Android 프레임 워크에서 작동하는 것으로 컴파일되는 다른 언어 (예 : Kotlin)로 작성하고 스크립트 언어를 내장 할 수 있습니다. 그러나 여전히 프레임 워크를 고수 할 필요가 있습니다. 프레임 워크는 수행 할 수있는 작업과 수행 할 수있는 작업에 제한을두고 있습니다. 이것은 안드로이드 OS의 잘못이 아니라 오히려 프레임 워크입니다.

+0

당신이 'OS에서 문제가되지 않는다.'라고 말하면 서버 자체가 C++ 프로그램을 완벽하게 실행할 수 있습니다. 그것은 당신의 코드가 실행되고있는 프레임 워크의 문제입니다. 여기서 프레임 워크는 jvm 명령어가 os에 의해 android, windows, Linux와 같이 잘 해석되는 Java 용 jvm을 의미한다고 믿습니다. 하지만 비슷하게 C++의 환경은 정상적인 안드로이드 장치에 의해 올바르게 해석되지는 않습니다 (그러나 유인 된 안드로이드로 해석 될 수 있음). 여기서 말하는 거니? – emilly

+0

@emilly : "여기서 프레임 워크는 자바 용 jvm을 의미합니다"- 아니요. 그 맥락에서, 나는 당신의 WAR 컨테이너 (Tomcat? Jetty? – CommonsWare

+0

좋아, 그럼 응용 프로그램/전쟁 컨테이너 (바람둥이 같은) 지침은 잘 안드로이드, 윈도우, 리눅스와 같은 운영 체제에 의해 해석됩니다. 하지만 비슷하게 C++의 환경은 정상적인 안드로이드 장치에 의해 올바르게 해석되지는 않습니다 (그러나 유인 된 안드로이드로 해석 될 수 있음). 여기서 말하는 거니? – emilly

-2

예, Android는 Java를 기반으로합니다. 그러나 최근에 할아버지 델파이는 Delphi 코드를 기본 안드로이드 코드로 변환해야하는 불의 원숭이를 인수했습니다. 그런 식으로 기본 응용 프로그램처럼 실행됩니다.

관련 문제