앱개발을 시작하면서, SDK는 많이 들어봤는데 회사에서 사용하는 PDK라는 것도 있어서 헷갈려서 정리한다!
SDK
Software Development Kit
특정 플랫폼이나 환경에서 소프트웨어를 개발하기 위해 필요한 도구, 라이브러리, 샘플 코드, 문서 등을 제공하는 소프트웨어 개발 도구 모음
Android SDK
안드로이드 플랫폼용 앱 개발을 위한 도구 키트
Android 앱 개발에 필요한 모든 기본 기능(UI 구성, DB 작업, 네트워크 요청 등)을 제공
Android Emulator를 사용해 다양한 기기와 API 버전에서 앱을 테스트할 수 있도록 하고,
여러 Android OS 버전 및 기기에서 동작하도록 호환성 관리 및 디버깅 도구를 제공
Android SDK의 구성 요소로는
- API 라이브러리 : Android 시스템과 상호작용하기 위한 View, Activity, Intent 등의 클래스
- Build Tools : 앱을 컴파일하고 패키징하여 실행 가능한 파일(APK)를 만드는 도구
- Platform Tools : ADB(Android Debug Bridge), Fastboot 등의 앱 디버깅 및 테스트 도구
- Gradle : 빌드 자동화 및 의존성 관리 도구
등이 있다.
예를 들어, 다음 코드를 보자.
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.widget.TextView
class MainActivity : AppCompatActivity() { // => AppCompatActivity 클래스
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val textView = TextView(this) // => TextView 클래스
textView.text = "Hello, World!"
setContentView(textView)
}
}
여기 코드에서 AppCompatActivity나 TextView 클래스는 Android SDK의 API 라이브러리에 포함되어 있다.
따라서, import를 통해 가져와서 바로 쓸 수 있다.
PDK
Platform Development Kit
Android 플랫폼을 수정하거나 확장하려는 디바이스 제조업체(OEM)를 위해 제공되는 툴킷
일반 개발자가 사용하는 Android SDK와는 다르다.
Android OS의 소스 코드, 드라이버, 빌드 도구 등을 포함
PDK는 실행 가능한 형태가 아닌 소스 코드 형태로 제공되며, 제조 업체가 직접 빌드
즉, 지금처럼 자동차에 들어가는 앱을 개발하기 위해서는, 일반적인 플랫폼과는 달리 자체 시스템에 맞추어 개발할 수 있도록 PDK를 통한 수정이 필요하다!
SDK vs PDK 비교
SDK | PDK | |
목적 | 소프트웨어 개발 지원 | 플랫폼 개발 및 하드웨어-OS 통합 지원 |
대상 | 앱 개발자 | 하드웨어 제조업체(OEM) |
사용 범위 | 앱 개발 및 배포 | 하드웨어와 Android 플랫폼의 통합 |
구성 요소 | API, 도구, 샘플 코드, 문서 | Android 소스 코드, 드라이버 통합 도구, 테스트 도구, 문서 |
사용 사례 | Android 앱, 게임, 유틸리티 개발 | 새로운 Android 디바이스 제작 및 OS 커스터마이징 |
배포 시점 | Google Play 스토어와 같은 앱 배포 플랫폼 | 하드웨어 제조업체에 Google이 제공 |
'CS > Android' 카테고리의 다른 글
State(MutableState) (0) | 2025.02.03 |
---|---|
Flashing과 Fastboot (1) | 2025.01.06 |
Build Variant (1) | 2024.12.26 |
Coroutine (2) (0) | 2024.12.24 |
Coroutine (1) (0) | 2024.12.17 |