Android에서 Java를 선택한 이유는 무엇입니까?


46

C ++과 같은 대신 Java를 선택한 이유는 무엇입니까? Java가 상당히 많은 메모리를 사용한다고 들었으므로 모바일 장치에서 메모리 사용이 적을 것이라고 생각합니다. 모바일 장치에서 C ++와 같은 언어 대신 Java를 사용하면 어떤 이점이 있습니까?


29
사소한 점은 구글이 안드로이드를 시작한 것이 아니라는 점이다. Google은 Java 사용을 포함하여 Android를 구입했습니다.
세계 엔지니어

2
@ZJR : Google에서 사용되는 주요 언어는 항상 Java, Python 및 C ++입니다. Java는 항상 안드로이드 이전에도 존재했습니다.
UncleZeiv

15
안드로이드는 자바 사용 언어NOT 가, Java 가상 머신을 큰 차이는 심지어 자신의 바이트 코드 형식을 사용합니다. 이 질문은 그 의도에 결함이 있으며 건설적인 방법이 아닙니다!

8
@JarrodRoberson 나는 그것이 전염병으로 전개되지 않는 한 건설적인 것이라고 생각하지만, 지역 사회는 말합니다 ...
maple_shaft

5
나는 역사적 중요성에 관한 질문대한 메타 토론을 바탕으로 다시 열었습니다 . 소프트웨어 개발의 역사와 관련 주제에 대한 질문은 여기에서 주제이며 가치를 추가합니다. 이 질문에 대한 문구와 그 답을 감안할 때이 질문이이 커뮤니티에 적합하다고 생각합니다.
Thomas Owens

답변:


40

기사 는 상황에 대해 간략히 설명 합니다. 이 기사에서 가장 적절한 링크는 다음과 같습니다 . 따라서 언어를 아는 많은 프로그래머가있는 대규모 설치 기반을 가지고 있으며 대학에서 널리 가르치고 있습니다. 학교의 커리큘럼에서 C ++을 삭제했지만 Java는 여전히 여기에 있습니다. Java에는 다른 휴대폰에 대규모 설치 기반이있는 Java ME가 있습니다. 내가 주머니에 가지고있는 Pantec Ease는 화면 모서리에 작은 커피 잔을 가지고 있습니다. 그게 뭔지 알아?

스택 오버플로에 대한답변 도 꽤 잘 설명되어 있습니다.

SO 답변 요약 :

자바는 알려진 언어이며, 개발자는 그것을 알고 배울 필요가 없습니다.

포인터 산술이 없기 때문에 c, c ++ 코드보다 Java로 자신을 촬영하는 것이 더 어렵습니다.

그것은 VM에서 실행되므로 모든 전화에 대해 다시 컴파일 할 필요가 없으며 보안이 쉽습니다.

Java를위한 많은 개발 도구 (첫 번째 참조)

여러 휴대 전화에서 이미 Java를 사용 했으므로 Java는 업계에서 알려졌습니다.

속도 차이는 어셈블리에서 코딩해야하는 경우 대부분의 응용 프로그램에서 문제가되지 않습니다.


1
아, 당신이 나를 이길 수 있으므로 목록에 추가하겠습니다. Java를 선택한 또 다른 이유 (관리 언어)를 추가하는이 다른 SO 질문을 발견했습니다. - stackoverflow.com/questions/5605575/...
쇼나

1
고마워, 이것은 내 질문에 대답했다. 서로 다른 Android 실행 장치마다 다시 컴파일하지 않아도 실제로 Java를 선택하는 데 큰 도움이됩니다. 왜 그런 생각을하지 않았는지 모르겠습니다. 감사!
cgt

2
시장에 몇 개의 안드로이드 기기가 흩어져 있는지를 감안할 때, 다른 방법으로는 다루기가 거의 불가능합니다.
세계 엔지니어

3
이것은 정확하지만 어떤 언어를 선택했을 수 있습니다. 그들은 심지어 새로운 것을 쓸 수도있었습니다. 그들은 VM을 만들었습니다. Java는 명확하게 정의 된 VM 사양의 이점을 가지고 있습니다.
Michael K

18

나는 구글이 친숙 함을 위해 자바를 선택한다고 추측 할 것이다. 많은 Google 프로젝트는 최소한 Java 회로도 개념 (예 : GWT)을 회전시킵니다.

또한 기술 학교에서 널리 가르치는 언어입니다 (Android도 열심히 지원하는 Javascript와는 달리). Java는 성능과 생산 측면에서 모바일 장치에 가장 적합한 언어는 아니지만 잘 알려져 있습니다.

또한 안드로이드가 파티에 조금 늦게 왔음을 기억하십시오. 개발자가 저수준 컴파일 언어 인 C ++를 사용하게하면 '와우'요소를 생성하기가 더 어려워지며, 그렇지 않은 경우 Android가 수많은 앱과 플래시를 필요로합니다.


3
앱 개발에 대한 아이디어가 마음에 듭니다. 나는 전에는 그런 생각을하지 않았지만 말이됩니다. +1
Russell

6
이 경우 Java를 통한 C ++ 로의 혐오감은 번쩍임 및 와우 요소와 관련이 없으며 개발자가 시장에서 응용 프로그램을보다 빠르고 쉽게 작성할 수있는 능력과 관련이 있다고 생각합니다. 사양이 작성 될 당시 일반적인 지식은 iPhone의 성공이 Apple이 개발자에게 앱 개발을 매력적으로 만드는 성공과 관련이 있다는 것입니다. C ++는 대부분의 개발자가 삼키기가 너무 어려웠으므로 Java의 최소 성능 손실은 그만한 가치가있었습니다.
maple_shaft

8
@maple_shaft : 진짜 ?? 아이폰의 성공은 매력적이지 않고 매력적이지 않은 앱 개발 방식에도 불구하고 항상 나에게 보였다.
Carson63000

3
@maple_shaft : 여기 Carson에 동의해야합니다. iOS 개발은 악몽입니다. 애플 에코 시스템 외부에서 아무도 Objective-C를 사용하고 있지 않은 이유가있다. 그리고 그것이 당신이 만든 앱을 실제로 배포하려고 할 때 애플의 명백한 악의적 용어를 다루기 전에도있다.
Mason Wheeler

@Jeffrey, Android가 JavaScript를 지원한다고 말하는 이유는 무엇입니까?
Pacerier

9

왜 정확히 Java를 선택했는지 확실하지 않지만 여러 가지 이유로 인한 것일 수 있습니다.

  1. Java에 익숙하고 사용하는 대규모 개발자 그룹을 캡처하려면

  2. Java가 부족한 J2ME와 같은 기술이있는 Java의 모바일 격차를 해소하십시오.

둘째, Android 용으로 지정된 Java Virtual Machine이 없습니다. 대신 모든 Java 코드가 모바일 환경에서 실행되도록 특별히 설계된 경량의 최적화 된 VM 인 Dalvik 에서 실행되도록 컴파일 됩니다. 배터리 수명을 향상시키고 효율적인 리소스 사용을 극대화합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.