[android] NDK, JNI 란?

2014. 1. 16. 11:38android



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

NDK란?

 

안드로이드가 나오기 전의 Java 언어는 C/C++언어에 비해 비인기 프로그래밍 언어였습니다.

왜냐하면 성능이 많이 떨어졌거든요.

그렇기 때문에 나중에 안드로이드가 나왔을때 Java로 개발을 해야 하기 때문에 

C/C++언어로 구성되어있는 네이티브에 비해 당연히 느릴 수 밖에 없었습니다.

그렇다고 C/C++언어로 구성되어있는 라이브러리등을 Java로 이식 하는데에도 한계가 있었습니다.

 

그래서 많은 개발자들이 C/C++로 개발하기를 원했습니다.

 

하여 구글에서는 NDK라는 것을 배포하여 안드로이드 애플리케이션에서 특정 부분을 네이티브 코드로 구축할 수 있는 방법을 제공하기 시작했습니다.

 

이 NDK를 이용하면 Java로만 개발하던 안드로이드 환경에서 C/C++ 라이브러리를 쉽게 사용할 수 있고 네이티브 라이브러리를 포함해서 배포할 수도 있습니다.

 

 

 

 

JNI란?

 

안드로이드에서 개발시 사용하는 언어인 Java와 

NDK(C++ 네이티브 라이브러리)를 연동 시켜 주는 아이입니다.

 

예를 들자면 휴대폰에 DMB 기능이나 동영상 재생 시 필요한 코덱을 컨트롤 하는 방법은 순수 안드로이드 Java에서는 불가능합니다.

이런 기능을 NDK에서 만들고 Java의 어플리케이션과 연결해주는 아이가 바로 JNI입니다.



펌 : 고릴라의 블로그