본문 바로가기
모바일

NDK / ADB

by Minok_nok 2020. 5. 29.

NDK

정의

NDK(Native Development Kit)은 C와 C++같은 네이티브 코드 언어를 사용하여 앱을 구성할수 있게 해주는 도구 모음입니다.

 

NDK를 사용하게 된 이유는, 맨 처음 JAVA로 안드로이드 어플리케이션을 개발할 때 다른 네이티브 코드와 달리 가상머신을 통하여 실행되었기 때문에 속도가 많이 느려질수밖에 없었습니다.

 

그렇기 때문에 조금 더 빠른 어플리케이션을 구성할 수 있도록 어플리케이션 코드의 일부를 가상머신을 통하지 않고 연산을 하도록 만든게 NDK입니다.

 

네이티브 언어로 구현할 수 있는 모듈을 가져와서 사용할수 있다면 어플리케이션 코드의 일부를 더욱 빠르게 연산시킬 수 있을것입니다.

 

유니티에서

유니티에서는 IL2PP기능을 이용하여 빌드를 한다고 하면  NDK를 사용해야 합니다.

 

IL2PP는 .NET 컴파일러의 저수준 출력인 Intermediate Language(IL)을 C++소스코드로 변환을 하는 기능입니다.

 

IL2PP는 대표적인 속도적인 퍼포먼스 이득만이 아닌, 호환성 및 안정성을 위해 IL2PP기능을 이용하여 빌드를 하기를 권장합니다.

 

아래의 사진은 Unity Blog에서 Mono로 빌드한 어플리케이션과 IL2PP로 빌드한 어플리케이션의 속도 차이를 비교한 그래프입니다.

 

 

NDK의 정의에서 말했듯이 NDK는 어플리케이션 코드의 일부를 네이티브 언어로 구성할 수 있는 기능을 가졌기 때문에 IL2PP기능을 사용하기 위해서 필요한 도구입니다.

 

ADB

정의

Android Debug Bridge(ADB)는 안드로이드 장치와 통신하여, 디버깅 등의 작업을 할수 있는 다목적 명령어 툴입니다.

 

ADB는 안드로이드 SDK에 포함되어 있는 기능이기때문에 안드로이드를 개발하는 사람들이라면 쉽게 사용할 수 있습니다.

 

대표적인 저장 경로는 android_sdk/platform-tools에 있기때문에 cmd에서도 경로를 platform-tools로 이동하여 adb명령어를 실행합니다.

구성

ADB는 이와 같은 세 가지 구성요소를 포함하는 클라이언트 - 서버 프로그램입니다.

  • 명령어를 전송하는 클라이언트. 클라이언트는 개발용 컴퓨터에서 실행됩니다. adb 명령어를 실행하여 명령줄 터미널에서 클라이언트를 호출할 수 있습니다.

  • 기기에서 명령어를 실행하는 데몬(adbd). 데몬은 각 기기에서 백그라운드 프로세스로 실행됩니다.

  • 클라이언트와 데몬 간의 통신을 관리하는 서버. 서버는 개발 머신에서 백그라운드 프로세스로 실행됩니다.

이렇게 서버와 클라이언트의 관계로 이루어진 툴이기 때문에 일반적인 USB연결 방법이 아닌, WiFi를 통하여 디버깅을 할수 있습니다.

 

'모바일' 카테고리의 다른 글

앱번들 개요 / AAB 확장자의 의미와 테스트  (0) 2020.05.28

댓글