타이탄의 도구들

[Android] NDK와 JNI의 차이 본문

Dev Tools/Android

[Android] NDK와 JNI의 차이

Titan04 2022. 5. 25. 18:43
728x90

사전적 의미

Native Development Kit(NDK)

Native : 꾸밈없는, 천연 그대로의

Development : 개발

Kit : 조립을 해서 무엇을 바로 만들 수 있도록 부품들을 모아 놓은 것

참고

Software Development Kit

소프트웨어 개발 키트(SDK)는 응용 프로그램을 만들 수 있게 해주는 개발 도구의 집합이다.

한 예로, 안드로이드 앱 개발을 위해서는 Java를 포함한 SDK가 필요하다.

 

네이티브 언어에 대한 이해

https://ssaturn.tistory.com/99

Java Native Interface (JNI)

java : 자바 언어

native : 꾸밈없는, 천연 그대로의

interface : 사물과 사물 사이 또는 사물과 인간 사이의 경계에서, 상호 간의 소통을 위해 만들어진 매개체

고유명사적 의미

Android NDK는 C 및 C++와 같은 언어를 사용하여

어플의 일부를 구현할 수 있게 하는 개발 도구 모음이다.

 

특정 유형의 앱에서는

Android NDK를 통해 이러한 언어(C 및 C++)로 작성된 코드 라이브러리를 재사용할 수도 있다.

java만 사용하여 필요한 기능과 성능을 모두 만족시키기는 힘들다.

그래서 C나 C++ 언어로 작성된 프로그램을 java에서 사용할 수 있도록 하는

Programming Framework 가 JNI(Java Native Interface) 다.

JNI의 추가 정의

 

다른 언어들(C, C++)로 작성된 라이브러리들을 호출하는 것을 가능하게 하는 Programming Framework

Framework란?

 

'FRAME 프레임(틀, 규칙or법칙)'+'WORK 워크(일, 소프트웨어의 목적)

목적에 따라 효율적으로 구조를 짜놓은 개발 방식

https://www.castingn.com/sourcing/kkultip_detail/110

NDK 와 JNI 의 차이

안드로이드에서 제공하는

NDK(Native Development Kit)를 이용해서

자바 애플리케이션과 연결 가능한

C/C++ 기반의 네이티브 라이브러리를 작성하고,

(이미 작성된 네이티브 라이브러리를 재사용하는 것도 가능하다)

JNI를 통해 네이티브 라이브러리를 호출하여 사용한다.

 

728x90
Comments