From c216d8a6110b27da665eac54eeda577539aa382f Mon Sep 17 00:00:00 2001 From: acgist <289547414@qq.com> Date: Mon, 20 Mar 2023 20:51:05 +0800 Subject: [PATCH] [+] HarmonyOS -> Android --- .gitmodules | 7 +- README.md | 6 +- .../README.md | 7 +- .../libmediasoupclient | 0 .../taoyao/.gitignore | 5 - .../taoyao/boot/.gitignore | 0 .../taoyao/boot/build.gradle | 33 ++++ .../taoyao/boot}/proguard-rules.pro | 0 .../taoyao/boot/src/main/AndroidManifest.xml | 4 + .../com/acgist/taoyao/boot}/model/Header.java | 2 +- .../acgist/taoyao/boot}/model/Message.java | 4 +- .../taoyao/boot}/model/MessageCode.java | 2 +- .../boot}/model/MessageCodeException.java | 2 +- .../taoyao/boot}/utils/CloseableUtils.java | 2 +- .../acgist/taoyao/boot}/utils/DateUtils.java | 2 +- .../acgist/taoyao/boot}/utils/JSONUtils.java | 2 +- taoyao-client-android/taoyao/build.gradle | 4 + .../taoyao/client/.gitignore | 0 .../taoyao/client/build.gradle | 56 ++++++ .../taoyao/client/proguard-rules.pro | 1 + .../taoyao/ExampleInstrumentedTest.java | 20 ++ .../client/src/main/AndroidManifest.xml | 30 +++ .../taoyao/client/src/main/cpp/CMakeLists.txt | 27 ++- .../src/main/cpp/include/AudioPublisher.hpp | 0 .../src/main/cpp/include/MediaPublisher.hpp | 0 .../src/main/cpp/include/MediaRecorder.hpp | 0 .../src/main/cpp/include/VideoPublisher.hpp | 0 .../taoyao/client/src/main/cpp/main.cpp | 10 + .../taoyao/client/src/main/cpp/main.hpp | 0 .../src/main/cpp/media/AudioPublisher.cpp | 0 .../src/main/cpp/media/MediaPublisher.cpp | 0 .../src/main/cpp/media/MediaRecorder.cpp | 0 .../src/main/cpp/media/VideoPublisher.cpp | 0 .../client/src/main/ic_launcher-playstore.png | Bin 0 -> 48058 bytes .../acgist/taoyao/client/MainActivity.java | 32 +++ .../acgist/taoyao/client/MediaService.java | 15 ++ .../taoyao/client/SettingsActivity.java | 18 ++ .../acgist/taoyao/client}/config/Config.java | 2 +- .../taoyao/client/media/AudioPublisher.java | 4 + .../taoyao/client}/media/MediaClient.java | 2 +- .../taoyao/client/media/MediaRecorder.java | 4 + .../taoyao/client/media/VideoPublisher.java | 4 + .../acgist/taoyao/client}/signal/Taoyao.java | 18 +- .../src/main/res/layout/activity_main.xml | 19 ++ .../src/main/res/layout/activity_settings.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3121 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 5051 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5128 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1972 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 3166 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 3156 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4287 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 7287 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7491 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6842 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 12537 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 12176 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9523 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 18986 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 17840 bytes .../src/main/res/values-night/themes.xml | 12 ++ .../client/src/main/res/values/arrays.xml | 11 ++ .../client/src/main/res/values/colors.xml | 10 + .../client/src/main/res/values/strings.xml | 16 ++ .../client/src/main/res/values/themes.xml | 12 ++ .../client/src/main/res/xml/backup_rules.xml | 3 + .../main/res/xml/data_extraction_rules.xml | 5 + .../com/acgist/taoyao/ExampleUnitTest.java | 12 ++ .../taoyao/gradle.properties | 3 + .../taoyao/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + taoyao-client-android/taoyao/gradlew | 185 ++++++++++++++++++ taoyao-client-android/taoyao/gradlew.bat | 89 +++++++++ taoyao-client-android/taoyao/settings.gradle | 17 ++ taoyao-client-harmony/taoyao/build.gradle | 41 ---- .../taoyao/client/build.gradle | 34 ---- .../taoyao/client/src/main/config.json | 60 ------ .../taoyao/client/src/main/cpp/main.cpp | 16 -- .../java/com/acgist/taoyao/MainAbility.java | 16 -- .../java/com/acgist/taoyao/MediaAbility.java | 43 ---- .../com/acgist/taoyao/TaoyaoApplication.java | 16 -- .../acgist/taoyao/media/AudioPublisher.java | 4 - .../acgist/taoyao/media/MediaRecorder.java | 4 - .../acgist/taoyao/media/VideoPublisher.java | 4 - .../acgist/taoyao/slice/MainAbilitySlice.java | 65 ------ .../taoyao/slice/SettingAbilitySlice.java | 59 ------ .../main/resources/base/element/integer.json | 8 - .../main/resources/base/element/string.json | 24 --- .../src/main/resources/base/media/icon.png | Bin 6790 -> 0 bytes .../com/acgist/taoyao/ExampleOhosTest.java | 14 -- .../java/com/acgist/taoyao/ExampleTest.java | 9 - .../java/com/acgist/taoyao/TaoyaoTest.java | 17 -- .../gradle/wrapper/gradle-wrapper.properties | 2 - taoyao-client-harmony/taoyao/package.json | 3 - taoyao-client-harmony/taoyao/settings.gradle | 2 - .../taoyao/boot/config/MediaProperties.java | 16 +- .../src/main/resources/application.yml | 82 +++++--- 97 files changed, 740 insertions(+), 529 deletions(-) rename {taoyao-client-harmony => taoyao-client-android}/README.md (51%) rename {taoyao-client-harmony => taoyao-client-android}/libmediasoupclient (100%) rename {taoyao-client-harmony => taoyao-client-android}/taoyao/.gitignore (52%) rename taoyao-client-harmony/taoyao/client/src/main/cpp/media/MediaPublisher.cpp => taoyao-client-android/taoyao/boot/.gitignore (100%) create mode 100644 taoyao-client-android/taoyao/boot/build.gradle rename {taoyao-client-harmony/taoyao/client => taoyao-client-android/taoyao/boot}/proguard-rules.pro (100%) create mode 100644 taoyao-client-android/taoyao/boot/src/main/AndroidManifest.xml rename {taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao => taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot}/model/Header.java (96%) rename {taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao => taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot}/model/Message.java (98%) rename {taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao => taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot}/model/MessageCode.java (98%) rename {taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao => taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot}/model/MessageCodeException.java (97%) rename {taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao => taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot}/utils/CloseableUtils.java (94%) rename {taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao => taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot}/utils/DateUtils.java (99%) rename {taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao => taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot}/utils/JSONUtils.java (99%) create mode 100644 taoyao-client-android/taoyao/build.gradle rename taoyao-client-harmony/taoyao/gradle.properties => taoyao-client-android/taoyao/client/.gitignore (100%) create mode 100644 taoyao-client-android/taoyao/client/build.gradle create mode 100644 taoyao-client-android/taoyao/client/proguard-rules.pro create mode 100644 taoyao-client-android/taoyao/client/src/androidTest/java/com/acgist/taoyao/ExampleInstrumentedTest.java create mode 100644 taoyao-client-android/taoyao/client/src/main/AndroidManifest.xml rename {taoyao-client-harmony => taoyao-client-android}/taoyao/client/src/main/cpp/CMakeLists.txt (73%) rename {taoyao-client-harmony => taoyao-client-android}/taoyao/client/src/main/cpp/include/AudioPublisher.hpp (100%) rename {taoyao-client-harmony => taoyao-client-android}/taoyao/client/src/main/cpp/include/MediaPublisher.hpp (100%) rename {taoyao-client-harmony => taoyao-client-android}/taoyao/client/src/main/cpp/include/MediaRecorder.hpp (100%) rename {taoyao-client-harmony => taoyao-client-android}/taoyao/client/src/main/cpp/include/VideoPublisher.hpp (100%) create mode 100644 taoyao-client-android/taoyao/client/src/main/cpp/main.cpp rename {taoyao-client-harmony => taoyao-client-android}/taoyao/client/src/main/cpp/main.hpp (100%) rename {taoyao-client-harmony => taoyao-client-android}/taoyao/client/src/main/cpp/media/AudioPublisher.cpp (100%) create mode 100644 taoyao-client-android/taoyao/client/src/main/cpp/media/MediaPublisher.cpp rename {taoyao-client-harmony => taoyao-client-android}/taoyao/client/src/main/cpp/media/MediaRecorder.cpp (100%) rename {taoyao-client-harmony => taoyao-client-android}/taoyao/client/src/main/cpp/media/VideoPublisher.cpp (100%) create mode 100644 taoyao-client-android/taoyao/client/src/main/ic_launcher-playstore.png create mode 100644 taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/MainActivity.java create mode 100644 taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/MediaService.java create mode 100644 taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/SettingsActivity.java rename {taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao => taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client}/config/Config.java (61%) create mode 100644 taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/AudioPublisher.java rename {taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao => taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client}/media/MediaClient.java (54%) create mode 100644 taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/MediaRecorder.java create mode 100644 taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/VideoPublisher.java rename {taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao => taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client}/signal/Taoyao.java (95%) create mode 100644 taoyao-client-android/taoyao/client/src/main/res/layout/activity_main.xml create mode 100644 taoyao-client-android/taoyao/client/src/main/res/layout/activity_settings.xml create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 taoyao-client-android/taoyao/client/src/main/res/values-night/themes.xml create mode 100644 taoyao-client-android/taoyao/client/src/main/res/values/arrays.xml create mode 100644 taoyao-client-android/taoyao/client/src/main/res/values/colors.xml create mode 100644 taoyao-client-android/taoyao/client/src/main/res/values/strings.xml create mode 100644 taoyao-client-android/taoyao/client/src/main/res/values/themes.xml create mode 100644 taoyao-client-android/taoyao/client/src/main/res/xml/backup_rules.xml create mode 100644 taoyao-client-android/taoyao/client/src/main/res/xml/data_extraction_rules.xml create mode 100644 taoyao-client-android/taoyao/client/src/test/java/com/acgist/taoyao/ExampleUnitTest.java create mode 100644 taoyao-client-android/taoyao/gradle.properties create mode 100644 taoyao-client-android/taoyao/gradle/wrapper/gradle-wrapper.jar create mode 100644 taoyao-client-android/taoyao/gradle/wrapper/gradle-wrapper.properties create mode 100644 taoyao-client-android/taoyao/gradlew create mode 100644 taoyao-client-android/taoyao/gradlew.bat create mode 100644 taoyao-client-android/taoyao/settings.gradle delete mode 100644 taoyao-client-harmony/taoyao/build.gradle delete mode 100644 taoyao-client-harmony/taoyao/client/build.gradle delete mode 100644 taoyao-client-harmony/taoyao/client/src/main/config.json delete mode 100644 taoyao-client-harmony/taoyao/client/src/main/cpp/main.cpp delete mode 100644 taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/MainAbility.java delete mode 100644 taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/MediaAbility.java delete mode 100644 taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/TaoyaoApplication.java delete mode 100644 taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/AudioPublisher.java delete mode 100644 taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/MediaRecorder.java delete mode 100644 taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/VideoPublisher.java delete mode 100644 taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/slice/MainAbilitySlice.java delete mode 100644 taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/slice/SettingAbilitySlice.java delete mode 100644 taoyao-client-harmony/taoyao/client/src/main/resources/base/element/integer.json delete mode 100644 taoyao-client-harmony/taoyao/client/src/main/resources/base/element/string.json delete mode 100644 taoyao-client-harmony/taoyao/client/src/main/resources/base/media/icon.png delete mode 100644 taoyao-client-harmony/taoyao/client/src/ohosTest/java/com/acgist/taoyao/ExampleOhosTest.java delete mode 100644 taoyao-client-harmony/taoyao/client/src/test/java/com/acgist/taoyao/ExampleTest.java delete mode 100644 taoyao-client-harmony/taoyao/client/src/test/java/com/acgist/taoyao/TaoyaoTest.java delete mode 100644 taoyao-client-harmony/taoyao/gradle/wrapper/gradle-wrapper.properties delete mode 100644 taoyao-client-harmony/taoyao/package.json delete mode 100644 taoyao-client-harmony/taoyao/settings.gradle diff --git a/.gitmodules b/.gitmodules index 826c608..95b683f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,9 @@ [submodule "taoyao-client-media/mediasoup"] path = taoyao-client-media/mediasoup url = https://gitee.com/acgist/mediasoup.git - branch = taoyao [submodule "taoyao-client-web/mediasoup-client"] path = taoyao-client-web/mediasoup-client url = https://gitee.com/acgist/mediasoup-client.git - branch = taoyao -[submodule "taoyao-client-harmony/libmediasoupclient"] - path = taoyao-client-harmony/libmediasoupclient +[submodule "taoyao-client-android/libmediasoupclient"] + path = taoyao-client-android/libmediasoupclient url = https://gitee.com/acgist/libmediasoupclient.git - branch = taoyao \ No newline at end of file diff --git a/README.md b/README.md index 52ffd83..d09f4da 100644 --- a/README.md +++ b/README.md @@ -21,9 +21,9 @@ |模块|名称|描述| |:--|:--|:--| -|taoyao-client-web|Web终端|提供前端控制页面| -|taoyao-client-media|媒体服务|提供音视频接入服务| -|taoyao-client-harmony|鸿蒙终端|鸿蒙智能终端接入| +|taoyao-client-web|Web终端|Web终端| +|taoyao-client-media|媒体终端|媒体服务| +|taoyao-client-android|安卓终端|安卓终端| |taoyao-signal-server|信令服务|终端信令控制| ## 证书 diff --git a/taoyao-client-harmony/README.md b/taoyao-client-android/README.md similarity index 51% rename from taoyao-client-harmony/README.md rename to taoyao-client-android/README.md index 82bd49f..d1ea801 100644 --- a/taoyao-client-harmony/README.md +++ b/taoyao-client-android/README.md @@ -1,4 +1,4 @@ -# 鸿蒙终端 +# 安卓终端 ## C++终端 @@ -8,6 +8,5 @@ ## 学习资料 -https://developer.harmonyos.com/cn/develop/ -https://developer.harmonyos.com/cn/docs/documentation/doc-guides/start-overview-0000000000029602 -https://developer.harmonyos.com/cn/docs/documentation/doc-references/reference-document-outline-0000001115016824 +https://developer.android.google.cn/docs?hl=zh-cn +https://developer.android.google.cn/guide?hl=zh-cn diff --git a/taoyao-client-harmony/libmediasoupclient b/taoyao-client-android/libmediasoupclient similarity index 100% rename from taoyao-client-harmony/libmediasoupclient rename to taoyao-client-android/libmediasoupclient diff --git a/taoyao-client-harmony/taoyao/.gitignore b/taoyao-client-android/taoyao/.gitignore similarity index 52% rename from taoyao-client-harmony/taoyao/.gitignore rename to taoyao-client-android/taoyao/.gitignore index a7c9c0c..048777e 100644 --- a/taoyao-client-harmony/taoyao/.gitignore +++ b/taoyao-client-android/taoyao/.gitignore @@ -1,12 +1,7 @@ local.properties -.clangd -.clang-tidy -.clang-format - **/.cxx **/.idea **/.gradle **/build -**/node_modules diff --git a/taoyao-client-harmony/taoyao/client/src/main/cpp/media/MediaPublisher.cpp b/taoyao-client-android/taoyao/boot/.gitignore similarity index 100% rename from taoyao-client-harmony/taoyao/client/src/main/cpp/media/MediaPublisher.cpp rename to taoyao-client-android/taoyao/boot/.gitignore diff --git a/taoyao-client-android/taoyao/boot/build.gradle b/taoyao-client-android/taoyao/boot/build.gradle new file mode 100644 index 0000000..a1aea6a --- /dev/null +++ b/taoyao-client-android/taoyao/boot/build.gradle @@ -0,0 +1,33 @@ +plugins { + id 'com.android.library' +} + +android { + namespace 'com.acgist.client.boot' + compileSdk 32 + defaultConfig { + minSdk 31 + targetSdk 32 + versionCode 100 + versionName "1.0.0" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + buildFeatures { + viewBinding true + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } +} + +dependencies { + implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.2' + implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.2' + testImplementation 'junit:junit:4.13.2' +} diff --git a/taoyao-client-harmony/taoyao/client/proguard-rules.pro b/taoyao-client-android/taoyao/boot/proguard-rules.pro similarity index 100% rename from taoyao-client-harmony/taoyao/client/proguard-rules.pro rename to taoyao-client-android/taoyao/boot/proguard-rules.pro diff --git a/taoyao-client-android/taoyao/boot/src/main/AndroidManifest.xml b/taoyao-client-android/taoyao/boot/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a5918e6 --- /dev/null +++ b/taoyao-client-android/taoyao/boot/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/model/Header.java b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/model/Header.java similarity index 96% rename from taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/model/Header.java rename to taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/model/Header.java index 53fa79e..ea7fe36 100644 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/model/Header.java +++ b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/model/Header.java @@ -1,4 +1,4 @@ -package com.acgist.taoyao.model; +package com.acgist.taoyao.boot.model; import java.io.Serializable; diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/model/Message.java b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/model/Message.java similarity index 98% rename from taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/model/Message.java rename to taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/model/Message.java index 3207229..50c61ac 100644 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/model/Message.java +++ b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/model/Message.java @@ -1,10 +1,10 @@ -package com.acgist.taoyao.model; +package com.acgist.taoyao.boot.model; import java.io.Serializable; import java.util.HashMap; import java.util.Map; -import com.acgist.taoyao.utils.JSONUtils; +import com.acgist.taoyao.boot.utils.JSONUtils; import com.fasterxml.jackson.annotation.JsonIncludeProperties; diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/model/MessageCode.java b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/model/MessageCode.java similarity index 98% rename from taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/model/MessageCode.java rename to taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/model/MessageCode.java index ec63d2e..6cc859b 100644 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/model/MessageCode.java +++ b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/model/MessageCode.java @@ -1,4 +1,4 @@ -package com.acgist.taoyao.model; +package com.acgist.taoyao.boot.model; /** * 状态编码 diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/model/MessageCodeException.java b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/model/MessageCodeException.java similarity index 97% rename from taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/model/MessageCodeException.java rename to taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/model/MessageCodeException.java index be73ba0..f04e866 100644 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/model/MessageCodeException.java +++ b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/model/MessageCodeException.java @@ -1,4 +1,4 @@ -package com.acgist.taoyao.model; +package com.acgist.taoyao.boot.model; import java.util.Objects; diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/utils/CloseableUtils.java b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/utils/CloseableUtils.java similarity index 94% rename from taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/utils/CloseableUtils.java rename to taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/utils/CloseableUtils.java index af2e1e6..a0877d2 100644 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/utils/CloseableUtils.java +++ b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/utils/CloseableUtils.java @@ -1,4 +1,4 @@ -package com.acgist.taoyao.utils; +package com.acgist.taoyao.boot.utils; import java.io.Closeable; diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/utils/DateUtils.java b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/utils/DateUtils.java similarity index 99% rename from taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/utils/DateUtils.java rename to taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/utils/DateUtils.java index 936a50d..1322955 100644 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/utils/DateUtils.java +++ b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/utils/DateUtils.java @@ -1,4 +1,4 @@ -package com.acgist.taoyao.utils; +package com.acgist.taoyao.boot.utils; import java.time.LocalDate; import java.time.LocalDateTime; diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/utils/JSONUtils.java b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/utils/JSONUtils.java similarity index 99% rename from taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/utils/JSONUtils.java rename to taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/utils/JSONUtils.java index 0eac72f..519d94a 100644 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/utils/JSONUtils.java +++ b/taoyao-client-android/taoyao/boot/src/main/java/com/acgist/taoyao/boot/utils/JSONUtils.java @@ -1,4 +1,4 @@ -package com.acgist.taoyao.utils; +package com.acgist.taoyao.boot.utils; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonProcessingException; diff --git a/taoyao-client-android/taoyao/build.gradle b/taoyao-client-android/taoyao/build.gradle new file mode 100644 index 0000000..9d57b30 --- /dev/null +++ b/taoyao-client-android/taoyao/build.gradle @@ -0,0 +1,4 @@ +plugins { + id 'com.android.library' version '7.4.2' apply false + id 'com.android.application' version '7.4.2' apply false +} \ No newline at end of file diff --git a/taoyao-client-harmony/taoyao/gradle.properties b/taoyao-client-android/taoyao/client/.gitignore similarity index 100% rename from taoyao-client-harmony/taoyao/gradle.properties rename to taoyao-client-android/taoyao/client/.gitignore diff --git a/taoyao-client-android/taoyao/client/build.gradle b/taoyao-client-android/taoyao/client/build.gradle new file mode 100644 index 0000000..cab103c --- /dev/null +++ b/taoyao-client-android/taoyao/client/build.gradle @@ -0,0 +1,56 @@ +plugins { + id 'com.android.application' +} + +android { + namespace 'com.acgist.taoyao.client' + compileSdk 32 + defaultConfig { + minSdk 31 + targetSdk 32 + versionCode 100 + versionName "1.0.0" + applicationId "com.acgist.taoyao.client" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + externalNativeBuild { + cmake { + cFlags '-std=c17' + cppFlags '-std=c++17' + // CPU架构:x86_64、x86、armeabi-v7a、arm64-v8a + abiFilters 'arm64-v8a' + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + buildFeatures { + viewBinding true + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } + externalNativeBuild { + cmake { + path file('src/main/cpp/CMakeLists.txt') + version '3.22.1' + } + } +} + +dependencies { + implementation project(path: ':boot') + implementation fileTree(dir: 'libs', include: ['*.so', '*.jar']) + implementation 'androidx.appcompat:appcompat:1.4.1' + implementation 'com.google.android.material:material:1.5.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.2' + implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.2' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' +} diff --git a/taoyao-client-android/taoyao/client/proguard-rules.pro b/taoyao-client-android/taoyao/client/proguard-rules.pro new file mode 100644 index 0000000..af0d54a --- /dev/null +++ b/taoyao-client-android/taoyao/client/proguard-rules.pro @@ -0,0 +1 @@ +-optimizationpasses 5 \ No newline at end of file diff --git a/taoyao-client-android/taoyao/client/src/androidTest/java/com/acgist/taoyao/ExampleInstrumentedTest.java b/taoyao-client-android/taoyao/client/src/androidTest/java/com/acgist/taoyao/ExampleInstrumentedTest.java new file mode 100644 index 0000000..298364b --- /dev/null +++ b/taoyao-client-android/taoyao/client/src/androidTest/java/com/acgist/taoyao/ExampleInstrumentedTest.java @@ -0,0 +1,20 @@ +package com.acgist.taoyao; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.acgist.taoyao", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/taoyao-client-android/taoyao/client/src/main/AndroidManifest.xml b/taoyao-client-android/taoyao/client/src/main/AndroidManifest.xml new file mode 100644 index 0000000..6f2f1e8 --- /dev/null +++ b/taoyao-client-android/taoyao/client/src/main/AndroidManifest.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/taoyao-client-harmony/taoyao/client/src/main/cpp/CMakeLists.txt b/taoyao-client-android/taoyao/client/src/main/cpp/CMakeLists.txt similarity index 73% rename from taoyao-client-harmony/taoyao/client/src/main/cpp/CMakeLists.txt rename to taoyao-client-android/taoyao/client/src/main/cpp/CMakeLists.txt index d026331..a4372d8 100644 --- a/taoyao-client-harmony/taoyao/client/src/main/cpp/CMakeLists.txt +++ b/taoyao-client-android/taoyao/client/src/main/cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.22.1) project(taoyao VERSION 1.0.0 LANGUAGES C CXX) @@ -7,13 +7,13 @@ project(taoyao VERSION 1.0.0 LANGUAGES C CXX) # set(CMAKE_BUILD_TYPE Debug) # C编译选项 -set(CMAKE_C_STANDARD 11) +set(CMAKE_C_STANDARD 17) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c17 -O3") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -std=c17 -O0 -g") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -std=c17 -O3") # C++编译选项 -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -O3") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -std=c++17 -O0 -g") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -std=c++17 -O3") @@ -22,16 +22,23 @@ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -std=c++17 -O3") # set(PROJECT_BINARY_DIR ${PROJECT_SOURCE_DIR}/build) file( - GLOB SOURCE_FILE - "main.hpp" - "include/*.hpp" - "mediasoup/*.hpp" - "main.cpp" - "media/*.cpp" + GLOB SOURCE_FILE + "main.hpp" + "include/*.hpp" + "mediasoup/*.hpp" + "main.cpp" + "media/*.cpp" ) add_library(taoyao SHARED ${SOURCE_FILE}) -target_link_libraries(taoyao libhilog_ndk.z.so) +find_library( + log-lib + log +) +target_link_libraries( + taoyao + ${log-lib} +) # 配置 # cmake -B build diff --git a/taoyao-client-harmony/taoyao/client/src/main/cpp/include/AudioPublisher.hpp b/taoyao-client-android/taoyao/client/src/main/cpp/include/AudioPublisher.hpp similarity index 100% rename from taoyao-client-harmony/taoyao/client/src/main/cpp/include/AudioPublisher.hpp rename to taoyao-client-android/taoyao/client/src/main/cpp/include/AudioPublisher.hpp diff --git a/taoyao-client-harmony/taoyao/client/src/main/cpp/include/MediaPublisher.hpp b/taoyao-client-android/taoyao/client/src/main/cpp/include/MediaPublisher.hpp similarity index 100% rename from taoyao-client-harmony/taoyao/client/src/main/cpp/include/MediaPublisher.hpp rename to taoyao-client-android/taoyao/client/src/main/cpp/include/MediaPublisher.hpp diff --git a/taoyao-client-harmony/taoyao/client/src/main/cpp/include/MediaRecorder.hpp b/taoyao-client-android/taoyao/client/src/main/cpp/include/MediaRecorder.hpp similarity index 100% rename from taoyao-client-harmony/taoyao/client/src/main/cpp/include/MediaRecorder.hpp rename to taoyao-client-android/taoyao/client/src/main/cpp/include/MediaRecorder.hpp diff --git a/taoyao-client-harmony/taoyao/client/src/main/cpp/include/VideoPublisher.hpp b/taoyao-client-android/taoyao/client/src/main/cpp/include/VideoPublisher.hpp similarity index 100% rename from taoyao-client-harmony/taoyao/client/src/main/cpp/include/VideoPublisher.hpp rename to taoyao-client-android/taoyao/client/src/main/cpp/include/VideoPublisher.hpp diff --git a/taoyao-client-android/taoyao/client/src/main/cpp/main.cpp b/taoyao-client-android/taoyao/client/src/main/cpp/main.cpp new file mode 100644 index 0000000..87c50ac --- /dev/null +++ b/taoyao-client-android/taoyao/client/src/main/cpp/main.cpp @@ -0,0 +1,10 @@ +#include +#include + +extern "C" JNIEXPORT jstring JNICALL +Java_com_acgist_taoyao_MainActivity_stringFromJNI( + JNIEnv* env, + jobject /* this */) { + std::string hello = "Hello from C++"; + return env->NewStringUTF(hello.c_str()); +} \ No newline at end of file diff --git a/taoyao-client-harmony/taoyao/client/src/main/cpp/main.hpp b/taoyao-client-android/taoyao/client/src/main/cpp/main.hpp similarity index 100% rename from taoyao-client-harmony/taoyao/client/src/main/cpp/main.hpp rename to taoyao-client-android/taoyao/client/src/main/cpp/main.hpp diff --git a/taoyao-client-harmony/taoyao/client/src/main/cpp/media/AudioPublisher.cpp b/taoyao-client-android/taoyao/client/src/main/cpp/media/AudioPublisher.cpp similarity index 100% rename from taoyao-client-harmony/taoyao/client/src/main/cpp/media/AudioPublisher.cpp rename to taoyao-client-android/taoyao/client/src/main/cpp/media/AudioPublisher.cpp diff --git a/taoyao-client-android/taoyao/client/src/main/cpp/media/MediaPublisher.cpp b/taoyao-client-android/taoyao/client/src/main/cpp/media/MediaPublisher.cpp new file mode 100644 index 0000000..e69de29 diff --git a/taoyao-client-harmony/taoyao/client/src/main/cpp/media/MediaRecorder.cpp b/taoyao-client-android/taoyao/client/src/main/cpp/media/MediaRecorder.cpp similarity index 100% rename from taoyao-client-harmony/taoyao/client/src/main/cpp/media/MediaRecorder.cpp rename to taoyao-client-android/taoyao/client/src/main/cpp/media/MediaRecorder.cpp diff --git a/taoyao-client-harmony/taoyao/client/src/main/cpp/media/VideoPublisher.cpp b/taoyao-client-android/taoyao/client/src/main/cpp/media/VideoPublisher.cpp similarity index 100% rename from taoyao-client-harmony/taoyao/client/src/main/cpp/media/VideoPublisher.cpp rename to taoyao-client-android/taoyao/client/src/main/cpp/media/VideoPublisher.cpp diff --git a/taoyao-client-android/taoyao/client/src/main/ic_launcher-playstore.png b/taoyao-client-android/taoyao/client/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..b5f71f688058d64117e093b654b57b8798016f37 GIT binary patch literal 48058 zcmdQ~#k{jeE|SnQP{nIdh`5G?WN%X>b7m0KqF|hz2r!OPGVd8-Q{*cN%i1PI7(0qI|VDNwcw8C}= zJpI~~Q~opB{~kr%{r~(?$=&WF5nhVxe>mj)-mPzIKzrUQT=J05iJMs7IYO%hA>Y-= z=lC@&r--0d0Sf8oWQGgxEw!6QTOy{}6xWWzzl+`fRqghBGp}m-3jp}p%D5v^r1KM?NRe2& z1*X$pZs?+FcaO)pDxn{6K|C==t(pUTC=Dt^FoRE@gIEr64>WP!TzfO#x%&_X5gctW zKu-vx25q_P@(Lx`2X4bOWP_knJ(J9{^gBTaq2eaI~udr5p&w*+$k8;0dqF&M(YP~7v#1itoyIxmy$oLfP? za!Kv{s+6-UAPf(w%CXNN43FQG>j`6o9%TBK80)PN&bC8*6MlAqKa>X$q;?OP$Hp}{ zM|brgda38*Hx;0OAhO5ezmu+1?oIFpMUWsPkUpCMq$;muw&nv>CzbzglMi1TfFvA} zh}TMc#A$?&92*XhQQ>1ex#ZJ|si7s^wpUtI7l)r&>H;en?jh$XdlA}a0U-IH=iv3G zRkNS~AJahQm-{sob{DUpibrH+SM1RF8uGG>tkFlMb(DR5&{YRGr?1U5vC)`*=?W1u z`LRv;p{X?Gc$;I2tFvt9&H@_Jfu9o+v?KU=+1OH+1KOAvKHP~84RBCMaGcTUaxWP| z;sW;x3K9LEO25iSV_&TF@!P+rQ>;mW7!Xd~UhgYG*dJLB2_DrAx2n*O&6Jd4C?=8RvJPa1;;Ib}xI? zJ`P9n5!>A}4AC9q8wGGTXhs6NJ+p+jZ-t>>MJrNd6fGAz6pAHT!8JMQkQJIv0U!S# z)_Cx`&O#!0GW>{gkjrx_d@I6&VffeAYb(D?XWUol=E)Q<>V@r#4%LmavwRS_F&>X~ z4EE$1F_Q#@=XWM_jV7?Z)oYTq&Oxe3o8b_n!Sow-#6$e>hY_h1ICvx)U#_PqQllGd z(r)*}3Ciqk+h=Mm$eUZq$WiAVp8iH7g;%W5!GpqL(FNPs5g9HNR*aG1hhp*z^CtZ= zi<@Z<$?SB(B$=@1p1@TY*4P24t)u3`31k4eO=p~m`tItpE$WlaaNlTB7-=*dV(TT_ zBfx}ry5i7CCie>V=T6A|bem(6Yy0}ws6g{8*m70=nP-NzF_Q}4QN>2O`Iq1=d?De)tcvBu0&houX(A9hk`=5iNm4(uCNsu+2}O`bmACdsMK9V8tYet=%C zESD3P``Kpx`fveZ|8C|3p3UV*tf!M#R*pBf&e=FMtL-IM5?l z`q+v0pmQ&HIiwtT7rrUn85|IsV)ijkwp8^~p362An*udB? zAGr(FO&3t)?UNX+W zBD33Ro;^|Ctt~$p^Z%Yhbig>5uX~z)Ns_5!g5wWyNct&uU1)sYWDN{rInC7X;Ut#9 zRR{vOmhg$%SFFwk*%jloq4c9qtDAD_pdVs{GLz>GtF&G06lQrz{#3^?O1jxTV>lM1 zPwp|(ly0uQ9Qwx(R`rPW_#ulEhWDbvlx%!7wV=*0q%^j(88yO#EQXC!tUN#pAEJyw6Xu1>P=`%fLQKxoJIiZEk35Z(tBTX?R<7(! zHY>|qPSQ^D?F&gybP7-MxtIC_XfFEOS|MV#EvONx|M_!tut-H=YmaSE(sy%#dkhhg zF)93mh$F2&k^T>d?2gvysa9JQ{D}O2lKCvh0y&OUt{9J1Y^W-)Q?WShsPVbvo}g!r zlFh75OpHkJQ}{kaW+&~r%3rT7t=y(bS*lF zZYMiA4atAdHAgYJ->!Xr$OkS-Q*QcDeko<|q!whcq9G(P0}rrPuua8W!DSLUhyPZP z2vV^0Q1m1+9%!F>9`{^?isZi)+^j+XVGjou)5vo`FB+wb0Y@Qv@?NqG4h=8nFS%G9QAs0(Ihcyg2cTd})t zRw;;%@|F9w;K#)8Wt)ssmy+HoLW0jIdzejShz}|g9~3Nga^liEHIPK)GmB{y#*-;a zMYe;anhh-%si3Y`<)3J1=?`=!FV&lW531z=z$TtcrH0?8bEo4vlNlrixw90JzWpDU zgyT)}Mc>Xf*zQ_8dDg*Ej3E0 z&3`NH&+8kZTH@918LG%cYCP)Yy&2R9QAqn1HfclLkvVr$)rZ%D>VomvRD4^6oI;N3 znLWJ_)%|}ilh!jAXN;iMmw3_q%5qT|`o|L@5hx4$*S0mgGB`NMZAFC1m3{G0`~8n| zb`>=W*wJ#nw*>=#O6kc}_~Poht-JF(Dw~u$TvB|`Q+{NB&dkhYl-JBVXv`0NuW30T z1YPr+x)Gr&59w?(<^MuC5>5=C_zeL%O&dRE4(azsrb~HGfX^IZQOpT#+!okuY+A-4 zov-Y$z%~Yzf0T2=g|AV><~XhR4yxEtiY;|0_zwW`U!S6D&&RG{Qs4B*rTlD?^>)Pc z%}A|l=1uMPXq$4bcS=@%o916Q(dTGgzRbIo6{U`lz{`jaum4zA|3H`s2Bp787}Zde zJs54wsa3Moc}7^T4dU>x|F_7W=p~x=2Pek{P!5B=Zww*~B6*IgxvhqoIm>lpf|1^f zqcjnbJMtOZA@loS=q95@?4(G7iA!TEHZ)2; z>el0KB>d_`L3nl#Qc5&K6*cj%FpK;X{=Cq=di-)>2eBKi#LYcz5@a!Gxzergj(>#` zboO_TF8;wmUp{#MOPAKGCu6U&`Ix7{%b7tI2)6Mx_Qi#0Ir00#hMJ&_B}IK%g`xD_{P&dLig< zrJG_2U=J|&-D;Z&cwGdaj1*!adWHLTAaAuBX`Tr1Z+FgX$*Qs5wSh*A=%LoTrt{9# zl{$IE2Cw~^Z=>Q>sxr6zuDeA_L~l65%L$;Fcj8?WJnT+kvys%0iXoM@kE_P~_d9y# zR_}0l$gvADR{!Ps(@Qr;Ts;7WauEoDD*9tgbB6CG>a}#N9E(UtTNmX zh+$;2$5d`JKKAi}Cc5SA|Am6&0}BP2Bm!UMzN*l)D-PvR{#BI4RVwclda8)pQTry& z4KPwZBrIVAAV2}5rtWIcQ;0iNg+^pNd3vh&SMln|p>bo0(ny>Dn6sTK$cfgb?FUu- zWMEH|T`_ELMi1Mr8x2%%WP4-T^M<#G>8_t@o%9a!RRWeR+_*5okvbb52X_0`5TGE( zZ`1JLuxvC$bdD&KpgLSm?1_?kb>P0jznLEGwLn{WzW>=KZdnE=dKqF*V`xi<5qMU6 zO#h-qwVpPcy^K_-;s-oRI(%$@r159x@=CDkr|ma9ef6u^y<9Byy@Gor?cOO2dRY5# zjVnA+s>fI)@Hln9Y4>n1iO3Uv&hH=~MC_d>MPpuku{h&;y#`>F2nWoZKOotD_;lxs z_s_@ATFpHCTCLTUC!QY`+nttbv}&;Ud=*|KyWwm-Fow09K!zvB7yV*;qWW(RQlDQ3 zsMY&jruvnnbsFXXKk|5>dkxQ=U$}uWa)f&Xb{RndAI99!I+`wQJQC0sunLw+@zZ2* zSceo1SMsmIhPOl^#Udnz0$MM;G#ES>+q+DG!OUnPs|WRZt+{%_JRb@kqt*8HHBBVu2$u8qQ96R{ zl8G2sX)9^C!8HL?iy~yyt{HAzEelNJo4bQPJF1R{kZBk6?LMk|2dG_q&z7h{E5>J$ zs0k}hKV&G7&tytI2{2#@-C32L-ckY)25pD82gcrd%F%KKVkdV zd%3ab*f7CF3(wcpfQw(2GxCIe{I2OfXcsUDZ^A-SyxcmHu~!KysgZ)oc(5Md4ZPKdHaTM|9sa{~iwl9O!7WRY&tvqjF zSMJXyb7pODONcL+jEk>X%D!0H8qL+tFMIGTOhd~u1tn=dJW7 z6|ryTc|tWC>dTubCUOS1w)Vm*oynVtbSb_tSzo!Bj1Xaq$FiM=gL>gcO(A#)p zfcZfQ(|C}0QV!Ma3nzJqKm4Jp?3-FV^;U9Es(e_T!aR{DdEOfzqm632NS58ALckxZ zFBv=JS#0J^y0Ch!f5YHCgFWHQ@!8*#%>UjpMdn^W&b2_#jP1DXRcvUTm?gEJ@%$20(jvsn)b<_rT z!u^DKX>J-0o^rgTT6Iqp0fdoF5zzMS>x~cAVlkElSMhyxFIBVr0g0!SZ#(g){D>cB zKfe#whETen%iTn@2iZ^jN^V;{W=dPwiY!l1_HFy@@W+FgNu&W5=|w!MF?(j6^D5YV z=xReMRHqhM{WbOOnn@I*NI~=0|I=`UkeMB1#$nLKH71tvYra~k zw6?PS15rp6k;5b%yOHr@&!Q>1Tr^7z~oQQ3V+bxs4)4&xl`TU z3S~7TvVY|c+6@S9UK1G&x%&tT#W2;+w3>J(df7a(L{?T-LBwUQx#|LMdNGd3jA~XdTU)bZ#my(rOL9_xLm0)g%Ux$x4$tS!6e%J> z=W++xSQC+{9xMwl$phsl*|iNI49%0pBd&mPL%9JKl~BR#=(y_?<&h)K=i%uRzWb`O z=CmA`1h|(}5!$QgbPMn9=?Fu`0l(08lSXVTH3;o_lNr1ta*`OlrRU8Bjc%f@>&qUQ zn_|@*SnGVFNNW3;FO*?wSE!jlFhkkFT@6eiE%8-~i%?7!o)(Tww`ARW%fI+gwnc@$ zh-K@Hn%!14MOK|fo>NDFp*Y}$DaBtSQg0(VPtebM=+#AJM4{; zU+SEx3iD}AY1x4@|1C7tDwKJgDLhW&;}_k{WWexyk%}IVKK7$$k3it=zr+W_G|IBv z3~)gv0ahca&2KuWeyGs1L%kT1i3GbymNRtdTvQG>1b)I0; zz)X76<5nUv2-js*y&;PIC@&i!l%;hkVfEwcrk3Ql?J7&7kv-QMUWgudB%)4=+jd>5 z#=M~gp$U7~YDgode>5LAE9I*zk^oDby@94WScY{V77t7`A?T5=0JASe7PYIxBk+v^bhBbZ= zurYrE=@kFMe;;u5k-RV;Plh_!8FP}VjJm|oYwj61;YBjsqnv3_A=Vj@%OxGW^$)qW zddyYPg$sxN5$3l_I552*;%qTU(yB~6%VT#|n48tZSo8whO`&WzW9Qj0_^!;=yT#bb zf?D_8A?&8XOGBUA*BdP%z^q7IaB^bf0qLMV;9% zH8RLmNF9CApTZYBq*{DjR@5J>gE~|Kfy(2 zq|bMG>b#3~`!e44FJrJOftjmn_y{z9$HqHjPWug&OZeE1I<;)Z zZ4|+_q?*hHHuWGyUpwq69G2}pZ3)Vrs1gh?Nf;evHaC8?bU43|Sp5dy2BQRn{-WE$Ru0|FXu$H;@s zi)tfG@O}SewkwwZB)jcl?e;hN*;FqbGz#u7|`MVP?-5!~Cw}=8fO~)Bwm? z@**@XXO9%7@h1}4?uK>apDaW*`H*-p-6BQ`Ur4O{9LI-IN9l--eJx|nBkE>i_06|5 zndwzg%g8sfxT|0hF%{{_E&`xj38MFLbhYLg_WNQMx&zNi`|sKR6;A(f=)$WCPz1WU7}(G<)vKHzNln0b zUf}n&eN7}D8z-5)X921DMqu?guK70yvnrPmW->|0GT|0JBdvDRqiql>{_$IB+6 zsYfpPYd(b)I*n>ZiSPg(VSm1FST8*xmUnaqx75h)rO4}|0fEX?t1n9ZD5MS!v8H9u zWGT3ixqul(>u6cvwWZc|S5un-br*K{^-?gN8N_=Mc`U>n)RLFt#kc>q0@rL~X~|p4 zF^8|tu7Dv<`(RnAcW859_5Dx~o(*eq&BZlvd~tN=*=pCNswzPT-B;HNL@_5=7FHshVP z(dL&weN%|zLUEHznbbk$a?a!wH1+aZJ%zf?`RMDfIept_-@5XH@c>O2A#^=IWZ8p1 zL>^&>OE#cI!CdQbfa9rL61i5(3N2_`>gyL;tmLF~|G zMs1q-p73ct5!Qxbv-{*OAGezFYie#R9};@0EpPcqm&k7O2hpv^5BdU+^por?emS{* z>ut<MvDax6^Yf&fKj9RE@S()IdjUNUMoBH= z8y9&!AF|aX3U*O>3X}rDS<-evpdcV(9`dN*b}fBxmR6B7B}d+oa0C=BwyA8ZsWW9+ zZd6A0#dvdkSbVMR5e+2Y+Z1&V#1XmNR8ZfXvd75%y3h^tB|u zF^OX8%s9W&vbdGFE#J`etN&DRAv(4FMrYh+M@i$z^xNqB7yh!ajo z^t~T>J~my_vXCgoV^0}aqx}1MOeHNnCd7Tg#3l;osj2{2Qn#Jo6e85m*Q$z*mP&C>>ixIp@*W9UmX}aP``2g_#TYm^nW+~slch_!!(kaF{KJZG3 zk@2xX9rpQyktF1;sN#d&VJ^%810 zq~NDTS;yMyhB0;5WYXseH>ifEOhl_%K@?un-KrP_1uZ71S|MC7N8pUYWPkS z&uDMNl8%yaSk-{Hdg5Z&60#e7nXr*qZ&WR-LYK^TkoS}J&|NbHis9g!3Exkbpe7C} zonWV>qkL+^lQO~cgA%_ZU=kqu4w$wl?0C!Uj3>3RUB?psp*yrZg?oyAE}vMj_q1t9 z{KL0eC<;j8>IawZ9mmGV>foIsD~7;e6PgU81WBVUKQu{xmPxGEdwo5w2C z88Y0xEt>AHpb4ChxEQV*qk;6`I*32g7t!|{uV1xjgsOs+kG z{$Z(9M)&lK1PvsiI6}!M)f&@Q{1>M_`gjj<=?HDUvxRm3lvTFt~&~_X;N;WssQ+cEgyT;_ z!K~-pkVE-nk{vBU~rr?5v4SVTkvNvTK3IoADK)EcVB*@Lsea2yZ@HPU zd|y+|ZUM^{CPU8YWPwFE_MJavz}q&_G7a2~;2~YXqfjeU+@}sd91FIfv4_&~vjaZ5 zY#pV;WqGHI2HQk-^PM^}m)?ka0=ZvYKYWtUj7m39Nj>+U9-3pi@t%p(ath(W-35dl z-RMT9Sz>CZIuqxD8$6Uo`FJA;H6SLzGl?q0v@2o4NxjR#lTxjS|urzoroek}tK)EG%S3md70*i4;t18p26< z1JKj_CBoi26B*9yP9SWIAzz-s&;Xo-`B(x6%ueKNq^pljH#CNT-nh+1U0_TX3${*o zG#=K)fZCy=eVx+JilpkWky#Rop znD7Gmppv7MyX8#>v656_hP(Q5Ld8ZC2dpz--7_(iiEP`>Pt7SK`>7w~CxQpHCNnMl z0l81Kn;W%;M$*0S9q1&h-+*@h-na%;fbOw@gCtY2SKzNH9xCvah~YJP!|sjPy+DEG zqvU)m&>22u6V-#VVyZ|QoB+Ti{DE+4k4P~>RP{e!@#cTgLx%bg>b=<;n8u#FtYOuj zUHrMG7hOj}(?udz!qyOw_#{^a_4)bE8g+yd2lV^vSfP(WhXdISwPoXVze4y6qZ5c5 zje<~I4MaH$5E!d|V@DkG%lp-;?U%<`jsEqpl1BncS1|xx|M7cUY1l-#MBT_KCY#Xt z>M9K~E=GI`2AE!f7D;^(G9S6^28~I6CbfliHrpk)Un%0Ae|pk7s}BmJNp;(R<0)rW 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 tbfc)oc$SmesPXJ-iABl}nYZj7Nycsms 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 + + + + + \ No newline at end of file diff --git a/taoyao-client-android/taoyao/client/src/main/res/layout/activity_settings.xml b/taoyao-client-android/taoyao/client/src/main/res/layout/activity_settings.xml new file mode 100644 index 0000000..7cbb9ea --- /dev/null +++ b/taoyao-client-android/taoyao/client/src/main/res/layout/activity_settings.xml @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-hdpi/ic_launcher.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6d147cd2e14ba309f149cf6e5f463049ed0ddc0d GIT binary patch literal 3121 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 literal 0 HcmV?d00001 diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-mdpi/ic_launcher_round.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..ce6ecc3d1f947df239cdeae93645e172faba62fa GIT binary patch literal 3156 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 literal 0 HcmV?d00001 diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..aa4acf89d5f44c7ca4339138821cd1be54115ea5 GIT binary patch literal 7287 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 XEBTQ(R=x9}NnxqJ&{C>WfQ9`By{sKy literal 0 HcmV?d00001 diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..093d6c2da373df6dbe13409ae4109e6babc50437 GIT binary patch literal 12537 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 S@9M+=0000L-1 literal 0 HcmV?d00001 diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..04a862dfa0b79c719ab9a4962a5bd7556a2d3cd5 GIT binary patch literal 9523 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 literal 0 HcmV?d00001 diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..6bca82593ef9196c7ec4ca4e75bbdf1285cdd507 GIT binary patch literal 18986 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 literal 0 HcmV?d00001 diff --git a/taoyao-client-android/taoyao/client/src/main/res/values-night/themes.xml b/taoyao-client-android/taoyao/client/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..0a35161 --- /dev/null +++ b/taoyao-client-android/taoyao/client/src/main/res/values-night/themes.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/taoyao-client-android/taoyao/client/src/main/res/values/arrays.xml b/taoyao-client-android/taoyao/client/src/main/res/values/arrays.xml new file mode 100644 index 0000000..c8cd3e7 --- /dev/null +++ b/taoyao-client-android/taoyao/client/src/main/res/values/arrays.xml @@ -0,0 +1,11 @@ + + + + Reply + Reply to all + + + reply + reply_all + + \ No newline at end of file diff --git a/taoyao-client-android/taoyao/client/src/main/res/values/colors.xml b/taoyao-client-android/taoyao/client/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/taoyao-client-android/taoyao/client/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/taoyao-client-android/taoyao/client/src/main/res/values/strings.xml b/taoyao-client-android/taoyao/client/src/main/res/values/strings.xml new file mode 100644 index 0000000..9eb3ab0 --- /dev/null +++ b/taoyao-client-android/taoyao/client/src/main/res/values/strings.xml @@ -0,0 +1,16 @@ + + + 桃夭 + SettingsActivity + + Messages + Sync + + Your signature + Default reply action + + Sync email periodically + Download incoming attachments + Automatically download attachments for incoming emails + Only download attachments when manually requested + \ No newline at end of file diff --git a/taoyao-client-android/taoyao/client/src/main/res/values/themes.xml b/taoyao-client-android/taoyao/client/src/main/res/values/themes.xml new file mode 100644 index 0000000..376ce24 --- /dev/null +++ b/taoyao-client-android/taoyao/client/src/main/res/values/themes.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/taoyao-client-android/taoyao/client/src/main/res/xml/backup_rules.xml b/taoyao-client-android/taoyao/client/src/main/res/xml/backup_rules.xml new file mode 100644 index 0000000..6c3673c --- /dev/null +++ b/taoyao-client-android/taoyao/client/src/main/res/xml/backup_rules.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/taoyao-client-android/taoyao/client/src/main/res/xml/data_extraction_rules.xml b/taoyao-client-android/taoyao/client/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 0000000..921c294 --- /dev/null +++ b/taoyao-client-android/taoyao/client/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/taoyao-client-android/taoyao/client/src/test/java/com/acgist/taoyao/ExampleUnitTest.java b/taoyao-client-android/taoyao/client/src/test/java/com/acgist/taoyao/ExampleUnitTest.java new file mode 100644 index 0000000..3de0e35 --- /dev/null +++ b/taoyao-client-android/taoyao/client/src/test/java/com/acgist/taoyao/ExampleUnitTest.java @@ -0,0 +1,12 @@ +package com.acgist.taoyao; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class ExampleUnitTest { + @Test + public void addition_isCorrect() { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/taoyao-client-android/taoyao/gradle.properties b/taoyao-client-android/taoyao/gradle.properties new file mode 100644 index 0000000..6012122 --- /dev/null +++ b/taoyao-client-android/taoyao/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx512m -Dfile.encoding=UTF-8 +android.useAndroidX=true +android.nonTransitiveRClass=true diff --git a/taoyao-client-android/taoyao/gradle/wrapper/gradle-wrapper.jar b/taoyao-client-android/taoyao/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/taoyao-client-android/taoyao/gradle/wrapper/gradle-wrapper.properties b/taoyao-client-android/taoyao/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..f3ba374 --- /dev/null +++ b/taoyao-client-android/taoyao/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Mar 20 09:51:37 CST 2023 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/taoyao-client-android/taoyao/gradlew b/taoyao-client-android/taoyao/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/taoyao-client-android/taoyao/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/taoyao-client-android/taoyao/gradlew.bat b/taoyao-client-android/taoyao/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/taoyao-client-android/taoyao/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/taoyao-client-android/taoyao/settings.gradle b/taoyao-client-android/taoyao/settings.gradle new file mode 100644 index 0000000..cd9b9b7 --- /dev/null +++ b/taoyao-client-android/taoyao/settings.gradle @@ -0,0 +1,17 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + } +} +rootProject.name = "taoyao" +include ':boot' +include ':client' diff --git a/taoyao-client-harmony/taoyao/build.gradle b/taoyao-client-harmony/taoyao/build.gradle deleted file mode 100644 index 430c913..0000000 --- a/taoyao-client-harmony/taoyao/build.gradle +++ /dev/null @@ -1,41 +0,0 @@ -apply plugin: 'com.huawei.ohos.app' - -ohos { - signingConfigs { - debug { - storeFile file('C:\\Users\\acgis\\.ohos\\config\\auto_debug_taoyao_com.acgist.taoyao_30086000001511570.p12') - storePassword '0000001BF429DD369062C4630873F17257C6AE37F3B5CCC5BE92C1DE60CEBE94E3592C9A6423F38CA5C88E' - keyAlias = 'debugKey' - keyPassword '0000001B814502DD14E5F3430066B6F451C85FFB36AB7ADB13AC53823EB7A3F644FED4758F5053827B968D' - signAlg = 'SHA256withECDSA' - profile file('C:\\Users\\acgis\\.ohos\\config\\auto_debug_taoyao_com.acgist.taoyao_30086000001511570.p7b') - certpath file('C:\\Users\\acgis\\.ohos\\config\\auto_debug_taoyao_com.acgist.taoyao_30086000001511570.cer') - } - } - compileSdkVersion 7 -} - -buildscript { - repositories { - maven { - url 'https://repo.huaweicloud.com/repository/maven/' - } - maven { - url 'https://developer.huawei.com/repo/' - } - } - dependencies { - classpath 'com.huawei.ohos:hap:3.1.2.0' - classpath 'com.huawei.ohos:decctest:1.2.7.19' - } -} -allprojects { - repositories { - maven { - url 'https://repo.huaweicloud.com/repository/maven/' - } - maven { - url 'https://developer.huawei.com/repo/' - } - } -} diff --git a/taoyao-client-harmony/taoyao/client/build.gradle b/taoyao-client-harmony/taoyao/client/build.gradle deleted file mode 100644 index a7876f6..0000000 --- a/taoyao-client-harmony/taoyao/client/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -apply plugin: 'com.huawei.ohos.hap' -apply plugin: 'com.huawei.ohos.decctest' - -ohos { - compileSdkVersion 7 - defaultConfig { - compatibleSdkVersion 7 - } - buildTypes { - release { - proguardOpt { - proguardEnabled false - rulesFiles 'proguard-rules.pro' - } - } - } - externalNativeBuild { - path "src/main/cpp/CMakeLists.txt" - cppFlags "" - arguments "" - abiFilters "arm64-v8a" - } -} - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.so', '*.jar', '*.har']) - implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.2' - implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.2' - testImplementation 'junit:junit:4.13.1' - ohosTestImplementation 'com.huawei.ohos.testkit:runner:2.0.0.400' -} -decc { - supportType = ['xml', 'html'] -} diff --git a/taoyao-client-harmony/taoyao/client/src/main/config.json b/taoyao-client-harmony/taoyao/client/src/main/config.json deleted file mode 100644 index 274e2f1..0000000 --- a/taoyao-client-harmony/taoyao/client/src/main/config.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "app": { - "bundleName": "com.acgist.taoyao", - "vendor": "acgist", - "version": { - "code": 1000000, - "name": "1.0.0" - } - }, - "deviceConfig": { - "default": { - "keepAlive": true - } - }, - "module": { - "package": "com.acgist.taoyao", - "name": "com.acgist.taoyao.TaoyaoApplication", - "mainAbility": "com.acgist.taoyao.MainAbility", - "deviceType": [ - "phone" - ], - "distro": { - "deliveryWithInstall": true, - "moduleName": "client", - "moduleType": "entry", - "installationFree": false - }, - "abilities": [ - { - "name": "com.acgist.taoyao.MainAbility", - "icon": "$media:icon", - "label": "$string:main_label", - "description": "$string:main_description", - "launchType": "standard", - "orientation": "unspecified", - "visible": true, - "skills": [ - { - "actions": [ - "action.system.home", - "main", - "setting" - ], - "entities": [ - "entity.system.home" - ] - } - ], - "type": "page" - }, - { - "name": "com.acgist.taoyao.MediaAbility", - "description": "$string:media_description", - "type": "service", - "backgroundModes": [], - "icon": "$media:icon" - } - ] - } -} \ No newline at end of file diff --git a/taoyao-client-harmony/taoyao/client/src/main/cpp/main.cpp b/taoyao-client-harmony/taoyao/client/src/main/cpp/main.cpp deleted file mode 100644 index 9a35099..0000000 --- a/taoyao-client-harmony/taoyao/client/src/main/cpp/main.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include -#include - -#include "main.hpp" - -extern "C" JNIEXPORT jstring JNICALL -Java_com_acgist_taoyao_slice_MainAbilitySlice_stringFromJNI(JNIEnv *env, jobject obj) { - std::string hello = "Hello from JNI C++ codes"; - int len = hello.size(); - jchar res[len]; - for (int i = 0; i < len; i++) { - res[i] = (jchar)hello[i]; - } - return env->NewString(res, len); -} diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/MainAbility.java b/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/MainAbility.java deleted file mode 100644 index 3c077ff..0000000 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/MainAbility.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.acgist.taoyao; - -import com.acgist.taoyao.slice.MainAbilitySlice; -import com.acgist.taoyao.slice.SettingAbilitySlice; -import ohos.aafwk.ability.Ability; -import ohos.aafwk.content.Intent; - -public class MainAbility extends Ability { - @Override - public void onStart(Intent intent) { - super.onStart(intent); - super.setMainRoute(MainAbilitySlice.class.getName()); - super.addActionRoute("main", MainAbilitySlice.class.getName()); - super.addActionRoute("setting", SettingAbilitySlice.class.getName()); - } -} diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/MediaAbility.java b/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/MediaAbility.java deleted file mode 100644 index 10b493f..0000000 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/MediaAbility.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.acgist.taoyao; - -import ohos.aafwk.ability.Ability; -import ohos.aafwk.content.Intent; -import ohos.rpc.IRemoteObject; -import ohos.hiviewdfx.HiLog; -import ohos.hiviewdfx.HiLogLabel; - -public class MediaAbility extends Ability { - - private static final HiLogLabel LABEL_LOG = new HiLogLabel(3, 0xD001100, "Media"); - - @Override - public void onStart(Intent intent) { - HiLog.error(LABEL_LOG, "MediaAbility::onStart"); - super.onStart(intent); - } - - @Override - public void onBackground() { - super.onBackground(); - HiLog.info(LABEL_LOG, "MediaAbility::onBackground"); - } - - @Override - public void onStop() { - super.onStop(); - HiLog.info(LABEL_LOG, "MediaAbility::onStop"); - } - - @Override - public void onCommand(Intent intent, boolean restart, int startId) { - } - - @Override - public IRemoteObject onConnect(Intent intent) { - return null; - } - - @Override - public void onDisconnect(Intent intent) { - } -} \ No newline at end of file diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/TaoyaoApplication.java b/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/TaoyaoApplication.java deleted file mode 100644 index f345238..0000000 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/TaoyaoApplication.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.acgist.taoyao; - -import ohos.aafwk.ability.AbilityPackage; - -public class TaoyaoApplication extends AbilityPackage { - - static { - System.loadLibrary("taoyao"); - } - - @Override - public void onInitialize() { - super.onInitialize(); - } - -} diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/AudioPublisher.java b/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/AudioPublisher.java deleted file mode 100644 index 66455bd..0000000 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/AudioPublisher.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.acgist.taoyao.media; - -public class AudioPublisher { -} diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/MediaRecorder.java b/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/MediaRecorder.java deleted file mode 100644 index b9b6d7b..0000000 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/MediaRecorder.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.acgist.taoyao.media; - -public class MediaRecorder { -} diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/VideoPublisher.java b/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/VideoPublisher.java deleted file mode 100644 index 47a6735..0000000 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/VideoPublisher.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.acgist.taoyao.media; - -public class VideoPublisher { -} diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/slice/MainAbilitySlice.java b/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/slice/MainAbilitySlice.java deleted file mode 100644 index ab52d0d..0000000 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/slice/MainAbilitySlice.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.acgist.taoyao.slice; - -import ohos.aafwk.ability.AbilitySlice; -import ohos.aafwk.content.Intent; -import ohos.agp.colors.RgbColor; -import ohos.agp.components.AttrHelper; -import ohos.agp.components.Button; -import ohos.agp.components.ComponentContainer.LayoutConfig; -import ohos.agp.components.DirectionalLayout; -import ohos.agp.components.Text; -import ohos.agp.components.element.ShapeElement; -import ohos.agp.utils.Color; -import ohos.media.player.Player; - -import java.io.FileDescriptor; -import java.io.FileInputStream; - -public class MainAbilitySlice extends AbilitySlice { - // Load the 'native-lib' library on application startup. - - private final DirectionalLayout layout = new DirectionalLayout(this); - - @Override - public void onStart(Intent intent) { - super.onStart(intent); - LayoutConfig config = new LayoutConfig(LayoutConfig.MATCH_PARENT, LayoutConfig.MATCH_PARENT); - layout.setLayoutConfig(config); - layout.setAlignment(17); - ShapeElement element = new ShapeElement(); - element.setShape(ShapeElement.RECTANGLE); - element.setRgbColor(new RgbColor(255, 255, 255)); - layout.setBackground(element); - Text text = new Text(this); - text.setText(stringFromJNI()); - text.setTextColor(Color.BLACK); - text.setTextSize(AttrHelper.vp2px(26, this)); - layout.addComponent(text); - Button button = new Button(this); - button.setText("设置"); - button.setTextSize(AttrHelper.vp2px(26, this)); - button.setClickedListener(listener -> super.present(new SettingAbilitySlice(), new Intent())); - layout.addComponent(button); - super.setUIContent(layout); - } - - @Override - public void onActive() { - super.onActive(); - } - - @Override - public void onForeground(Intent intent) { - super.onForeground(intent); - // 打开预览 - } - - @Override - protected void onBackground() { - super.onBackground(); - // 掐断预览 - } - - public native String stringFromJNI(); - -} diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/slice/SettingAbilitySlice.java b/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/slice/SettingAbilitySlice.java deleted file mode 100644 index c323977..0000000 --- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/slice/SettingAbilitySlice.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.acgist.taoyao.slice; - -import ohos.aafwk.ability.AbilitySlice; -import ohos.aafwk.content.Intent; -import ohos.agp.colors.RgbColor; -import ohos.agp.components.AttrHelper; -import ohos.agp.components.Button; -import ohos.agp.components.ComponentContainer.LayoutConfig; -import ohos.agp.components.DirectionalLayout; -import ohos.agp.components.Text; -import ohos.agp.components.element.ShapeElement; -import ohos.agp.utils.Color; - -public class SettingAbilitySlice extends AbilitySlice { - // Load the 'native-lib' library on application startup. - - private final DirectionalLayout layout = new DirectionalLayout(this); - - @Override - public void onStart(Intent intent) { - super.onStart(intent); - LayoutConfig config = new LayoutConfig(LayoutConfig.MATCH_PARENT, LayoutConfig.MATCH_PARENT); - layout.setLayoutConfig(config); - layout.setAlignment(17); - ShapeElement element = new ShapeElement(); - element.setShape(ShapeElement.RECTANGLE); - element.setRgbColor(new RgbColor(255, 255, 255)); - layout.setBackground(element); - Text text = new Text(this); - text.setText("1234"); - text.setTextColor(Color.BLACK); - text.setTextSize(AttrHelper.vp2px(26, this)); - layout.addComponent(text); - Button button = new Button(this); - button.setText("保存"); - button.setTextSize(AttrHelper.vp2px(26, this)); - button.setClickedListener(listener -> super.present(new MainAbilitySlice(), new Intent())); - layout.addComponent(button); - super.setUIContent(layout); - } - - @Override - public void onActive() { - super.onActive(); - } - - @Override - public void onForeground(Intent intent) { - super.onForeground(intent); - // 打开预览 - } - - @Override - protected void onBackground() { - super.onBackground(); - // 掐断预览 - } - -} diff --git a/taoyao-client-harmony/taoyao/client/src/main/resources/base/element/integer.json b/taoyao-client-harmony/taoyao/client/src/main/resources/base/element/integer.json deleted file mode 100644 index b2e5a25..0000000 --- a/taoyao-client-harmony/taoyao/client/src/main/resources/base/element/integer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "integer": [ - { - "name": "timeout", - "value": 5000 - } - ] -} \ No newline at end of file diff --git a/taoyao-client-harmony/taoyao/client/src/main/resources/base/element/string.json b/taoyao-client-harmony/taoyao/client/src/main/resources/base/element/string.json deleted file mode 100644 index 2a2049b..0000000 --- a/taoyao-client-harmony/taoyao/client/src/main/resources/base/element/string.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "string": [ - { - "name": "main_label", - "value": "桃夭" - }, - { - "name": "main_description", - "value": "桃夭鸿蒙终端前台页面" - }, - { - "name": "media_description", - "value": "桃夭鸿蒙终端媒体服务" - }, - { - "name": "encryptAlgo", - "value": "DES" - }, - { - "name": "encryptSecret", - "value": "2SPWy+TF1zM=" - } - ] -} \ No newline at end of file diff --git a/taoyao-client-harmony/taoyao/client/src/main/resources/base/media/icon.png b/taoyao-client-harmony/taoyao/client/src/main/resources/base/media/icon.png deleted file mode 100644 index ea915d00818c08cedad14e754ed4b3f4530ae2e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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 audios; + @Schema(title = "视频配置", description = "视频配置") + private Map videos; } diff --git a/taoyao-signal-server/taoyao-server/src/main/resources/application.yml b/taoyao-signal-server/taoyao-server/src/main/resources/application.yml index 8dd92a8..aa45e73 100644 --- a/taoyao-signal-server/taoyao-server/src/main/resources/application.yml +++ b/taoyao-signal-server/taoyao-server/src/main/resources/application.yml @@ -85,47 +85,65 @@ taoyao: # 采样率 min-sample-rate: 8000 max-sample-rate: 48000 + # ABR CBR VBR # 默认音频 audio: format: OPUS - sample-size: 16 - sample-rate: 32000 + sample-size: 32 + sample-rate: 44100 # 默认视频 video: format: H264 bitrate: 1200 frame-rate: 24 resolution: 1920*1080 - # 4K:UD=UHD=4K - ud-video: - format: H264 - bitrate: 1600 - frame-rate: 45 - resolution: 4096*2160 - # 2K:QD=QHD=2K - qd-video: - format: H264 - bitrate: 1600 - frame-rate: 30 - resolution: 2560*1440 - # 超清视频:FD=FHD=1080P - fd-video: - format: H264 - bitrate: 1200 - frame-rate: 24 - resolution: 1920*1080 - # 高清视频:HD=720P - hd-video: - format: H264 - bitrate: 1000 - frame-rate: 18 - resolution: 1280*720 - # 标清视频:SD=480P - sd-video: - format: H264 - bitrate: 800 - frame-rate: 15 - resolution: 720*480 + audios: + # 超清 + fd-audio: + format: OPUS + sample-size: 32 + sample-rate: 48000 + # 高清 + hd-audio: + format: OPUS + sample-size: 24 + sample-rate: 44100 + # 标清 + sd-audio: + format: OPUS + sample-size: 24 + sample-rate: 32000 + videos: + # 4K:UD=UHD=4K + ud-video: + format: H264 + bitrate: 1600 + frame-rate: 45 + resolution: 4096*2160 + # 2K:QD=QHD=2K + qd-video: + format: H264 + bitrate: 1600 + frame-rate: 30 + resolution: 2560*1440 + # 超清视频:FD=FHD=1080P + fd-video: + format: H264 + bitrate: 1200 + frame-rate: 24 + resolution: 1920*1080 + # 高清视频:HD=720P + hd-video: + format: H264 + bitrate: 1000 + frame-rate: 18 + resolution: 1280*720 + # 标清视频:SD=480P + sd-video: + format: H264 + bitrate: 800 + frame-rate: 15 + resolution: 720*480 # Socket信令 socket: enabled: true