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 0000000..b5f71f6
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/ic_launcher-playstore.png differ
diff --git a/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/MainActivity.java b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/MainActivity.java
new file mode 100644
index 0000000..efc2428
--- /dev/null
+++ b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/MainActivity.java
@@ -0,0 +1,32 @@
+package com.acgist.taoyao.client;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.os.Bundle;
+import android.widget.TextView;
+
+import com.acgist.taoyao.client.databinding.ActivityMainBinding;
+
+import java.util.List;
+import java.util.Map;
+
+public class MainActivity extends AppCompatActivity {
+
+ static {
+ System.loadLibrary("taoyao");
+ }
+
+ private ActivityMainBinding binding;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ binding = ActivityMainBinding.inflate(getLayoutInflater());
+ setContentView(binding.getRoot());
+ TextView tv = binding.sampleText;
+ tv.setText(stringFromJNI());
+ }
+
+ public native String stringFromJNI();
+
+}
\ No newline at end of file
diff --git a/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/MediaService.java b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/MediaService.java
new file mode 100644
index 0000000..5d46401
--- /dev/null
+++ b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/MediaService.java
@@ -0,0 +1,15 @@
+package com.acgist.taoyao.client;
+
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+
+public class MediaService extends Service {
+ public MediaService() {
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ throw new UnsupportedOperationException("Not yet implemented");
+ }
+}
\ No newline at end of file
diff --git a/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/SettingsActivity.java b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/SettingsActivity.java
new file mode 100644
index 0000000..d4ffa0a
--- /dev/null
+++ b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/SettingsActivity.java
@@ -0,0 +1,18 @@
+package com.acgist.taoyao.client;
+
+import android.os.Bundle;
+
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.acgist.taoyao.client.R;
+
+public class SettingsActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_settings);
+ }
+
+}
\ No newline at end of file
diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/config/Config.java b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/config/Config.java
similarity index 61%
rename from taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/config/Config.java
rename to taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/config/Config.java
index 469f4cb..7512c5c 100644
--- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/config/Config.java
+++ b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/config/Config.java
@@ -1,4 +1,4 @@
-package com.acgist.taoyao.config;
+package com.acgist.taoyao.client.config;
/**
* 配置
diff --git a/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/AudioPublisher.java b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/AudioPublisher.java
new file mode 100644
index 0000000..a714804
--- /dev/null
+++ b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/AudioPublisher.java
@@ -0,0 +1,4 @@
+package com.acgist.taoyao.client.media;
+
+public class AudioPublisher {
+}
diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/MediaClient.java b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/MediaClient.java
similarity index 54%
rename from taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/MediaClient.java
rename to taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/MediaClient.java
index c3ea446..292ee72 100644
--- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/media/MediaClient.java
+++ b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/MediaClient.java
@@ -1,4 +1,4 @@
-package com.acgist.taoyao.media;
+package com.acgist.taoyao.client.media;
/**
* 终端
diff --git a/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/MediaRecorder.java b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/MediaRecorder.java
new file mode 100644
index 0000000..6091142
--- /dev/null
+++ b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/MediaRecorder.java
@@ -0,0 +1,4 @@
+package com.acgist.taoyao.client.media;
+
+public class MediaRecorder {
+}
diff --git a/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/VideoPublisher.java b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/VideoPublisher.java
new file mode 100644
index 0000000..d33f24f
--- /dev/null
+++ b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/media/VideoPublisher.java
@@ -0,0 +1,4 @@
+package com.acgist.taoyao.client.media;
+
+public class VideoPublisher {
+}
diff --git a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/signal/Taoyao.java b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/signal/Taoyao.java
similarity index 95%
rename from taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/signal/Taoyao.java
rename to taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/signal/Taoyao.java
index 212e32b..423eb11 100644
--- a/taoyao-client-harmony/taoyao/client/src/main/java/com/acgist/taoyao/signal/Taoyao.java
+++ b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/signal/Taoyao.java
@@ -1,9 +1,9 @@
-package com.acgist.taoyao.signal;
+package com.acgist.taoyao.client.signal;
-import com.acgist.taoyao.model.Header;
-import com.acgist.taoyao.model.Message;
-import com.acgist.taoyao.utils.CloseableUtils;
-import com.acgist.taoyao.utils.JSONUtils;
+import com.acgist.taoyao.boot.model.Header;
+import com.acgist.taoyao.boot.model.Message;
+import com.acgist.taoyao.boot.utils.CloseableUtils;
+import com.acgist.taoyao.boot.utils.JSONUtils;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
@@ -258,10 +258,10 @@ public class Taoyao {
final LocalDateTime time = LocalDateTime.now();
return
100000000000000L * time.getDayOfMonth() +
- 1000000000000L * time.getHour() +
- 10000000000L * time.getMinute() +
- 100000000L * time.getSecond() +
- 1000000L * this.clientIndex +
+ 1000000000000L * time.getHour() +
+ 10000000000L * time.getMinute() +
+ 100000000L * time.getSecond() +
+ 1000000L * this.clientIndex +
index;
}
diff --git a/taoyao-client-android/taoyao/client/src/main/res/layout/activity_main.xml b/taoyao-client-android/taoyao/client/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..6cd7e12
--- /dev/null
+++ b/taoyao-client-android/taoyao/client/src/main/res/layout/activity_main.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
\ 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 0000000..6d147cd
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..d73a73d
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ
diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-hdpi/ic_launcher_round.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..87ce8f2
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-mdpi/ic_launcher.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..20096c2
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..1fde3b4
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ
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 0000000..ce6ecc3
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-xhdpi/ic_launcher.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..2e6be73
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xhdpi/ic_launcher.png differ
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 0000000..aa4acf8
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ
diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..c839577
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxhdpi/ic_launcher.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..2225d11
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
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 0000000..093d6c2
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ
diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..b105d9a
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
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 0000000..04a862d
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
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 0000000..6bca825
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ
diff --git a/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..233a982
Binary files /dev/null and b/taoyao-client-android/taoyao/client/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
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 0000000..e708b1c
Binary files /dev/null and b/taoyao-client-android/taoyao/gradle/wrapper/gradle-wrapper.jar differ
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 ea915d0..0000000
Binary files a/taoyao-client-harmony/taoyao/client/src/main/resources/base/media/icon.png and /dev/null differ
diff --git a/taoyao-client-harmony/taoyao/client/src/ohosTest/java/com/acgist/taoyao/ExampleOhosTest.java b/taoyao-client-harmony/taoyao/client/src/ohosTest/java/com/acgist/taoyao/ExampleOhosTest.java
deleted file mode 100644
index ecec392..0000000
--- a/taoyao-client-harmony/taoyao/client/src/ohosTest/java/com/acgist/taoyao/ExampleOhosTest.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.acgist.taoyao;
-
-import ohos.aafwk.ability.delegation.AbilityDelegatorRegistry;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-
-public class ExampleOhosTest {
- @Test
- public void testBundleName() {
- final String actualBundleName = AbilityDelegatorRegistry.getArguments().getTestBundleName();
- assertEquals("com.acgist.taoyao", actualBundleName);
- }
-}
\ No newline at end of file
diff --git a/taoyao-client-harmony/taoyao/client/src/test/java/com/acgist/taoyao/ExampleTest.java b/taoyao-client-harmony/taoyao/client/src/test/java/com/acgist/taoyao/ExampleTest.java
deleted file mode 100644
index 9cdb765..0000000
--- a/taoyao-client-harmony/taoyao/client/src/test/java/com/acgist/taoyao/ExampleTest.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.acgist.taoyao;
-
-import org.junit.Test;
-
-public class ExampleTest {
- @Test
- public void onStart() {
- }
-}
diff --git a/taoyao-client-harmony/taoyao/client/src/test/java/com/acgist/taoyao/TaoyaoTest.java b/taoyao-client-harmony/taoyao/client/src/test/java/com/acgist/taoyao/TaoyaoTest.java
deleted file mode 100644
index da1e685..0000000
--- a/taoyao-client-harmony/taoyao/client/src/test/java/com/acgist/taoyao/TaoyaoTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.acgist.taoyao;
-
-import com.acgist.taoyao.model.Message;
-import com.acgist.taoyao.signal.Taoyao;
-import ohos.hiviewdfx.HiLog;
-import org.junit.Test;
-
-public class TaoyaoTest {
-
- @Test
- public void test() throws InterruptedException {
- final Taoyao taoyao = new Taoyao(9999, "localhost", "DES", "2SPWy+TF1zM=");
- taoyao.connect();
- Thread.sleep(Long.MAX_VALUE);
- }
-
-}
diff --git a/taoyao-client-harmony/taoyao/gradle/wrapper/gradle-wrapper.properties b/taoyao-client-harmony/taoyao/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 3622263..0000000
--- a/taoyao-client-harmony/taoyao/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Sun Mar 19 12:32:25 CST 2023
-distributionUrl=https\://repo.huaweicloud.com/gradle/gradle-7.3-bin.zip
diff --git a/taoyao-client-harmony/taoyao/package.json b/taoyao-client-harmony/taoyao/package.json
deleted file mode 100644
index 0db3279..0000000
--- a/taoyao-client-harmony/taoyao/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-
-}
diff --git a/taoyao-client-harmony/taoyao/settings.gradle b/taoyao-client-harmony/taoyao/settings.gradle
deleted file mode 100644
index 04de2bc..0000000
--- a/taoyao-client-harmony/taoyao/settings.gradle
+++ /dev/null
@@ -1,2 +0,0 @@
-rootProject.name = 'taoyao'
-include ':client'
\ No newline at end of file
diff --git a/taoyao-signal-server/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/MediaProperties.java b/taoyao-signal-server/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/MediaProperties.java
index 70ae168..517c1fd 100644
--- a/taoyao-signal-server/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/MediaProperties.java
+++ b/taoyao-signal-server/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/MediaProperties.java
@@ -1,5 +1,7 @@
package com.acgist.taoyao.boot.config;
+import java.util.Map;
+
import org.springframework.boot.context.properties.ConfigurationProperties;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -45,15 +47,9 @@ public class MediaProperties {
private MediaAudioProperties audio;
@Schema(title = "视频默认配置", description = "视频默认配置")
private MediaVideoProperties video;
- @Schema(title = "4K视频配置", description = "4K视频配置")
- private MediaVideoProperties udVideo;
- @Schema(title = "2K视频配置", description = "2K视频配置")
- private MediaVideoProperties qdVideo;
- @Schema(title = "超清视频配置", description = "超清视频配置")
- private MediaVideoProperties fdVideo;
- @Schema(title = "高清视频配置", description = "高清视频配置")
- private MediaVideoProperties hdVideo;
- @Schema(title = "标清视频配置", description = "标清视频配置")
- private MediaVideoProperties sdVideo;
+ @Schema(title = "音频配置", description = "音频配置")
+ private Map 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