From ce99a6b3d3748d372e718f35ae305bda6930ee45 Mon Sep 17 00:00:00 2001 From: ened Date: Sun, 28 Sep 2025 04:22:53 +0900 Subject: [PATCH] Android project migration to platforms/android --- .gitignore | 11 +- vav2/CLAUDE.md | 27 +++- vav2/platforms/android/CMakeLists.txt | 24 ++-- .../applications/vav2player}/.gitignore | 0 .../applications/vav2player}/app/.gitignore | 0 .../vav2player}/app/build.gradle.kts | 0 .../vav2player}/app/proguard-rules.pro | 0 .../ExampleInstrumentedTest.kt | 0 .../app/src/main/AndroidManifest.xml | 0 .../ened/vav2player_android/MainActivity.kt | 0 .../ened/vav2player_android/ui/theme/Color.kt | 0 .../ened/vav2player_android/ui/theme/Theme.kt | 0 .../ened/vav2player_android/ui/theme/Type.kt | 0 .../res/drawable/ic_launcher_background.xml | 0 .../res/drawable/ic_launcher_foreground.xml | 0 .../main/res/mipmap-anydpi/ic_launcher.xml | 0 .../res/mipmap-anydpi/ic_launcher_round.xml | 0 .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin .../res/mipmap-hdpi/ic_launcher_round.webp | Bin .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin .../res/mipmap-mdpi/ic_launcher_round.webp | Bin .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin .../app/src/main/res/values/colors.xml | 0 .../app/src/main/res/values/strings.xml | 0 .../app/src/main/res/values/themes.xml | 0 .../app/src/main/res/xml/backup_rules.xml | 0 .../main/res/xml/data_extraction_rules.xml | 0 .../vav2player_android/ExampleUnitTest.kt | 0 .../applications/vav2player}/build.gradle.kts | 0 .../vav2player}/gradle.properties | 0 .../vav2player}/gradle/libs.versions.toml | 0 .../gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 .../android/applications/vav2player}/gradlew | 0 .../applications/vav2player}/gradlew.bat | 0 .../vav2player}/settings.gradle.kts | 0 .../vav2player}/vavcore/build.gradle | 0 .../vav2player}/vavcore/consumer-rules.pro | 0 .../vav2player}/vavcore/proguard-rules.pro | 0 .../vavcore/src/main/cpp/CMakeLists.txt | 0 .../vavcore/src/main/cpp/vavcore_jni.cpp | 0 .../src/main/java/com/vavcore/VavCore.java | 0 .../{src => tests/native}/android_test.cpp | 0 vav2/platforms/android/vavcore/CMakeLists.txt | 2 +- .../{ => vavcore}/include/dav1d/common.h | 0 .../{ => vavcore}/include/dav1d/data.h | 0 .../{ => vavcore}/include/dav1d/dav1d.h | 0 .../{ => vavcore}/include/dav1d/headers.h | 0 .../{ => vavcore}/include/dav1d/meson.build | 0 .../{ => vavcore}/include/dav1d/picture.h | 0 .../{ => vavcore}/include/dav1d/version.h | 0 vav2/platforms/android/vavcore/src | 1 + vav2/todo10.txt | 120 ++++++++++++++++++ 58 files changed, 169 insertions(+), 16 deletions(-) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/.gitignore (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/.gitignore (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/build.gradle.kts (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/proguard-rules.pro (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/androidTest/java/com/ened/vav2player_android/ExampleInstrumentedTest.kt (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/AndroidManifest.xml (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/java/com/ened/vav2player_android/MainActivity.kt (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/java/com/ened/vav2player_android/ui/theme/Color.kt (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/java/com/ened/vav2player_android/ui/theme/Theme.kt (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/java/com/ened/vav2player_android/ui/theme/Type.kt (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/drawable/ic_launcher_background.xml (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/drawable/ic_launcher_foreground.xml (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/mipmap-anydpi/ic_launcher.xml (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/mipmap-hdpi/ic_launcher.webp (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/mipmap-mdpi/ic_launcher.webp (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/mipmap-xhdpi/ic_launcher.webp (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/values/colors.xml (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/values/strings.xml (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/values/themes.xml (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/xml/backup_rules.xml (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/main/res/xml/data_extraction_rules.xml (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/app/src/test/java/com/ened/vav2player_android/ExampleUnitTest.kt (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/build.gradle.kts (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/gradle.properties (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/gradle/libs.versions.toml (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/gradle/wrapper/gradle-wrapper.jar (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/gradle/wrapper/gradle-wrapper.properties (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/gradlew (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/gradlew.bat (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/settings.gradle.kts (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/vavcore/build.gradle (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/vavcore/consumer-rules.pro (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/vavcore/proguard-rules.pro (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/vavcore/src/main/cpp/CMakeLists.txt (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/vavcore/src/main/cpp/vavcore_jni.cpp (100%) rename vav2/{Vav2Player_Android => platforms/android/applications/vav2player}/vavcore/src/main/java/com/vavcore/VavCore.java (100%) rename vav2/platforms/android/{src => tests/native}/android_test.cpp (100%) rename vav2/platforms/android/{ => vavcore}/include/dav1d/common.h (100%) rename vav2/platforms/android/{ => vavcore}/include/dav1d/data.h (100%) rename vav2/platforms/android/{ => vavcore}/include/dav1d/dav1d.h (100%) rename vav2/platforms/android/{ => vavcore}/include/dav1d/headers.h (100%) rename vav2/platforms/android/{ => vavcore}/include/dav1d/meson.build (100%) rename vav2/platforms/android/{ => vavcore}/include/dav1d/picture.h (100%) rename vav2/platforms/android/{ => vavcore}/include/dav1d/version.h (100%) create mode 120000 vav2/platforms/android/vavcore/src create mode 100644 vav2/todo10.txt diff --git a/.gitignore b/.gitignore index 15267f5..8f5734e 100644 --- a/.gitignore +++ b/.gitignore @@ -378,8 +378,15 @@ output.mp4 # 그럴 경우 이 줄을 주석 처리하거나 더 구체적인 경로를 지정해야 합니다. *.a *.so -/vav2/Vav2Player_Android/vavcore/build/ /vav2/godot_extension/libs/ + +# Current platform structure /vav2/platforms/windows/applications/vav2player/packages/ /vav2/platforms/windows/godot-plugin/libs/ -/vav2/platforms/windows/vavcore/lib +/vav2/platforms/windows/vavcore/lib/ +/vav2/platforms/android/applications/vav2player/vavcore/build/ +/vav2/platforms/android/applications/vav2player/.gradle/ +/vav2/platforms/android/applications/vav2player/build/ + +# Symbolic links and junctions (platform-specific src directories) +# Git will track symlinks as special files, which is the desired behavior diff --git a/vav2/CLAUDE.md b/vav2/CLAUDE.md index b93e691..ea0d0f7 100644 --- a/vav2/CLAUDE.md +++ b/vav2/CLAUDE.md @@ -53,7 +53,32 @@ size_t required_size = frame.width * frame.height * 4; --- -## ✅ **최신 완료 작업: VavCore DLL 통합 테스트 완료** (2025-09-28) +## ✅ **최신 완료 작업: Android 플랫폼 구조 재정리 완료** (2025-09-28) + +### **Android 플랫폼 구조 통일 성공** +- Android 플랫폼을 Windows와 동일한 구조로 완전 재정리 ✅ +- `Vav2Player_Android/` → `platforms/android/applications/vav2player/` 이동 완료 ✅ +- `include/`, `libs/` → `vavcore/` 하위로 통합 완료 ✅ +- `android_test.cpp` → `tests/native/` 이동 완료 ✅ +- 모든 CMakeLists.txt 경로 업데이트 완료 ✅ +- 기존 `Vav2Player_Android/` 디렉토리 정리 완료 ✅ + +### **통일된 플랫폼 구조** +``` +platforms/ +├── windows/ # Windows 플랫폼 +│ ├── applications/vav2player/ +│ ├── vavcore/ +│ ├── tests/ +│ └── godot-plugin/ +└── android/ # Android 플랫폼 (동일 구조) + ├── applications/vav2player/ + ├── vavcore/ + ├── tests/ + └── godot-plugin/ +``` + +## ✅ **이전 완료 작업: VavCore DLL 통합 테스트 완료** (2025-09-28) ### **VavCore DLL 통합 성공** - VavCore DLL P/Invoke 연결 완전 검증 ✅ diff --git a/vav2/platforms/android/CMakeLists.txt b/vav2/platforms/android/CMakeLists.txt index 55268c0..06b4165 100644 --- a/vav2/platforms/android/CMakeLists.txt +++ b/vav2/platforms/android/CMakeLists.txt @@ -10,48 +10,48 @@ endif() # Set library directory based on ABI if(ANDROID_ABI STREQUAL "arm64-v8a") - set(LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libs/arm64-v8a") + set(LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/vavcore/libs/arm64-v8a") elseif(ANDROID_ABI STREQUAL "armeabi-v7a") - set(LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libs/armeabi-v7a") + set(LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/vavcore/libs/armeabi-v7a") else() message(FATAL_ERROR "Unsupported Android ABI: ${ANDROID_ABI}") endif() # Include directories -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/vavcore/include) # Import dav1d as prebuilt library add_library(dav1d SHARED IMPORTED) set_target_properties(dav1d PROPERTIES IMPORTED_LOCATION ${LIB_DIR}/libdav1d.so - INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/include + INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/vavcore/include ) # Also provide static library option add_library(dav1d_static STATIC IMPORTED) set_target_properties(dav1d_static PROPERTIES IMPORTED_LOCATION ${LIB_DIR}/libdav1d.a - INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/include + INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/vavcore/include ) # VavCore sources for Android set(VAVCORE_ANDROID_SOURCES # Common VavCore sources (only .cpp files) - ../../VavCore/src/Decoder/VideoDecoderFactory.cpp - ../../VavCore/src/Decoder/AV1Decoder.cpp - ../../VavCore/src/FileIO/WebMFileReader.cpp + vavcore/src/Decoder/VideoDecoderFactory.cpp + vavcore/src/Decoder/AV1Decoder.cpp + vavcore/src/FileIO/WebMFileReader.cpp # Android-specific sources - ../../VavCore/src/Decoder/AndroidMediaCodecAV1Decoder.cpp + vavcore/src/Decoder/AndroidMediaCodecAV1Decoder.cpp # Test/example sources - src/android_test.cpp + tests/native/android_test.cpp ) # Include directories for VavCore include_directories( - ${CMAKE_CURRENT_SOURCE_DIR}/../../VavCore/src - ${CMAKE_CURRENT_SOURCE_DIR}/../../VavCore/include + ${CMAKE_CURRENT_SOURCE_DIR}/vavcore/src + ${CMAKE_CURRENT_SOURCE_DIR}/vavcore/include ) # Add platform-specific preprocessor definitions diff --git a/vav2/Vav2Player_Android/.gitignore b/vav2/platforms/android/applications/vav2player/.gitignore similarity index 100% rename from vav2/Vav2Player_Android/.gitignore rename to vav2/platforms/android/applications/vav2player/.gitignore diff --git a/vav2/Vav2Player_Android/app/.gitignore b/vav2/platforms/android/applications/vav2player/app/.gitignore similarity index 100% rename from vav2/Vav2Player_Android/app/.gitignore rename to vav2/platforms/android/applications/vav2player/app/.gitignore diff --git a/vav2/Vav2Player_Android/app/build.gradle.kts b/vav2/platforms/android/applications/vav2player/app/build.gradle.kts similarity index 100% rename from vav2/Vav2Player_Android/app/build.gradle.kts rename to vav2/platforms/android/applications/vav2player/app/build.gradle.kts diff --git a/vav2/Vav2Player_Android/app/proguard-rules.pro b/vav2/platforms/android/applications/vav2player/app/proguard-rules.pro similarity index 100% rename from vav2/Vav2Player_Android/app/proguard-rules.pro rename to vav2/platforms/android/applications/vav2player/app/proguard-rules.pro diff --git a/vav2/Vav2Player_Android/app/src/androidTest/java/com/ened/vav2player_android/ExampleInstrumentedTest.kt b/vav2/platforms/android/applications/vav2player/app/src/androidTest/java/com/ened/vav2player_android/ExampleInstrumentedTest.kt similarity index 100% rename from vav2/Vav2Player_Android/app/src/androidTest/java/com/ened/vav2player_android/ExampleInstrumentedTest.kt rename to vav2/platforms/android/applications/vav2player/app/src/androidTest/java/com/ened/vav2player_android/ExampleInstrumentedTest.kt diff --git a/vav2/Vav2Player_Android/app/src/main/AndroidManifest.xml b/vav2/platforms/android/applications/vav2player/app/src/main/AndroidManifest.xml similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/AndroidManifest.xml rename to vav2/platforms/android/applications/vav2player/app/src/main/AndroidManifest.xml diff --git a/vav2/Vav2Player_Android/app/src/main/java/com/ened/vav2player_android/MainActivity.kt b/vav2/platforms/android/applications/vav2player/app/src/main/java/com/ened/vav2player_android/MainActivity.kt similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/java/com/ened/vav2player_android/MainActivity.kt rename to vav2/platforms/android/applications/vav2player/app/src/main/java/com/ened/vav2player_android/MainActivity.kt diff --git a/vav2/Vav2Player_Android/app/src/main/java/com/ened/vav2player_android/ui/theme/Color.kt b/vav2/platforms/android/applications/vav2player/app/src/main/java/com/ened/vav2player_android/ui/theme/Color.kt similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/java/com/ened/vav2player_android/ui/theme/Color.kt rename to vav2/platforms/android/applications/vav2player/app/src/main/java/com/ened/vav2player_android/ui/theme/Color.kt diff --git a/vav2/Vav2Player_Android/app/src/main/java/com/ened/vav2player_android/ui/theme/Theme.kt b/vav2/platforms/android/applications/vav2player/app/src/main/java/com/ened/vav2player_android/ui/theme/Theme.kt similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/java/com/ened/vav2player_android/ui/theme/Theme.kt rename to vav2/platforms/android/applications/vav2player/app/src/main/java/com/ened/vav2player_android/ui/theme/Theme.kt diff --git a/vav2/Vav2Player_Android/app/src/main/java/com/ened/vav2player_android/ui/theme/Type.kt b/vav2/platforms/android/applications/vav2player/app/src/main/java/com/ened/vav2player_android/ui/theme/Type.kt similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/java/com/ened/vav2player_android/ui/theme/Type.kt rename to vav2/platforms/android/applications/vav2player/app/src/main/java/com/ened/vav2player_android/ui/theme/Type.kt diff --git a/vav2/Vav2Player_Android/app/src/main/res/drawable/ic_launcher_background.xml b/vav2/platforms/android/applications/vav2player/app/src/main/res/drawable/ic_launcher_background.xml similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/drawable/ic_launcher_background.xml rename to vav2/platforms/android/applications/vav2player/app/src/main/res/drawable/ic_launcher_background.xml diff --git a/vav2/Vav2Player_Android/app/src/main/res/drawable/ic_launcher_foreground.xml b/vav2/platforms/android/applications/vav2player/app/src/main/res/drawable/ic_launcher_foreground.xml similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/drawable/ic_launcher_foreground.xml rename to vav2/platforms/android/applications/vav2player/app/src/main/res/drawable/ic_launcher_foreground.xml diff --git a/vav2/Vav2Player_Android/app/src/main/res/mipmap-anydpi/ic_launcher.xml b/vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-anydpi/ic_launcher.xml similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/mipmap-anydpi/ic_launcher.xml rename to vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-anydpi/ic_launcher.xml diff --git a/vav2/Vav2Player_Android/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml b/vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml rename to vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml diff --git a/vav2/Vav2Player_Android/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-hdpi/ic_launcher.webp similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/mipmap-hdpi/ic_launcher.webp rename to vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-hdpi/ic_launcher.webp diff --git a/vav2/Vav2Player_Android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp rename to vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp diff --git a/vav2/Vav2Player_Android/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-mdpi/ic_launcher.webp similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/mipmap-mdpi/ic_launcher.webp rename to vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-mdpi/ic_launcher.webp diff --git a/vav2/Vav2Player_Android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp rename to vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp diff --git a/vav2/Vav2Player_Android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-xhdpi/ic_launcher.webp similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp rename to vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-xhdpi/ic_launcher.webp diff --git a/vav2/Vav2Player_Android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp rename to vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp diff --git a/vav2/Vav2Player_Android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp rename to vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp diff --git a/vav2/Vav2Player_Android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp rename to vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp diff --git a/vav2/Vav2Player_Android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp rename to vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp diff --git a/vav2/Vav2Player_Android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp rename to vav2/platforms/android/applications/vav2player/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp diff --git a/vav2/Vav2Player_Android/app/src/main/res/values/colors.xml b/vav2/platforms/android/applications/vav2player/app/src/main/res/values/colors.xml similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/values/colors.xml rename to vav2/platforms/android/applications/vav2player/app/src/main/res/values/colors.xml diff --git a/vav2/Vav2Player_Android/app/src/main/res/values/strings.xml b/vav2/platforms/android/applications/vav2player/app/src/main/res/values/strings.xml similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/values/strings.xml rename to vav2/platforms/android/applications/vav2player/app/src/main/res/values/strings.xml diff --git a/vav2/Vav2Player_Android/app/src/main/res/values/themes.xml b/vav2/platforms/android/applications/vav2player/app/src/main/res/values/themes.xml similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/values/themes.xml rename to vav2/platforms/android/applications/vav2player/app/src/main/res/values/themes.xml diff --git a/vav2/Vav2Player_Android/app/src/main/res/xml/backup_rules.xml b/vav2/platforms/android/applications/vav2player/app/src/main/res/xml/backup_rules.xml similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/xml/backup_rules.xml rename to vav2/platforms/android/applications/vav2player/app/src/main/res/xml/backup_rules.xml diff --git a/vav2/Vav2Player_Android/app/src/main/res/xml/data_extraction_rules.xml b/vav2/platforms/android/applications/vav2player/app/src/main/res/xml/data_extraction_rules.xml similarity index 100% rename from vav2/Vav2Player_Android/app/src/main/res/xml/data_extraction_rules.xml rename to vav2/platforms/android/applications/vav2player/app/src/main/res/xml/data_extraction_rules.xml diff --git a/vav2/Vav2Player_Android/app/src/test/java/com/ened/vav2player_android/ExampleUnitTest.kt b/vav2/platforms/android/applications/vav2player/app/src/test/java/com/ened/vav2player_android/ExampleUnitTest.kt similarity index 100% rename from vav2/Vav2Player_Android/app/src/test/java/com/ened/vav2player_android/ExampleUnitTest.kt rename to vav2/platforms/android/applications/vav2player/app/src/test/java/com/ened/vav2player_android/ExampleUnitTest.kt diff --git a/vav2/Vav2Player_Android/build.gradle.kts b/vav2/platforms/android/applications/vav2player/build.gradle.kts similarity index 100% rename from vav2/Vav2Player_Android/build.gradle.kts rename to vav2/platforms/android/applications/vav2player/build.gradle.kts diff --git a/vav2/Vav2Player_Android/gradle.properties b/vav2/platforms/android/applications/vav2player/gradle.properties similarity index 100% rename from vav2/Vav2Player_Android/gradle.properties rename to vav2/platforms/android/applications/vav2player/gradle.properties diff --git a/vav2/Vav2Player_Android/gradle/libs.versions.toml b/vav2/platforms/android/applications/vav2player/gradle/libs.versions.toml similarity index 100% rename from vav2/Vav2Player_Android/gradle/libs.versions.toml rename to vav2/platforms/android/applications/vav2player/gradle/libs.versions.toml diff --git a/vav2/Vav2Player_Android/gradle/wrapper/gradle-wrapper.jar b/vav2/platforms/android/applications/vav2player/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from vav2/Vav2Player_Android/gradle/wrapper/gradle-wrapper.jar rename to vav2/platforms/android/applications/vav2player/gradle/wrapper/gradle-wrapper.jar diff --git a/vav2/Vav2Player_Android/gradle/wrapper/gradle-wrapper.properties b/vav2/platforms/android/applications/vav2player/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from vav2/Vav2Player_Android/gradle/wrapper/gradle-wrapper.properties rename to vav2/platforms/android/applications/vav2player/gradle/wrapper/gradle-wrapper.properties diff --git a/vav2/Vav2Player_Android/gradlew b/vav2/platforms/android/applications/vav2player/gradlew similarity index 100% rename from vav2/Vav2Player_Android/gradlew rename to vav2/platforms/android/applications/vav2player/gradlew diff --git a/vav2/Vav2Player_Android/gradlew.bat b/vav2/platforms/android/applications/vav2player/gradlew.bat similarity index 100% rename from vav2/Vav2Player_Android/gradlew.bat rename to vav2/platforms/android/applications/vav2player/gradlew.bat diff --git a/vav2/Vav2Player_Android/settings.gradle.kts b/vav2/platforms/android/applications/vav2player/settings.gradle.kts similarity index 100% rename from vav2/Vav2Player_Android/settings.gradle.kts rename to vav2/platforms/android/applications/vav2player/settings.gradle.kts diff --git a/vav2/Vav2Player_Android/vavcore/build.gradle b/vav2/platforms/android/applications/vav2player/vavcore/build.gradle similarity index 100% rename from vav2/Vav2Player_Android/vavcore/build.gradle rename to vav2/platforms/android/applications/vav2player/vavcore/build.gradle diff --git a/vav2/Vav2Player_Android/vavcore/consumer-rules.pro b/vav2/platforms/android/applications/vav2player/vavcore/consumer-rules.pro similarity index 100% rename from vav2/Vav2Player_Android/vavcore/consumer-rules.pro rename to vav2/platforms/android/applications/vav2player/vavcore/consumer-rules.pro diff --git a/vav2/Vav2Player_Android/vavcore/proguard-rules.pro b/vav2/platforms/android/applications/vav2player/vavcore/proguard-rules.pro similarity index 100% rename from vav2/Vav2Player_Android/vavcore/proguard-rules.pro rename to vav2/platforms/android/applications/vav2player/vavcore/proguard-rules.pro diff --git a/vav2/Vav2Player_Android/vavcore/src/main/cpp/CMakeLists.txt b/vav2/platforms/android/applications/vav2player/vavcore/src/main/cpp/CMakeLists.txt similarity index 100% rename from vav2/Vav2Player_Android/vavcore/src/main/cpp/CMakeLists.txt rename to vav2/platforms/android/applications/vav2player/vavcore/src/main/cpp/CMakeLists.txt diff --git a/vav2/Vav2Player_Android/vavcore/src/main/cpp/vavcore_jni.cpp b/vav2/platforms/android/applications/vav2player/vavcore/src/main/cpp/vavcore_jni.cpp similarity index 100% rename from vav2/Vav2Player_Android/vavcore/src/main/cpp/vavcore_jni.cpp rename to vav2/platforms/android/applications/vav2player/vavcore/src/main/cpp/vavcore_jni.cpp diff --git a/vav2/Vav2Player_Android/vavcore/src/main/java/com/vavcore/VavCore.java b/vav2/platforms/android/applications/vav2player/vavcore/src/main/java/com/vavcore/VavCore.java similarity index 100% rename from vav2/Vav2Player_Android/vavcore/src/main/java/com/vavcore/VavCore.java rename to vav2/platforms/android/applications/vav2player/vavcore/src/main/java/com/vavcore/VavCore.java diff --git a/vav2/platforms/android/src/android_test.cpp b/vav2/platforms/android/tests/native/android_test.cpp similarity index 100% rename from vav2/platforms/android/src/android_test.cpp rename to vav2/platforms/android/tests/native/android_test.cpp diff --git a/vav2/platforms/android/vavcore/CMakeLists.txt b/vav2/platforms/android/vavcore/CMakeLists.txt index e6cfaae..f33480e 100644 --- a/vav2/platforms/android/vavcore/CMakeLists.txt +++ b/vav2/platforms/android/vavcore/CMakeLists.txt @@ -26,7 +26,7 @@ add_compile_definitions(ANDROID) add_compile_definitions(__ANDROID_API__=${ANDROID_NATIVE_API_LEVEL}) # VavCore source directory (relative to this CMakeLists.txt) -set(VAVCORE_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../../VavCore) +set(VAVCORE_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) # Include directories include_directories( diff --git a/vav2/platforms/android/include/dav1d/common.h b/vav2/platforms/android/vavcore/include/dav1d/common.h similarity index 100% rename from vav2/platforms/android/include/dav1d/common.h rename to vav2/platforms/android/vavcore/include/dav1d/common.h diff --git a/vav2/platforms/android/include/dav1d/data.h b/vav2/platforms/android/vavcore/include/dav1d/data.h similarity index 100% rename from vav2/platforms/android/include/dav1d/data.h rename to vav2/platforms/android/vavcore/include/dav1d/data.h diff --git a/vav2/platforms/android/include/dav1d/dav1d.h b/vav2/platforms/android/vavcore/include/dav1d/dav1d.h similarity index 100% rename from vav2/platforms/android/include/dav1d/dav1d.h rename to vav2/platforms/android/vavcore/include/dav1d/dav1d.h diff --git a/vav2/platforms/android/include/dav1d/headers.h b/vav2/platforms/android/vavcore/include/dav1d/headers.h similarity index 100% rename from vav2/platforms/android/include/dav1d/headers.h rename to vav2/platforms/android/vavcore/include/dav1d/headers.h diff --git a/vav2/platforms/android/include/dav1d/meson.build b/vav2/platforms/android/vavcore/include/dav1d/meson.build similarity index 100% rename from vav2/platforms/android/include/dav1d/meson.build rename to vav2/platforms/android/vavcore/include/dav1d/meson.build diff --git a/vav2/platforms/android/include/dav1d/picture.h b/vav2/platforms/android/vavcore/include/dav1d/picture.h similarity index 100% rename from vav2/platforms/android/include/dav1d/picture.h rename to vav2/platforms/android/vavcore/include/dav1d/picture.h diff --git a/vav2/platforms/android/include/dav1d/version.h b/vav2/platforms/android/vavcore/include/dav1d/version.h similarity index 100% rename from vav2/platforms/android/include/dav1d/version.h rename to vav2/platforms/android/vavcore/include/dav1d/version.h diff --git a/vav2/platforms/android/vavcore/src b/vav2/platforms/android/vavcore/src new file mode 120000 index 0000000..433fc8f --- /dev/null +++ b/vav2/platforms/android/vavcore/src @@ -0,0 +1 @@ +../../windows/vavcore/src \ No newline at end of file diff --git a/vav2/todo10.txt b/vav2/todo10.txt new file mode 100644 index 0000000..9b741e4 --- /dev/null +++ b/vav2/todo10.txt @@ -0,0 +1,120 @@ + 📋 제안사항 분석 및 검토 + + 🎯 현재 Android 구조 + + platforms/android/ + ├── build.gradle # 루트 빌드 설정 + ├── CMakeLists.txt # 네이티브 빌드 + ├── godot-plugin/ # Godot 플러그인 + ├── include/dav1d/ # 헤더 파일들 + ├── libs/ # 라이브러리들 + ├── src/android_test.cpp # 테스트 앱 + └── vavcore/ # VavCore 빌드 설정 + ├── build.sh + └── CMakeLists.txt + + 🎯 제안된 새 구조 + + platforms/android/ + ├── vavcore/ # VavCore 라이브러리 (통합) + │ ├── include/ # 헤더 파일들 (이동) + │ ├── libs/ # 라이브러리들 (이동) + │ ├── build.sh + │ └── CMakeLists.txt + ├── godot-plugin/ # Godot 플러그인 (유지) + ├── applications/ # Android 애플리케이션들 (신규) + │ └── vav2player/ # Vav2Player_Android 이동 + ├── tests/ # 테스트들 (신규) + │ └── native/ # 네이티브 테스트 + │ └── android_test.cpp + └── build.gradle # 루트 빌드 설정 + + ✅ 제안사항 장점 분석 + + 🎯 1. 플랫폼 일관성 + + ✅ 매우 좋음 - Windows와 완전히 동일한 구조: + platforms/{platform}/ + ├── vavcore/ # 핵심 라이브러리 + ├── applications/ # GUI 앱들 + ├── godot-plugin/ # Godot 확장 + └── tests/ # 모든 테스트 + + 🎯 2. Android 표준 호환성 검토 + + ✅ 표준 Android 프로젝트 구조와 호환됨 + + typical-android-project/ + ├── app/ # 메인 애플리케이션 + ├── library-modules/ # 라이브러리 모듈들 + ├── build.gradle # 루트 빌드 설정 + └── settings.gradle # 프로젝트 설정 + + 제안된 구조는 Android 표준을 잘 따름: + - applications/vav2player/ = 표준 app/ 모듈 + - vavcore/ = 표준 라이브러리 모듈 + - godot-plugin/ = 다른 라이브러리 모듈 + + ✅ Gradle 멀티모듈 프로젝트 패턴 + + // settings.gradle + include ':applications:vav2player' + include ':vavcore' + include ':godot-plugin' + + 🎯 3. 빌드 시스템 호환성 + + ✅ CMake/NDK 표준 구조 + + vavcore/ + ├── include/ # 표준 C++ 헤더 위치 + ├── libs/ # 표준 라이브러리 위치 + └── CMakeLists.txt # 표준 CMake 설정 + + ✅ Android.mk/Application.mk 호환 + + - include/ 경로는 LOCAL_C_INCLUDES에서 표준적으로 사용 + - libs/ 경로는 LOCAL_SHARED_LIBRARIES 표준 위치 + + 🎯 4. 테스트 구조 개선 + + 현재: 테스트가 src/ 에 혼재 + + 제안: 명확한 테스트 분리 + + tests/ + ├── native/ # C++ 네이티브 테스트 + ├── unit/ # 유닛 테스트 + └── integration/ # 통합 테스트 + + ⚠️ 잠재적 고려사항 + + 🔍 1. 빌드 스크립트 수정 필요 + + - CMakeLists.txt 경로 참조 업데이트 필요 + - build.gradle 프로젝트 구조 재설정 필요 + + 🔍 2. 기존 의존성 체크 + + - Godot 플러그인의 현재 경로 참조 확인 필요 + - 다른 빌드 스크립트들의 Android 경로 참조 확인 + + 🎯 최종 권장사항 + + ✅ 적극 추천! + + 제안하신 구조는: + 1. ✅ 플랫폼 일관성: Windows와 완벽하게 일치 + 2. ✅ Android 표준: Android 표준 프로젝트 구조와 완전 호환 + 3. ✅ 확장성: 향후 iOS/Linux 추가 시 동일한 패턴 적용 가능 + 4. ✅ 유지보수성: 플랫폼별 구조가 예측 가능하고 직관적 + + 🛠️ 구현 순서 제안 + + 1. applications/vav2player/ 디렉토리 생성 및 Vav2Player_Android 이동 + 2. vavcore/include/, vavcore/libs/ 디렉토리 생성 및 파일 이동 + 3. tests/native/ 디렉토리 생성 및 android_test.cpp 이동 + 4. 빌드 스크립트들 경로 업데이트 + 5. 테스트 빌드 및 검증 + + 이 구조 변경을 진행해보시겠습니까? 🚀 \ No newline at end of file