반응형

전체 글 817

Android Framework의 개념 및 역할

Android Framework의 개념 및 역할1. Android Framework이란?Android Framework은 Android 운영체제에서 애플리케이션을 개발하고 실행하는 데 필요한 핵심 소프트웨어 계층입니다. Android 애플리케이션은 Java, Kotlin 또는 C++ 등의 언어로 작성되며, Android Framework을 통해 시스템 자원에 접근하고 UI를 관리할 수 있습니다.Android는 Linux 커널 위에 여러 계층으로 구성되어 있으며, Android Framework은 그중에서도 애플리케이션과 시스템을 연결하는 중요한 역할을 합니다. 이를 통해 개발자는 하드웨어와 운영체제의 복잡성을 직접 다루지 않고도 다양한 기능을 구현할 수 있습니다.Android Framework은 다음과 ..

Android/Framework 2025.04.07

Buildroot에서 커널 설정 및 빌드 방법

Buildroot에서 커널 설정 및 빌드 방법1. 개요Buildroot는 임베디드 리눅스 시스템을 쉽게 구축할 수 있도록 도와주는 강력한 도구입니다. 이번 글에서는 Buildroot를 이용하여 리눅스 커널을 설정하고 빌드하는 방법에 대해 설명하겠습니다.Buildroot를 활용하면 원하는 커널 버전을 선택하고, 필요한 기능을 설정하며, 최적화된 커널 이미지를 생성할 수 있습니다. 이를 통해 임베디드 환경에 적합한 커널을 빌드할 수 있습니다.2. 커널 설정을 위한 기본 개념Buildroot에서 커널을 빌드하려면 몇 가지 개념을 이해해야 합니다.Kernel Source: 빌드에 사용할 커널 소스 코드입니다. Buildroot는 기본적으로 특정 버전의 커널을 다운로드하여 사용할 수 있으며, 사용자 정의 커널 소..

Linux/buildroot 2025.04.07

AWS IoT Shadow를 활용한 디바이스 상태 관리

AWS IoT Shadow를 활용한 디바이스 상태 관리AWS IoT를 활용하면 IoT 디바이스와 클라우드 간의 원활한 통신을 구축할 수 있습니다. 특히 AWS IoT Shadow는 디바이스의 상태를 클라우드에 저장하고, 동기화할 수 있도록 지원하는 강력한 기능입니다. Shadow는 디바이스가 오프라인 상태일 때도 최신 상태 정보를 유지하며, 서버와 애플리케이션이 지속적으로 디바이스의 상태를 관리할 수 있도록 돕습니다.이번 포스팅에서는 AWS IoT Shadow를 활용하여 ESP32 디바이스의 상태를 관리하는 방법을 다루고, AWS IoT Device SDK for Embedded C와 AWS IoT Core를 활용하여 ESP32에서 Shadow 기능을 구현하는 예제를 소개하겠습니다. 또한, Python ..

AWS IoT 2025.04.06

Native 코드와 Android Framework 연동

