안드로이드에서 Java를 이용한 PCM 오디오 형식 변환: MP3 및 WAV 생성

최근 음성 합성 프로젝트를 진행하면서 PCM 형식의 오디오 파일을 MP3나 WAV 형식으로 변환해야 할 필요가 있었습니다. 이 과정을 기록해 둡니다. Java를 이용한 PCM 오디오 파일을 MP3 형식으로 변환 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /** * PCM을 MP3로 변환하는 클래스 * * @author 기술 개발자 * @ ...

7월 5일 01:08에 게시됨

안드로이드에서 짧은 동영상 촬영 기능 구현

최근 프로젝트에서 짧은 동영상 업로드 기능을 추가해야 했습니다. 이 기능은 WeChat과 유사하게 촬영 시작 버튼을 클릭하고 최대 촬영 시간을 설정하는 방식으로 구현되었습니다. 아래에서는 해당 기능의 구현 방법을 공유합니다. 동영상 녹화 커스텀 뷰: public class VideoRecorderView extends FrameLayout implements MediaRecorder.OnErrorListener { private ...

7월 4일 20:10에 게시됨

Android 6.0 런타임 권한 시스템 완벽 가이드

1. 서론 Android 6.0(마시멜로) 이전 버전에서는 애플리케이션이 AndroidManifest.xml에 권한을 선언하기만 하면 즉시 권한이 부여되었습니다. 사용자는 설치할 것인지 말지만 결정할 수 있었지요. Android 6.0부터는 런타임 권한(Runtime Permission) 시스템이 도입되어 사용자가 직접 권한을 허용하거나 거부할 수 있게 되었습니다. 캘린더, 카메라, 연락처, 위치정보, ...

7월 3일 19:56에 게시됨

안드로이드 MVP 패턴 기초: 간소화된 예제로 이해하기

안드로이드 개발을 처음 시작하면 대부분 hello,world 프로그램으로_beginning한다. Android Studio에서 새로운 프로젝트를 생성할 때 기본 설정으로 진행하면 자동으로 실행 가능한 hello,world 애플리케이션이 만들어진다. 이 상태를 MVC 패턴으로 분석해보면 다음과 같은 대응 관계를 가진다: View: 레이아웃 XML 파일 Model: 비즈니스 로직과 엔티티 모델 Controller ...

6월 30일 19:07에 게시됨

Android UI 위젯 활용법

Android에서는 다양한 UI 위젯을 제공하며, 이를 통해 사용자와의 상호작용을 구현할 수 있습니다. 예를 들어 스위치, 라디오 버튼, 체크박스 등이 있으며, 이번 문서에서는 이러한 위젯들의 기본적인 사용 방법을 배워보겠습니다. 먼저 간단한 레이아웃과 기능을 살펴보겠습니다: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android& ...

6월 30일 01:56에 게시됨

안드로이드 리소스 문자열 포맷팅 및 XLIFF 태그 활용법

안드로이드 개발 시 strings.xml 파일에서 동적으로 값을 주입해야 하는 경우가 많습니다. 특히 다국어 지원(Localization)을 고려할 때, 언어마다 단어의 순서가 달라질 수 있으므로 단순한 %s나 %d 대신 위치 지정 포맷터(Positional Formatter)를 사용하는 것이 필수적입니다. 정수형(Integer) 포맷팅 정수 값을 문자열에 삽입할 때는 %d를 사용하며, 위치를 명시하기 ...

6월 29일 17:48에 게시됨

안드로이드 위치 권한 및 배열 인덱스 검색 문제 해결

위험 권한 처리 시 발생하는 예외 상황 안드로이드 6.0 마시멜로우부터는 위험 권한(Dangerous Permissions)을 런타임에 동적으로 요청해야 합니다. 위치 정보 관련 권한도 이에 해당하며, 공식 문서에서는 권한 그룹 개념을 설명하고 있습니다. LOCATION 권한 그룹에는 다음과 같은 두 가지 권한이 포함됩니다: ACCESS_FINE_LOCATION: 정밀 위치 접근 ACCESS_COARSE_LOCA ...

6월 27일 20:36에 게시됨

Android 앱에서 SQLite 데이터베이스 활용하기

SQLite란? 모든 모바일 애플리케이션은 데이터를 저장하고 관리할 필요가 있으며, Android 플랫폼에서는 이를 위해 SQLite를 기본 내장형 데이터베이스로 제공합니다. SQLite는 C 언어로 개발된 경량 오픈소스 데이터베이스 엔진으로, 서버 구조 없이 파일 기반으로 동작하여 메모리 사용량이 매우 적고(수백 KB 수준), 별도의 설치나 관리가 필요 없습니다. 이 특성 덕분 ...

6월 25일 20:59에 게시됨

Perfetto를 활용한 Android 성능 분석 기법

안드로이드에서 성능 문제를 분석할 때 다양한 도구들이 사용됩니다. 특히 렉이나 응답 지연과 같은 문제는 TraceView, SysTrace, Perfetto 및 Android Studio의 Android Profiler와 같은 도구들을 통해 해결할 수 있습니다. 성능 분석 도구 소개 TraceView: 함수 단위의 성능 프로파일러로, 각 메서드 호출 시간을 측정했으나 성능 영향이 크다는 이유로 더 이상 권장 ...

6월 24일 23:29에 게시됨

Android 12 동적 라이브 월페이퍼 구현 가이드

라이브 월페이퍼의 핵심 메커니즘 Android 12에서 WallpaperService는 정적 이미지를 넘어서 실시간 렌더링이 가능한 동적 배경 화면을 구현하는 핵심 컴포넌트다. 이 서비스는 SurfaceHolder를 통해 직접 그래픽스 버퍼에 접근하며, 프레임별 갱신이나 사용자 터치 반응 등 다양한 인터랙티브한 시각 효과를 구현할 수 있다. 엔진 클래스 설계 및 구현 월페이퍼의 실제 ...

6월 23일 03:25에 게시됨