문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 Android (문단 편집) == 성능 == 기본적으로는 [[ARM(CPU)|ARM]] 프로세서로 포팅되어 있으며 MIPS, Power Architecture, x86-64로도 포팅이 되어 있다. 지원하는 언어는 커널 쪽은 [[C언어|C]], 몇몇 라이브러리는 [[C++]], 그리고 UI 및 응용 소프트웨어는 [[Java]]로 되어있다.[* 2017년에는 Google이 Android의 공식 언어로 [[Kotlin]]을 추가함에 따라 앞으로의 응용 소프트웨어들은 Kotlin으로 제작되는 경우도 늘어날 것으로 보인다.] [[가상 머신]]은 Java VM이 아니라 자체 개발한 [[달빅|Dalvik VM]]을 사용한다.[* DVM이라고도 한다. 현 Oracle의 JVM의 특허를 피해가기 위한 편법. 실제로도 이것 때문에 2010년부터 2021년까지 [[오라클(기업)|Oracle]]과 법정 싸움을 다툰 적이 있다.] 이후 [[Android Kitkat|4.4]]에서 [[안드로이드 런타임|ART]]가 개발자용으로 탑재되었고 [[http://clien.net/cs2/bbs/board.php?bo_table=news&wr_id=1755631|AOSP 4.4 ART 기본값 기사]] [[Android Lollipop|5.0]]에서는 기본으로 사용하도록 하여 [[달빅|Dalvik]]을 완전히 대체하였다.[* 아예 Dalvik을 활성화시키는 태그가 사라졌다. Android 4.4까지만 해도 개발자 옵선에서 ART와 Dalvik을 선택할 수 있었는데 5.0부터는 개발자 옵션에서도 달빅을 선택할 수 없게 되었다.] [[Linux]] 커널을 기반으로 한 OS이고 [[Java]] 가상 머신을 사용하여 성능은 좀 떨어질지라도[* 이를 보완하기 위하여 네이티브 코드인 NDK도 제공하고 있다.] 호환성 하나는 막강하여[* x86 프로세서인 클로버트레일이 장착된 Android 기기가 나왔지만 호환성 문제를 거의 겪지 않았다. 이는 인텔이 Houdini Binary Translator을 x86 Android에 내장했기 때문이기도 하다.] ARM 코어 프로세서뿐만 아니라 다른 플랫폼으로도 포팅이 가능해 스마트폰, [[PMP]]는 물론이고 [[태블릿 컴퓨터]], [[텔레비전]] 심지어 [[PC]]에도 포팅이 가능하다. 하지만 Google Android 인증 조건에 터치스크린, GPS, 카메라 등의 조건이 반드시 필요하기 때문에 사실상 스마트폰이나 일부 태블릿 컴퓨터 그리고 디지털 카메라[* 사례가 나왔다. [[갤럭시 카메라|바로 이거]]……] 이외에는 인증을 받기가 어렵다.[* 단 인증을 받지 않으면 Google의 서비스를 이용 못할 뿐이지 Android 자체를 사용하는 데는 지장이 없다. Android 역시 이런 상황에 대처하기 위해 Google의 서비스 없이도 Android가 돌아갈 수 있는 여러 장치를 해뒀지만 그래도 Google의 서비스가 없는 Android를 소비자가 얼만큼 반길지는 의문이다. 게다가 '''Google이 인증하지 않은 Android는 "Android"라는 상표나 명칭도 못 쓴다.''' 이런 것들은 '''[[AOSP]]'''라고 따로 불린다. 지금 기준으로 보면 Android라는 상표권과 인증 여건 때문에 Android 자체보다는 AOSP만을 [[오픈 소스]]로 쳐주는 편. Google의 다른 제품으로 비교하면 [[Chrome]]과 [[The Chromium Projects|Chromium]]의 관계와 비슷하다.] 사실 Android는 Linux 커널 이외에 다른 커널에서도 동작이 가능하다고 한다. Windows 커널 기반으로 동작하는 [[Windroye]](구 WindowsAndroid)가 있다. 이론상으로는 Android는 Linux 커널 기반이므로 Android 앱을 다른 Linux 계열 운영체제에서 구동할 수 있다. 하지만 Android 앱은 독자적인 포맷 파일(APK)을 사용하고 그 외에도 Android 자체 라이브러리를 사용하므로 구동 불가능하다. 예를 들면 Linux에서는 GUI를 만들기 위해 X11 라이브러리를 사용하지만 Android에서는 이걸 쓰지 않고 자체 GUI 라이브러리를 사용하므로 GUI Linux 프로그램은 Android에서 실행할 수 없다. 초창기의 Android는 [[디지털 카메라]]의 운영체제로 개발되고 있었다. 그러다가 [[iPhone]] 등 경쟁 스마트폰이 나온 이후 스마트폰 운영체제로 개발 방향을 바꾸게 되었다.[* [[ https://www.cnet.com/news/android-originally-designed-as-smart-camera-system/#:~:text=Back%20when%20Microsoft%20and%20Symbian,actually%20built%20for%20digital%20cameras.|관련 기사]]] 라이선스는 [[아파치 라이선스]] 2.0을 사용한다. 단, [[Linux]] 커널을 수정한 부분에 대해서는 [[GPL]] 2.0이 적용된다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기