
안드로이드 프로젝트를 진행하던 도중, C언어로 작성된 코드를 활용해야 하는 이슈가 발생했다. 구글링을 해보니 JNI를 사용하면 자바 언어에서 C나 C++ 소스 파일을 가져와 사용할 수 있다고 하길래 테스트를 해보면서 포스팅을 올리게 되었다. NDK, JNI란? NDK (Native Development Kit) 안드로이드에서 제공하는 ndk는 C, C++ 로 구성된 네이티브 코드로 앱의 일부를 구현할 수 있게 해주는 도구이다. JNI (Java Native Interface) 자바와 네이티브 언어를 연결해주는 인터페이스를 말한다. 안드로이드의 NDK를 이용해서 JNI를 구현하게 될 것이다. 개발환경 C/ C++ 소스 코드가 필요하다는 생각이 들자마자 지레 겁을 먹었다. 나는 아직까지 unmanged 언어..

블루투스는 와이파이와 함께 우리 생활에서 익숙하게 접하는 기술 중 하나이다. 자주 사용해서 익숙하지만 어떤 원리로 작동되는지 자세히 모르고 있었기에 블루투스라는 놈을 제대로 알고 싶었다. 이번 포스팅을 통해 블루투스 통신의 원리와 개념에 대한 전반적인 지식을 담아보고자 한다. 블루투스(Bluetooth)란? 블루투스는 1994년 에릭슨이 개발한 근거리 무선 통신 산업 표준이다. ISM 대역에 포함되는 2.4~2.485GHz를 사용하게 된다. 여기서 한가지 궁금한 점이 또 생긴다. 더보기 ISM 대역이 뭐지? ISM 대역은 산업/과학/의료(Industry - Science - Medical) 등에 쓰이는 주파수 대역을 말한다. 위 그림처럼 목적에 따라 주파수 대역을 나눠놓고 할당되지 않은 대역의 일부분을 ..

요즘은 스마트폰과 블루투스 기기를 연결하는 상황이 흔하게 일어난다. 스마트폰은 기본적으로 블루투스 기능이 탑재되어 있으므로 블루투스 기능이 들어간 다른 디바이스와 연결하는 것을 구현해보고자 한다. 개발 환경 Android Studio : Arctic Fox 2020.3.1 버전 SDK/ API Level : Android 12/ 31 ( Arctic Fox 버전으로 업데이트해야 Android12/ API 31레벨을 사용할 수 있다) Java : 1.8.xx Android 12, 블루투스 권한 업데이트 기존에 블루투스 기능을 사용하기 위해서 선언되는 Permission은 다음과 같았다. - BLUETOOTH - BLUETOOTH_ADMIN - ACCESS_FINE_LOCATION 그러나, Android 1..