반응형

2025/06 68

Android NDK를 활용한 사용자 정의 Daemon 개발

Android NDK를 활용한 사용자 정의 Daemon 개발Android에서는 백그라운드 작업을 수행하기 위해 다양한 방법을 제공하지만, 특정 작업을 지속적으로 실행하기 위해서는 사용자 정의 Daemon을 활용하는 것이 유리합니다. 본 포스팅에서는 Android NDK를 활용하여 C/C++ 기반의 Daemon을 개발하고, 이를 통해 지속적인 서비스 실행과 네트워크 작업 및 데이터 처리를 수행하는 방법을 설명합니다. 또한, PowerManager를 활용하여 Daemon이 종료되지 않도록 유지하는 방법도 다룹니다.1. Android Daemon을 통한 백그라운드 작업 처리Android는 보안과 배터리 성능을 고려하여 백그라운드에서 실행되는 프로세스를 엄격하게 관리합니다. 일반적으로 백그라운드 작업은 Serv..

Android/User Daemon 2025.06.22

Audio Policy Manager 개요

Audio Policy Manager 개요Android의 오디오 시스템은 여러 계층으로 구성되며, 각 계층은 오디오 데이터의 처리와 제어를 담당합니다. 그중에서도 Audio Policy Manager는 오디오 정책을 관리하는 핵심 구성 요소로, 오디오 스트림의 라우팅과 음량 조절 등 중요한 기능을 수행합니다. 이번 글에서는 Audio Policy Manager의 개요와 주요 역할, 내부 구조, 그리고 동작 방식에 대해 살펴보겠습니다.1. Audio Policy Manager란?Audio Policy Manager(APM)는 Android 오디오 프레임워크의 일부로서, 오디오 정책을 관리하는 중요한 모듈입니다. APM은 다양한 오디오 관련 요구사항을 처리하고, 오디오 스트림을 적절한 출력 장치로 라우팅하는..

Python 리스트 소개

