민프
[Android] SDK, NDK, PDK 란? 본문
SDK는 Software Developer’s Kit의 약자로 주로 UI를 기반으로 특화된 API를 제공하여 Application Level에서의 개발을 쉽게 해주며, 기반은 Java Language이다.
따라서 SDK는 일반적인 Android Application 개발에 사용되며, Android Emulator를 내장하고 있어 Build와 동시에 바로 Test까지 가능하다.( 단, H/W를 직접 사용해야 하는 Application은 Test가 힘들다. )
반면, NDK는 Native Developer’s Kit의 약자로, SDK와 마찬가지로 Application을 개발하는데에 사용되는 Framework이지만 Java 대신에 C/C++ Language를 이용하여 개발할 수 있다.
따라서 NDK는 Application 뿐만 아니라 MiddleWare개발에도 사용되며, JNI를 통해 SDK에서 Linux에서 사용하던 C/C++을 사용할 수 있게 해준다. 그러므로, HAL( Hardware Abstraction Layer )의 구성/형태에 따라 굉장히 민감할 수 밖에 없다.
결론적으로, 기본적으로 NDK는 JNI용 Library를 만드는 것이나, 약간의 변형을 통해 실행 파일( Executable File )도 만들 수 있다. 다만, 완벽한 형태의 Application의 제작은 NDK만으로는 사실상 불가능하다.
PDK는 Platform Developer's Kit의 약자로, Android의 Porting 개념으로서 SDK와 NDK를 포괄하는 개념이다.
PDK는 반드시 Unix 계열의 OS에서 개발이 이루어져야 하며, Android의 전체 Source Code를 이용하여 개발한다. 결국 PDK는 Linux Kernel Level과 그 바로 위에 위치한 Native Library의 HAL 부분 등 Android의 깊숙한 부분에 대한 개발 방법이다.
따라서 Android의 App 개발이 아닌 Kernel Level, 혹은 Core Frame의 개발이 목적이라면 PDK를 이용해 개발 해야 한다.
출처
https://blog.naver.com/dong880510/140154647402
ㅊ다.
'[Android]' 카테고리의 다른 글
[Android][ARcore - 2] 초기설정, GooglePlay ARCore 지원 여부 확인 (0) | 2021.07.24 |
---|---|
[Android][ARcore - 1] ARcore 예제를 해보자!! (0) | 2021.07.24 |
[Android][WebRTC] 1. WebRTC란 무엇일까? (0) | 2021.07.11 |
[Android] 안드로이드 에뮬레이터 속도를 높여보자!!(feat.Guest unoccupied no 1 guest s) (0) | 2021.07.08 |
[Android] Intent로 Email을 보내보자!!(Email 관련 앱들만 나오게 하기) (0) | 2021.07.07 |