반응형

JNI 2

Android NDK 실전: JNI를 이용한 C/C++ 네이티브 데몬 프로세스 연동 및 상호 통신 가이드

안녕하세요! 앞선 연재를 통해 우리는 네이티브 데몬을 빌드하고 시스템 서비스에 등록하는 로우레벨 인프라 단을 마스터했습니다. 하지만 데몬이 혼자 백그라운드에서 아무리 열심히 돌고 있어도, 사용자가 바라보는 화면(Java/Kotlin 기반의 UI 앱 레이어)과 데이터를 주고받거나 통제할 수 없다면 반쪽짜리 솔루션에 불과하겠죠?안드로이드 생태계에서 '자바 프레임워크 세계'와 'C/C++ 네이티브 세계'를 하나로 묶어주는 유일한 마법의 다리가 바로 JNI(Java Native Interface)입니다. 오늘은 JNI의 구체적인 아키텍처 메커니즘을 짚어보고, 앱 화면에서 버튼 하나로 C언어로 짠 데몬을 띄우고 끄는 제어 파이프라인을 매끄러운 실전 코드로 완성해 보겠습니다. 포스팅을 끝까지 정독하셔서 프레임워크와..

안드로이드 JNI 및 NDK 가이드: RegisterNatives 동적 등록부터 데이터 타입 매핑까지

안드로이드 애플리케이션 개발의 주류는 가비지 컬렉션(GC)의 자동 메모리 관리와 현대적인 문법을 제공하는 자바(Java)와 코틀린(Kotlin)입니다. 하지만 딥러닝 추론 엔진을 디바이스 내부에서 구동하는 온디바이스 AI, 실시간 4K 미디어 압축 하드웨어 제어, 혹은 OpenGL/Vulkan 기반의 초고속 그래픽스 렌더링 파이프라인을 구축할 때는 가상 머신(ART)의 런타임 오버헤드가 치명적인 성능 병목을 유발하곤 합니다. 이때 가상 머신의 제약을 깨고 CPU 아키텍처(ARM64 등)의 원시 기계어 성능을 100% 이끌어내기 위해 도입하는 기술이 바로 JNI(Java Native Interface)와 NDK(Native Development Kit)입니다.JNI는 자바 가상 머신 메모리 도메인과 C/C..

반응형