Native 코드와 Android Framework 연동Android 애플리케이션 개발에서는 일반적으로 Java 또는 Kotlin과 같은 고수준 언어를 사용하지만, 보다 성능이 중요한 작업이나 기존 C/C++ 기반의 네이티브 라이브러리를 활용해야 하는 경우에는 Native 코드와 Android Framework을 연동해야 하는 경우가 많습니다. 본 글에서는 네이티브 라이브러리를 프레임워크 서비스에서 활용하는 방법과 JNI를 사용한 System API 확장 방법을 AOSP 코드와 함께 살펴보겠습니다.1. Android에서 Native 코드 활용 개요Android 시스템은 네이티브 코드를 활용할 수 있도록 다양한 메커니즘을 제공합니다. 대표적인 방식은 다음과 같습니다.JNI (Java Native Inter..

Android/Framework 2025.04.06

Buildroot 패키지 선택 및 커스터마이징 방법

Buildroot 패키지 선택 및 커스터마이징 방법Buildroot는 임베디드 시스템을 위한 경량 Linux 루트 파일 시스템을 생성하는 강력한 도구입니다. Buildroot를 활용하면 특정 요구사항에 맞는 패키지를 선택하고 커스터마이징할 수 있습니다. 이번 포스팅에서는 Buildroot에서 패키지를 선택하고 설정을 변경하는 방법을 상세히 설명드리겠습니다.1. Buildroot 패키지 개요Buildroot에서 패키지는 소스 코드와 함께 이를 빌드하기 위한 메타데이터를 포함한 디렉터리 구조로 구성되어 있습니다. Buildroot의 package/ 디렉터리에는 다양한 소프트웨어 패키지가 포함되어 있으며, 각각의 패키지는 독립적인 디렉터리를 가집니다.주요 패키지 유형기본 시스템 패키지: 필수적인 라이브러리 및..

Linux/buildroot 2025.04.05

AWS IoT에서 MQTT를 이용한 데이터 송수신 구현 (온도 데이터 전송)

AWS IoT에서 MQTT를 이용한 데이터 송수신 구현 (온도 데이터 전송)개요AWS IoT는 다양한 IoT 디바이스와 클라우드 간의 통신을 지원하며, MQTT(Message Queuing Telemetry Transport)를 통해 경량 메시지 교환을 수행할 수 있습니다. 이번 포스팅에서는 ESP32 디바이스가 MQTT를 이용하여 AWS IoT 서버로 온도 데이터를 전송하는 방법을 설명하고, AWS IoT Core에서 데이터를 수신하여 처리하는 서버 코드를 함께 작성해 보겠습니다.ESP32 디바이스의 펌웨어는 ESP-IDF(ESP32 IoT Development Framework)와 AWS IoT Device SDK for Embedded C를 활용하여 개발하고, AWS IoT 서버는 Python을 이..

AWS IoT 2025.04.05

Android NDK(Native Development Kit) 개요 및 활용

Android NDK(Native Development Kit) 개요 및 활용1. Android NDK란?Android NDK(Native Development Kit)는 Android 애플리케이션에서 C 및 C++과 같은 네이티브 코드를 활용할 수 있도록 지원하는 개발 도구입니다. 일반적으로 Android 애플리케이션은 Java 또는 Kotlin을 사용하여 개발되지만, NDK를 활용하면 성능이 중요한 작업(예: 그래픽 렌더링, 신호 처리, 복잡한 연산 등)을 C/C++ 코드로 작성하여 실행 속도를 향상시킬 수 있습니다.1.1 NDK의 주요 기능네이티브 코드 실행 지원: C/C++을 활용하여 성능이 중요한 연산을 최적화할 수 있습니다.JNI(Java Native Interface) 지원: 네이티브 코드와..

Android/Framework 2025.04.05

make menuconfig를 활용한 설정 변경

make menuconfig를 활용한 설정 변경1. 개요Buildroot는 임베디드 리눅스 시스템을 위한 경량화된 빌드 시스템으로, 필요한 패키지와 설정을 조정하여 커스텀 루트 파일 시스템을 생성할 수 있습니다. Buildroot의 설정은 make menuconfig를 이용하여 손쉽게 변경할 수 있으며, 이를 통해 사용자는 원하는 패키지를 선택하고, 빌드 옵션을 조정할 수 있습니다. 본 포스팅에서는 make menuconfig를 활용하여 설정을 변경하는 방법을 상세히 설명드리겠습니다.2. make menuconfig 소개Buildroot는 Kconfig 기반의 설정 시스템을 사용하며, 이는 리눅스 커널의 설정 방식과 유사합니다. make menuconfig는 터미널 기반의 UI를 제공하여 사용자가 손쉽게..

Linux/buildroot 2025.04.05

AWS IoT SDK를 이용한 ESP32 IDF 디바이스 프로그래밍

AWS IoT SDK를 이용한 ESP32 IDF 디바이스 프로그래밍1. 개요AWS IoT는 클라우드 기반의 IoT 솔루션을 제공하는 서비스로, 다양한 IoT 디바이스와 서버 간의 원활한 연결을 가능하게 합니다. 이번 포스팅에서는 ESP32 IDF(ESP-IDF)와 AWS IoT Device SDK for Embedded C를 활용하여 AWS IoT Core와 연결하는 방법을 설명하겠습니다.본 가이드를 따르면 ESP32를 이용해 AWS IoT Core와 통신하고, 온도 데이터를 주기적으로 업로드하는 IoT 디바이스를 만들 수 있습니다.2. AWS IoT Core 설정AWS IoT와 ESP32 간의 통신을 위해 먼저 AWS IoT Core를 설정해야 합니다.2.1 AWS IoT Thing 등록AWS IoT ..

AWS IoT 2025.04.04

JNI(Java Native Interface) 개념 및 사용법

JNI(Java Native Interface) 개념 및 사용법1. 개요Android 애플리케이션은 주로 Java 또는 Kotlin과 같은 언어로 작성됩니다. 그러나 경우에 따라 성능 최적화, 기존 C/C++ 라이브러리 재사용, 하드웨어 제어 등의 이유로 네이티브 코드(C/C++)를 사용해야 할 필요가 있습니다. 이를 가능하게 해주는 기술이 바로 JNI(Java Native Interface) 입니다.JNI는 Java 코드에서 네이티브 코드를 호출하거나, 반대로 네이티브 코드에서 Java 코드를 호출할 수 있도록 하는 인터페이스입니다. Android에서는 JNI를 활용하여 NDK(Native Development Kit) 기반의 네이티브 모듈을 구현할 수 있습니다.이 글에서는 JNI의 개념과 Androi..

Android/Framework 2025.04.04
반응형