Android port of Mixxx 2.5.6
  • C++ 54.5%
  • JavaScript 26.8%
  • C 11.4%
  • Shell 2%
  • CMake 1.5%
  • Other 3.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
libertin 826759c88b Fix Android recording directory access and UI freezes
Use a local directory picker with mounted storage shortcuts for Android recordings. Query free space with statvfs to avoid blocking the UI while Qt reads the mount table.

Document device validation, including SD card recording and a 122-second recording with responsive menus and settings.
2026-10-03 12:27:12 +09:00
android Fix Android recording directory access and UI freezes 2026-10-03 12:27:12 +09:00
docs Fix Android recording directory access and UI freezes 2026-10-03 12:27:12 +09:00
src Fix Android recording directory access and UI freezes 2026-10-03 12:27:12 +09:00
.gitignore Initial Commit 2026-10-01 02:02:25 +09:00
aqtinstall.log Initial Commit 2026-10-01 02:02:25 +09:00
README.md Implement Android settings migration and touch controls 2026-10-01 14:45:34 +09:00
TODO.md Enable pinch zoom on Android waveforms 2026-10-01 21:19:54 +09:00

Mixxx Android 포팅

Mixxx 2.5.6을 Android arm64 기기에서 실행하기 위한 포팅 프로젝트입니다. 기존 C++ 엔진과 Qt Widgets UI를 유지하고, Android 오디오·MIDI·문서 저장소 연동을 추가합니다.

진행 상황

2026-10-01 기준, Lenovo TB330XU(Android 15/API 35, arm64-v8a)에서 Mixxx APK를 빌드·설치해 UI와 실제 트랙 재생을 확인했습니다. Android 파일 선택기로 고른 음악 폴더의 원본 MP3를 복사하지 않고 읽으며, DDJ-FLX2의 MIDI 조작도 확인했습니다.

FLX2에서 48 kHz 4채널 오디오 스트림과 채널별 독립 출력을 probe로 확인했습니다. Mixxx 본체의 master/cue 물리 출력 분리, 320 kbps 트랙 두 데크 동시 재생, 장시간 USB 오디오 안정성은 계속 검증 중입니다. 따라서 현재 결과는 완성된 Android 릴리스가 아니라 실기기 포팅 진행본입니다.

대상과 동작

  • Android 15/API 35, arm64-v8a 실기기를 우선 대상으로 하며 화면은 가로 방향으로 고정합니다.
  • DDJ-FLX2의 MIDI 매핑과 스크립트는 사용자가 /storage/emulated/0/mixxx/controllers에 별도로 넣습니다. APK 빌드에 포함하지 않습니다.
  • 미디어 폴더는 Android 시스템 폴더 선택기로 지정합니다. 앱은 지속 권한이 있는 문서 URI를 통해 원본 파일을 읽고 음악을 앱 저장소에 복사하지 않습니다.
  • Mixxx 설정은 /storage/emulated/0/mixxx에 저장됩니다. 최초 실행 시 Android의 모든 파일 접근 권한을 허용해야 하며, 기존 앱별 외부 디렉터리의 설정은 이 위치로 한 번 이전합니다.

빌드

현재 빌드 스크립트는 Linux x86_64 호스트를 대상으로 합니다. Python 3, CMake, Ninja, Make, patch, unzip, Android SDK(Platform 35 및 라이선스), JDK 21이 필요합니다. 첫 실행에는 고정된 Qt와 네이티브 의존성을 내려받을 네트워크 연결도 필요합니다. SDK 기본 경로는 ~/Android/Sdk이며, SDK나 JDK가 다른 위치에 있으면 bootstrap.py에 --sdk와 --jdk를 지정하세요.

python3 android/tools/bootstrap.py
python3 android/tools/build-deps.py --jobs 12
python3 android/tools/build.py mixxx --jobs 12

도구 버전은 android/toolchain.lock.json과 android/dependencies.lock.json에 고정되어 있습니다. Qt probe APK만 빌드할 때는 bootstrap 다음 아래 명령을 실행합니다.

python3 android/tools/build.py probe --jobs 12

Mixxx Debug APK는 다음 경로에 생성됩니다.

android/build/mixxx/native/android-build/build/outputs/apk/debug/android-build-debug.apk

연결된 기기에 설치하려면 다음과 같이 실행합니다.

adb install -r android/build/mixxx/native/android-build/build/outputs/apk/debug/android-build-debug.apk

저장소 구성

  • src/: Mixxx 2.5.6 원본 및 Android용 C++ 변경
  • android/tools/: 도구체인 준비, 의존성 빌드, Qt 패키징 스크립트
  • android/package/: Qt Android APK 패키지 템플릿과 Java 브리지
  • android/probe/, android/tests/: Android 플랫폼 probe 및 호스트 테스트
  • android/qt-platform/: Qt Android 입력·화면 갱신 수정
  • res/: 사용자가 별도로 둘 수 있는 DDJ-FLX2 MIDI 매핑 위치(빌드에서 제외)
  • docs/: 포팅 검토, 상세 계획, 구현·검증 기록

문서

Mixxx 데스크톱의 일반 설치·사용 안내는 Mixxx 공식 매뉴얼을 참고하세요. 이 저장소의 Android 빌드와 현재 지원 범위는 위 포팅 문서에 기록되어 있습니다.