Python 리스트 소개Python에서 가장 기본적이고 많이 사용되는 자료구조 중 하나는 '리스트(List)'입니다. 리스트는 여러 개의 값을 하나의 변수에 저장할 수 있는 자료형으로, 유연하고 사용하기 쉬워 Python 프로그래밍에서 중요한 역할을 합니다. 이번 포스팅에서는 Python의 리스트가 어떤 특징을 가지고 있으며, 기본적인 조작 방법을 어떻게 사용하는지 알아보겠습니다.리스트란 무엇인가요?리스트는 여러 개의 데이터를 순서대로 저장할 수 있는 가변적 크기의 배열입니다. 리스트는 다양한 자료형의 데이터를 혼합하여 저장할 수 있으며, 각 항목은 인덱스를 통해 접근할 수 있습니다. Python에서 리스트는 대괄호 []로 정의하며, 요소들은 쉼표 ,로 구분합니다.my_list = [1, 2, 3, "H..

Python/Python 2025.06.21

Android Daemon의 IPC (Inter-Process Communication)

Android Daemon의 IPC (Inter-Process Communication)Android에서 Daemon 프로세스와 애플리케이션 간의 통신을 위해 IPC(Inter-Process Communication) 기법이 필수적으로 사용됩니다. Android는 다양한 IPC 방식을 제공하며, 각 방식은 성능, 보안, 구현 난이도에 따라 적절한 사용처가 다릅니다. 본 포스팅에서는 Android에서 사용 가능한 IPC 방식과, Daemon과 애플리케이션 간의 통신을 위한 Local Socket을 활용하는 방법을 설명합니다.Android에서 사용 가능한 IPC 방식Android는 기본적으로 여러 가지 IPC 기법을 제공합니다. 대표적인 방식은 다음과 같습니다.1. BinderBinder는 Android의 ..

Android/User Daemon 2025.06.21

Android Audio System: Stream Type과 Volume Control 처리 방식

Android Audio System: Stream Type과 Volume Control 처리 방식1. 개요Android의 오디오 시스템은 다양한 스트림 타입(Stream Type)과 볼륨 컨트롤(Volume Control) 방식을 지원하여 사용자 경험을 극대화하고 있습니다. 본 포스팅에서는 Android의 Stream Type과 Volume Control이 어떻게 동작하는지, 그리고 개발자가 이를 어떻게 활용할 수 있는지에 대해 살펴보겠습니다.2. Stream Type이란?Stream Type은 Android에서 오디오 출력을 구분하기 위한 논리적 분류 개념입니다. 각 Stream Type은 서로 다른 볼륨 설정과 오디오 출력 동작을 가집니다. Android에서는 대표적으로 다음과 같은 Stream T..

Python 연산자와 조건문 소개

Python 연산자와 조건문 소개안녕하세요, '소프트웨어 공장'입니다! 오늘은 Python의 중요한 개념 중 하나인 연산자와 조건문에 대해 소개해 보려고 합니다. 이 두 가지는 파이썬에서 데이터를 처리하고 프로그램의 흐름을 제어하는 데 필수적인 요소이므로, 프로그래밍 초보자라면 반드시 알아야 할 내용입니다.이 글에서는 산술 연산자, 비교 연산자, 논리 연산자를 차례로 살펴보고, 이후 조건문에서 사용하는 if, elif, else에 대해 알아보겠습니다.1. Python 연산자 소개1.1 산술 연산자 (Arithmetic Operators)산술 연산자는 수학적인 계산을 수행할 때 사용되는 연산자입니다. Python에서는 기본적인 사칙연산을 포함한 다양한 산술 연산자를 제공합니다.+ : 더하기- : 빼기* :..

Python/Python 2025.06.19

Android Daemon과 Java/Kotlin 인터페이스 연결

Android Daemon과 Java/Kotlin 인터페이스 연결Android 애플리케이션에서 백그라운드에서 실행되는 Daemon 프로세스를 개발하고 이를 Java/Kotlin 코드와 연결하는 방법을 설명합니다. Daemon을 활용하면 지속적으로 실행되어야 하는 서비스나 특정 시스템 레벨 작업을 수행할 수 있습니다. 이 글에서는 JNI(Java Native Interface)를 이용하여 C/C++로 작성된 Daemon과 Java/Kotlin 코드 간 통신 방법을 살펴보겠습니다.1. JNI(Java Native Interface) 개요1.1 JNI란 무엇인가?JNI(Java Native Interface)는 Java 코드에서 Native 코드(C/C++)를 호출하거나 반대로 Native 코드에서 Java ..

Android/User Daemon 2025.06.19

Android Audio System - 오디오 모드 및 포커스 관리 (Audio Focus)

Android Audio System - 오디오 모드 및 포커스 관리 (Audio Focus)1. 개요안드로이드에서 오디오 시스템은 다양한 애플리케이션이 동시에 오디오를 재생할 수 있도록 설계되어 있습니다. 여러 애플리케이션이 동시에 소리를 출력할 수 있지만, 사용자가 혼란을 겪지 않도록 오디오 포커스(Audio Focus) 개념이 도입되었습니다. 이 글에서는 안드로이드 오디오 시스템에서 오디오 모드와 포커스 관리가 어떻게 이루어지는지 자세히 살펴보겠습니다.2. 오디오 모드(Audio Mode)안드로이드 오디오 시스템은 다양한 사용 시나리오에 대응하기 위해 여러 가지 오디오 모드를 제공합니다. AudioManager 클래스를 통해 오디오 모드를 설정할 수 있으며, 주요 오디오 모드는 다음과 같습니다.2...

Python 자료형 소개

Python 자료형 소개Python은 다양한 자료형을 제공하며, 각 자료형은 데이터의 성격을 나타냅니다. Python에서 자료형을 이해하는 것은 프로그램 개발의 첫걸음이며, 코드의 유연성과 가독성을 높이는 데 큰 도움이 됩니다. 이번 포스팅에서는 Python의 주요 자료형들을 살펴보고, 그 사용법과 특성에 대해 자세히 알아보겠습니다.1. 숫자형 (Numeric Types)Python의 숫자형은 크게 정수형(int), 부동소수점(float), 복소수형(complex)으로 나눌 수 있습니다.1.1 정수형 (int)정수형은 소수점이 없는 정수를 의미합니다. Python에서는 크기에 제한 없이 큰 정수를 사용할 수 있습니다.age = 25number_of_apples = 12345678901234567890이 ..

Python/Python 2025.06.18

Android에서 사용자 정의 Daemon 등록 및 실행 방법

Android에서 사용자 정의 Daemon 등록 및 실행 방법Android에서는 일반적인 Linux 시스템과 달리 systemd를 사용하지 않으며, init 시스템을 통해 서비스 및 Daemon을 관리합니다. 따라서 Android에서 NDK를 활용하여 사용자 정의 Daemon을 등록하고 실행하려면 Android의 init 시스템을 이해하고 적절한 설정을 적용해야 합니다.본 포스팅에서는 Android에서 Daemon을 등록하고 실행하는 방법을 상세히 설명하며, init.rc를 활용한 자동 실행 방법, systemd 없이 Android에서 서비스를 실행하는 방식, property_service 및 SELinux 정책 설정까지 다루겠습니다.1. Android 시스템에서 Daemon을 등록하는 방법1.1 And..

Android/User Daemon 2025.06.18
반응형