본문으로 이동

안드로이드 SDK

위키백과, 우리 모두의 백과사전.
안드로이드 SDK
개발자구글
발표일2009년 10월(17년 전)(2009-10)
안정화 버전
26.1.1 / 2017년 9월(9년 전)(2017-09)[1]
프로그래밍 언어자바, 코틀린
운영 체제크로스 플랫폼
언어영어
종류IDE, SDK
웹사이트developer.android.com/sdk/index.html

안드로이드 SDK(Android SDK)는 안드로이드 소프트웨어 생태계를 위한 소프트웨어 개발 키트로, 포괄적인 개발 도구 세트가 포함되어 있다.[2][3] 여기에는 디버거, 라이브러리, QEMU 기반의 핸드셋 에뮬레이터, 문서, 샘플 코드 및 튜토리얼이 포함된다. SDK는 공식 안드로이드 스튜디오 IDE의 일부이지만, 다양한 도구와 리소스는 독립적으로 사용될 수 있다.

현재 지원되는 개발 플랫폼에는 리눅스를 실행하는 컴퓨터(모든 최신 데스크톱 리눅스 배포판), macOS 10.5.8 이상, 윈도우 7 이상이 포함된다.

배경

[편집]

2015년 03월 기준 기준으로, SDK는 안드로이드 자체에서는 사용할 수 없지만, 특수 안드로이드 애플리케이션을 사용하여 소프트웨어 개발이 가능하다.[4][5][6]

2014년 말까지 공식적으로 지원되는 통합 개발 환경 (IDE)은 Android 개발 도구(ADT) 플러그인을 사용하는 이클립스였다.[7] 2015년부터 안드로이드 스튜디오[8]가 공식 IDE가 되었지만, 개발자들은 다른 IDE를 자유롭게 사용할 수 있다. 그러나 구글은 공식 안드로이드 IDE로 안드로이드 스튜디오에 집중하기 위해 2015년 말부터 ADT가 공식적으로 지원 중단되었음을 분명히 했다. 또한 개발자들은 텍스트 편집기를 사용하여 자바 및 XML 파일을 편집한 다음, 명령줄 도구(자바 개발 키트 및 아파치 앤트 필요)를 사용하여 안드로이드 애플리케이션을 생성, 빌드 및 디버그할 수 있으며, 연결된 안드로이드 기기를 제어(예: 재부팅 트리거, 소프트웨어 패키지 원격 설치)할 수 있다.[9][4][10]

안드로이드 SDK의 개선은 전반적인 안드로이드 플랫폼 개발과 함께 진행된다. SDK는 개발자가 애플리케이션을 구형 기기용으로 개발하려는 경우를 대비해 구형 안드로이드 플랫폼도 지원한다. 개발 도구는 다운로드 가능한 구성 요소이므로, 최신 버전과 플랫폼을 다운로드한 후에는 호환성 테스트를 위해 구형 플랫폼과 도구도 다운로드할 수 있다.[11]

안드로이드 애플리케이션은 .apk 형식으로 패키징되어 안드로이드 OS의 /data/app 폴더에 저장된다(이 폴더는 보안상의 이유로 루트 사용자만 접근할 수 있다). APK 패키지에는 .dex 파일[12](달빅 실행 파일이라고 불리는 컴파일된 바이트 코드 파일), 리소스 파일 등이 포함된다.

안드로이드 SDK 플랫폼 도구

[편집]

안드로이드 SDK 플랫폼 도구는 전체 SDK의 별도로 다운로드 가능한 하위 집합으로, 안드로이드 디버그 브리지 및 패스트부트와 같은 명령줄 도구로 구성된다.

보안

[편집]

2011년에 dexdump 유틸리티에서 구조를 검증하지 않아 충돌이나 잠재적 악용을 유발하는 취약점이 발견되었다. 이 취약점은 CVE-2011-1001로 등록되었다.[13]

또 다른 취약점은 2014년에 ADB의 호스트 클라이언트 구현에서 발견되었다. 악의적인 사용자가 ADB 명령을 실행하여 악의적인 사용자의 ADB 서버에 연결할 때 동일 시스템의 다른 사용자의 계정에 접근할 수 있었다. 클라이언트는 버퍼 오버플로 취약점을 가지고 있었고, 실행 불가능 스택 또는 ASLR과 같은 강화 옵션으로 컴파일되지 않았다.[14]

각주

[편집]
  1. ↑ “SDK Tools | Android Developers”. Developer.android.com. 2018년 4월 25일에 확인함.
  2. ↑ “Tools Overview”. 《Android Developers》. 2009년 7월 21일.
  3. ↑ 《Android 3 SDK programming for dummies》. Rajiv Ramnath, Roger Crawfis, Paolo Sivilotti. Hoboken, N.J.: Wiley. 2011. ISBN 978-1-118-14634-7. OCLC 759198469.
  4. 1 2 appfour. “AIDE- IDE for Android Java C++ - Android Apps on Google Play”. 《google.com》.
  5. ↑ gesturedevelop. “Java Editor - Android Apps on Google Play”. 《google.com》.
  6. ↑ Tanapro GmbH, Tom Arn. “JavaIDEdroid - Android Apps on Google Play”. 《google.com》.
  7. ↑ “NBAndroid Plugin”. 2018년 10월 17일에 원본 문서에서 보존된 문서. 2012년 9월 19일에 확인함.
  8. ↑ “Android Studio”.
  9. ↑ Westfall, Jon (2009년 8월 25일). “Backup & Restore Android Apps Using ADB”. 《JonWestfall.com》. 2009년 12월 7일에 확인함.
  10. ↑ Modesti, Paolo (March 2021). 《A Script-Based Approach for Teaching and Assessing Android Application Development》. 《ACM Transactions on Computing Education》 21. 1–24쪽. doi:10.1145/3427593. 2022년 5월 8일에 확인함.
  11. ↑ “SDK Tools release notes”. 《Android Developers》.
  12. ↑ “Glossary”. 《Android Developers》.
  13. ↑ “CVE-2011-1001 : dexdump in Android SDK before 2.3 does not properly perform structural verificat”. 《CVE security vulnerability database. Security vulnerabilities, exploits, references and more》. 2011년 7월 8일. 2025년 7월 3일에 확인함.
  14. ↑ Duckett, Chris. “Android SDK suffers from buffer overflow and lack of hardening” (영어). 《ZDNet》. 2021년 8월 5일에 확인함.