From 1762bdc7d627806a2638ecb777691aad86318728 Mon Sep 17 00:00:00 2001 From: xdx1921 Date: Mon, 31 Mar 2025 11:49:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9EIPC=E9=80=9A=E4=BF=A1?= =?UTF-8?q?=E7=A4=BA=E4=BE=8Bdemo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xdx1921 --- OAT.xml | 19 +- .../IPC_Client/.gitignore" | 12 + .../IPC_Client/AppScope/app.json5" | 25 ++ .../resources/base/element/string.json" | 8 + .../resources/base/media/app_icon.png" | Bin 0 -> 2777 bytes .../IPC_Client/build-profile.json5" | 62 ++++ .../IPC_Client/entry/.gitignore" | 6 + .../IPC_Client/entry/build-profile.json5" | 49 +++ .../IPC_Client/entry/hvigorfile.ts" | 21 ++ .../IPC_Client/entry/obfuscation-rules.txt" | 23 ++ .../IPC_Client/entry/oh-package.json5" | 25 ++ .../src/main/ets/client/cnn/IPC_Client.ets" | 180 ++++++++++ .../main/ets/entryability/EntryAbility.ets" | 60 ++++ .../entry/src/main/ets/pages/Index.ets" | 120 +++++++ .../IPC_Client/entry/src/main/module.json5" | 55 +++ .../main/resources/base/element/color.json" | 8 + .../main/resources/base/element/float.json" | 8 + .../main/resources/base/element/string.json" | 16 + .../main/resources/base/media/background.png" | Bin 0 -> 91942 bytes .../main/resources/base/media/foreground.png" | Bin 0 -> 8805 bytes .../resources/base/media/layered_image.json" | 7 + .../main/resources/base/media/startIcon.png" | Bin 0 -> 20093 bytes .../base/profile/backup_config.json" | 3 + .../resources/base/profile/main_pages.json" | 5 + .../main/resources/dark/element/color.json" | 8 + .../entry/src/mock/mock-config.json5" | 17 + .../src/ohosTest/ets/test/Ability.test.ets" | 50 +++ .../src/ohosTest/ets/test/List.test.ets" | 20 ++ .../entry/src/ohosTest/module.json5" | 28 ++ .../IPC_Client/entry/src/test/List.test.ets" | 20 ++ .../entry/src/test/LocalUnit.test.ets" | 48 +++ .../IPC_Client/hvigor/hvigor-config.json5" | 37 ++ .../IPC_Client/hvigorfile.ts" | 21 ++ .../IPC_Client/oh-package.json5" | 25 ++ .../IPC_Service/.gitignore" | 12 + .../IPC_Service/AppScope/app.json5" | 25 ++ .../resources/base/element/string.json" | 8 + .../resources/base/media/app_icon.png" | Bin 0 -> 2777 bytes .../IPC_Service/build-profile.json5" | 56 +++ .../IPC_Service/entry/.gitignore" | 6 + .../IPC_Service/entry/build-profile.json5" | 43 +++ .../IPC_Service/entry/hvigorfile.ts" | 21 ++ .../IPC_Service/entry/obfuscation-rules.txt" | 23 ++ .../IPC_Service/entry/oh-package.json5" | 25 ++ .../main/ets/entryability/EntryAbility.ets" | 59 ++++ .../entry/src/main/ets/pages/Index.ets" | 62 ++++ .../ets/serviceextability/IPC_Service.ets" | 114 ++++++ .../serviceextability/ServiceExtAbility.ets" | 54 +++ .../IPC_Service/entry/src/main/module.json5" | 63 ++++ .../main/resources/base/element/color.json" | 8 + .../main/resources/base/element/float.json" | 8 + .../main/resources/base/element/string.json" | 16 + .../main/resources/base/media/background.png" | Bin 0 -> 91942 bytes .../main/resources/base/media/foreground.png" | Bin 0 -> 8805 bytes .../resources/base/media/layered_image.json" | 7 + .../main/resources/base/media/startIcon.png" | Bin 0 -> 20093 bytes .../base/profile/backup_config.json" | 3 + .../resources/base/profile/main_pages.json" | 5 + .../main/resources/dark/element/color.json" | 8 + .../entry/src/mock/mock-config.json5" | 17 + .../src/ohosTest/ets/test/Ability.test.ets" | 50 +++ .../src/ohosTest/ets/test/List.test.ets" | 20 ++ .../entry/src/ohosTest/module.json5" | 28 ++ .../IPC_Service/entry/src/test/List.test.ets" | 20 ++ .../entry/src/test/LocalUnit.test.ets" | 48 +++ .../IPC_Service/hvigor/hvigor-config.json5" | 37 ++ .../IPC_Service/hvigorfile.ts" | 7 + .../IPC_Service/oh-package.json5" | 25 ++ .../README.md" | 329 ++++++++++++++++++ .../\345\256\242\346\210\267\347\253\257.PNG" | Bin 0 -> 64566 bytes .../\346\234\215\345\212\241\347\253\257.PNG" | Bin 0 -> 62902 bytes ...3\345\212\240\346\235\203\351\231\220.PNG" | Bin 0 -> 16279 bytes ...6\345\220\215\346\214\207\347\272\271.PNG" | Bin 0 -> 33672 bytes 73 files changed, 2191 insertions(+), 2 deletions(-) create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/.gitignore" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/AppScope/app.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/AppScope/resources/base/element/string.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/AppScope/resources/base/media/app_icon.png" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/build-profile.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/.gitignore" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/build-profile.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/hvigorfile.ts" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/obfuscation-rules.txt" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/oh-package.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/ets/client/cnn/IPC_Client.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/ets/entryability/EntryAbility.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/ets/pages/Index.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/module.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/element/color.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/element/float.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/element/string.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/media/background.png" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/media/foreground.png" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/media/layered_image.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/media/startIcon.png" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/profile/backup_config.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/profile/main_pages.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/dark/element/color.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/mock/mock-config.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/ohosTest/ets/test/Ability.test.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/ohosTest/ets/test/List.test.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/ohosTest/module.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/test/List.test.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/test/LocalUnit.test.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/hvigor/hvigor-config.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/hvigorfile.ts" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/oh-package.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/.gitignore" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/AppScope/app.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/AppScope/resources/base/element/string.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/AppScope/resources/base/media/app_icon.png" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/build-profile.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/.gitignore" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/build-profile.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/hvigorfile.ts" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/obfuscation-rules.txt" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/oh-package.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/entryability/EntryAbility.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/pages/Index.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/serviceextability/IPC_Service.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/serviceextability/ServiceExtAbility.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/module.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/element/color.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/element/float.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/element/string.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/media/background.png" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/media/foreground.png" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/media/layered_image.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/media/startIcon.png" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/profile/backup_config.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/profile/main_pages.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/dark/element/color.json" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/mock/mock-config.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/ohosTest/ets/test/Ability.test.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/ohosTest/ets/test/List.test.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/ohosTest/module.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/test/List.test.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/test/LocalUnit.test.ets" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/hvigor/hvigor-config.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/hvigorfile.ts" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/oh-package.json5" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/README.md" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/image/\345\256\242\346\210\267\347\253\257.PNG" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/image/\346\234\215\345\212\241\347\253\257.PNG" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/image/\346\267\273\345\212\240\346\235\203\351\231\220.PNG" create mode 100644 "code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/image/\350\216\267\345\217\226\347\255\276\345\220\215\346\214\207\347\272\271.PNG" diff --git a/OAT.xml b/OAT.xml index 8e93980e9a..126170cf76 100644 --- a/OAT.xml +++ b/OAT.xml @@ -131,6 +131,11 @@ Note:If the text contains special characters, please escape them according to th + + + + + @@ -179,7 +184,7 @@ Note:If the text contains special characters, please escape them according to th - + @@ -2209,7 +2214,12 @@ Note:If the text contains special characters, please escape them according to th - + + + + + + @@ -2282,6 +2292,11 @@ Note:If the text contains special characters, please escape them according to th + + + + + diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/.gitignore" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/.gitignore" new file mode 100644 index 0000000000..d2ff20141c --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/.gitignore" @@ -0,0 +1,12 @@ +/node_modules +/oh_modules +/local.properties +/.idea +**/build +/.hvigor +.cxx +/.clangd +/.clang-format +/.clang-tidy +**/.test +/.appanalyzer \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/AppScope/app.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/AppScope/app.json5" new file mode 100644 index 0000000000..32442f7dac --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/AppScope/app.json5" @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "app": { + "bundleName": "com.samples.ipc_client", + "vendor": "samples", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name" + } +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/AppScope/resources/base/element/string.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/AppScope/resources/base/element/string.json" new file mode 100644 index 0000000000..aa40aa601b --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/AppScope/resources/base/element/string.json" @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "IPC_APP1" + } + ] +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/AppScope/resources/base/media/app_icon.png" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/AppScope/resources/base/media/app_icon.png" new file mode 100644 index 0000000000000000000000000000000000000000..a39445dc87828b76fed6d2ec470dd455c45319e3 GIT binary patch literal 2777 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 literal 0 HcmV?d00001 diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/build-profile.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/build-profile.json5" new file mode 100644 index 0000000000..5f5e6438fd --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/build-profile.json5" @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "app": { + "signingConfigs": [], + "products": [ + { + "name": "default", + "signingConfig": "default", + "compatibleSdkVersion": "5.0.1(13)", + "runtimeOS": "HarmonyOS", + "buildOption": { + "externalNativeOptions": { + "abiFilters": [ + "arm64-v8a", + "x86_64" + ] + }, + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + } + } + ], + "buildModeSet": [ + { + "name": "debug", + }, + { + "name": "release" + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/.gitignore" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/.gitignore" new file mode 100644 index 0000000000..e2713a2779 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/.gitignore" @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/build-profile.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/build-profile.json5" new file mode 100644 index 0000000000..9cee8f80d5 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/build-profile.json5" @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "apiType": "stageMode", + "buildOption": { + "externalNativeOptions": { + "abiFilters": [ + "arm64-v8a", + "x86_64" + ] + } + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/hvigorfile.ts" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/hvigorfile.ts" new file mode 100644 index 0000000000..e4f43d5466 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/hvigorfile.ts" @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/obfuscation-rules.txt" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/obfuscation-rules.txt" new file mode 100644 index 0000000000..272efb6ca3 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/obfuscation-rules.txt" @@ -0,0 +1,23 @@ +# Define project specific obfuscation rules here. +# You can include the obfuscation configuration files in the current module's build-profile.json5. +# +# For more details, see +# https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5 + +# Obfuscation options: +# -disable-obfuscation: disable all obfuscations +# -enable-property-obfuscation: obfuscate the property names +# -enable-toplevel-obfuscation: obfuscate the names in the global scope +# -compact: remove unnecessary blank spaces and all line feeds +# -remove-log: remove all console.* statements +# -print-namecache: print the name cache that contains the mapping from the old names to new names +# -apply-namecache: reuse the given cache file + +# Keep options: +# -keep-property-name: specifies property names that you want to keep +# -keep-global-name: specifies names that you want to keep in the global scope + +-enable-property-obfuscation +-enable-toplevel-obfuscation +-enable-filename-obfuscation +-enable-export-obfuscation \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/oh-package.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/oh-package.json5" new file mode 100644 index 0000000000..c9cb6c8174 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/oh-package.json5" @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": {} +} + diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/ets/client/cnn/IPC_Client.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/ets/client/cnn/IPC_Client.ets" new file mode 100644 index 0000000000..ded91b3e10 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/ets/client/cnn/IPC_Client.ets" @@ -0,0 +1,180 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import rpc from '@ohos.rpc'; +import Want from '@ohos.app.ability.Want'; +import common from '@ohos.app.ability.common'; +import hilog from '@ohos.hilog' +import { BusinessError } from '@kit.BasicServicesKit'; +import { obtainResult } from '../../pages/Index' + +const TAG = 'ClientIpc_App1' +const DOMAIN = 0x0000; + +let proxy: rpc.IRemoteObject | undefined +let connectid: number | undefined +let want: Want = { + bundleName: 'com.samples.ipc_service', + abilityName: 'IpcServiceExtAbility', +} + +// Parcelable对象 +class MyParcelable implements rpc.Parcelable { + private num: number = 0; + private str: string = ''; + + constructor(num: number, str: string) { + this.num = num; + this.str = str; + } + + marshalling(messageSequence: rpc.MessageSequence): boolean { + messageSequence.writeInt(this.num); + messageSequence.writeString(this.str); + return true; + } + + unmarshalling(messageSequence: rpc.MessageSequence): boolean { + this.num = messageSequence.readInt(); + this.str = messageSequence.readString(); + return true; + } +} + +export class ClientIpc { + static bindAbi(context: + common.UIAbilityContext, callback: () => void) { + connectIpc(context, callback); + } + + static unBindAbi(context: common.UIAbilityContext) { + disConnectIpc(context); + } + + // 处理Parcelable数据,调用sendData发送至服务端 + static sendParcelable(str: string) { + if (proxy == undefined) { + hilog.info(DOMAIN, TAG, 'undefined proxy'); + return; + } + let option = new rpc.MessageOption(); + let data = rpc.MessageSequence.create(); + let reply = rpc.MessageSequence.create(); + + // 取决于MyParcelable类如何定义,或需要序列化时准备传递什么数据类型,本示例中MyParcelable是以number和string为例,且服务端接收string + let parcelable = new MyParcelable(1, str); + try { + // 进行校验 + data.writeInterfaceToken(proxy.getDescriptor()); + // 写入Parcelable + data.writeParcelable(parcelable); + } catch (error) { + let e: BusinessError = error as BusinessError; + hilog.info(DOMAIN, TAG, 'ipc write parcelable fail, errorCode ' + e.code + 'errorMessage:' + e.message); + } + + sendData(proxy, 1001, data, reply, option); + } + + // 处理arraybuffer数据,调用sendData发送至服务端 + static sendArrayBuffer(str: string) { + if (proxy == undefined) { + hilog.info(DOMAIN, TAG, 'undefined proxy'); + return; + } + let option = new rpc.MessageOption(); + let data = rpc.MessageSequence.create(); + let reply = rpc.MessageSequence.create(); + + // 将str转为ArrayBuffer + let buffer = new ArrayBuffer(str.length); + let uint8View = new Uint8Array(buffer); + for (let i = 0; i < str.length; i++) { + uint8View[i] = str.charCodeAt(i); + } + try { + // 进行校验 + data.writeInterfaceToken(proxy.getDescriptor()); + // 写入ArrayBuffer + data.writeArrayBuffer(buffer, rpc.TypeCode.UINT8_ARRAY); + } catch (error) { + let e: BusinessError = error as BusinessError; + hilog.info(DOMAIN, TAG, 'ipc write parcelable fail, errorCode ' + e.code + 'errorMessage:' + e.message); + } + + sendData(proxy, 1002, data, reply, option); + } +} + +// 连接服务端 +function connectIpc(context: common.UIAbilityContext, callback: () => void) { + let connect: common.ConnectOptions = { + onConnect: (elementName, remoteProxy) => { + hilog.info(DOMAIN, TAG, 'IpcClient:onConnect.callend(server),elementName:' + + JSON.stringify(elementName)); + proxy = remoteProxy; + obtainResult.result = 'success'; + callback(); + }, + onDisconnect: (elementName) => { + hilog.info(DOMAIN, TAG, 'IpcClient onDisconnect:' + elementName); + }, + onFailed: (code: number) => { + obtainResult.result = 'error ' + code; + hilog.info(DOMAIN, TAG, 'IpcClient onFailed,code:' + code); + callback(); + }, + } + + connectid = context.connectServiceExtensionAbility(want, connect); + hilog.info(DOMAIN, TAG, 'IpcClient connectid:' + connectid); +} + +function disConnectIpc(context: common.UIAbilityContext) { + if (connectid != undefined) { + context.disconnectServiceExtensionAbility(connectid); + } +} + +// 发送信息,arraybuffer和parcelable均调用此处发送至服务端 +function sendData(proxy: rpc.IRemoteObject, code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, + options: rpc.MessageOption) { + if (proxy == undefined) { + hilog.info(DOMAIN, TAG, 'undefined proxy'); + return; + } + // 用连接服务成功后返回的对象proxy,进行消息发送 + proxy.sendMessageRequest(code, data, reply, options) + .then((result: rpc.RequestResult) => { + if (result.errCode === 0) { + hilog.info(DOMAIN, TAG, 'sendMessageRequest got result'); + try { + let rsp = result.reply.readString(); + hilog.info(DOMAIN, TAG, 'IpcClient result.' + rsp); + } catch (error) { + let e: BusinessError = error as BusinessError; + hilog.error(DOMAIN, TAG, 'rpc read exception fail, error is ' + e); + } + } else { + hilog.error(DOMAIN, TAG, 'RPCTest: sendMessageRequest failed, errCode: ' + result.errCode); + } + }).catch((e: Error) => { + hilog.error(DOMAIN, TAG, 'RPCTest: sendMessageRequest got exception: ' + e); + }).finally(() => { + hilog.info(DOMAIN, TAG, 'RPCTest: sendMessageRequest ends, reclaim parcel'); + data.reclaim(); + reply.reclaim(); + }); +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/ets/entryability/EntryAbility.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/ets/entryability/EntryAbility.ets" new file mode 100644 index 0000000000..1d534b702a --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/ets/entryability/EntryAbility.ets" @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; + +const DOMAIN = 0x0000; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + AppStorage.setOrCreate('ipc_context', this.context); + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy(): void { + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(DOMAIN, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err)); + return; + } + hilog.info(DOMAIN, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onBackground'); + } +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/ets/pages/Index.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/ets/pages/Index.ets" new file mode 100644 index 0000000000..ba7d1361ff --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/ets/pages/Index.ets" @@ -0,0 +1,120 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import { common } from '@kit.AbilityKit'; +import { PromptAction } from '@kit.ArkUI'; +import { ClientIpc } from '../client/cnn/IPC_Client'; + +interface ObtainProxyResults { + result: string; +} + +export const obtainResult: ObtainProxyResults = { + // 用Result存放代理结果 + result: '', +}; + +@Entry +@Component +struct Index { + @State message: string = 'IPC-Client'; + @State inputParcelable: string = ''; + @State inputArrayBuffer: string = ''; + private uiContext: UIContext = this.getUIContext() + private promptAction: PromptAction = this.uiContext.getPromptAction() + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + List({ space: 30 }) { + ListItem() { + Button('获取服务端代理').onClick(() => { + test00(() => { + // 弹窗提示获取代理结果 + this.promptAction.showToast({ + message: obtainResult.result, + duration: 3000 + }); + }) + }) + .width('100%') + } + + ListItem() { + Button('发送Parcelable').onClick(() => { + test01(this.inputParcelable) + }) + .width('100%') + } + + ListItem() { + TextInput({ placeholder: '输入Parcelable传输的内容' }) + .type(InputType.Normal).onChange((text) => { + this.inputParcelable = text; + }) + .width('80%') + } + + ListItem() { + Button('发送ArrayBuffer').onClick(() => { + test02(this.inputArrayBuffer) + }) + .width('100%') + } + + ListItem() { + TextInput({ placeholder: '输入ArrayBuffer传输的内容' }) + .type(InputType.Normal).onChange((text) => { + this.inputArrayBuffer = text; + }) + .width('80%') + } + + ListItem() { + Button('IPC断开通信').onClick(() => { + test03() + }) + .width('100%') + } + } + .listDirection(Axis.Vertical) + .backgroundColor(0xDCDCDC).padding(20) + } + .width('100%') + } + .height('100%') + } +} + +function test00(callback: () => void) { + let cxt = AppStorage.get('ipc_context') as common.UIAbilityContext; + ClientIpc.bindAbi(cxt, callback); +} + +function test01(str: string) { + ClientIpc.sendParcelable(str); +} + +function test02(str: string) { + ClientIpc.sendArrayBuffer(str); +} + +function test03() { + let cxt = AppStorage.get('ipc_context') as common.UIAbilityContext + ClientIpc.unBindAbi(cxt) +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/module.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/module.json5" new file mode 100644 index 0000000000..ad203eb9d8 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/module.json5" @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "phone", + "tablet", + "2in1" + ], + + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:layered_image", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ], + }, + +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/element/color.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/element/color.json" new file mode 100644 index 0000000000..3c712962da --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/element/color.json" @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/element/float.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/element/float.json" new file mode 100644 index 0000000000..33ea22304f --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/element/float.json" @@ -0,0 +1,8 @@ +{ + "float": [ + { + "name": "page_text_font_size", + "value": "50fp" + } + ] +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/element/string.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/element/string.json" new file mode 100644 index 0000000000..f94595515a --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/element/string.json" @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "label" + } + ] +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/media/background.png" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/media/background.png" new file mode 100644 index 0000000000000000000000000000000000000000..923f2b3f27e915d6871871deea0420eb45ce102f GIT binary patch literal 91942 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/profile/backup_config.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/profile/backup_config.json" new file mode 100644 index 0000000000..78f40ae7c4 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/profile/backup_config.json" @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/profile/main_pages.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/profile/main_pages.json" new file mode 100644 index 0000000000..1898d94f58 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/base/profile/main_pages.json" @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/Index" + ] +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/dark/element/color.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/dark/element/color.json" new file mode 100644 index 0000000000..79b11c2747 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/main/resources/dark/element/color.json" @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#000000" + } + ] +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/mock/mock-config.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/mock/mock-config.json5" new file mode 100644 index 0000000000..b9a78e2015 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/mock/mock-config.json5" @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/ohosTest/ets/test/Ability.test.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/ohosTest/ets/test/Ability.test.ets" new file mode 100644 index 0000000000..0f8ce9a2c0 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/ohosTest/ets/test/Ability.test.ets" @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function abilityTest() { + describe('ActsAbilityTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + hilog.info(0x0000, 'testTag', '%{public}s', 'it begin'); + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }) + }) +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/ohosTest/ets/test/List.test.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/ohosTest/ets/test/List.test.ets" new file mode 100644 index 0000000000..1eac52fceb --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/ohosTest/ets/test/List.test.ets" @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import abilityTest from './Ability.test'; + +export default function testsuite() { + abilityTest(); +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/ohosTest/module.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/ohosTest/module.json5" new file mode 100644 index 0000000000..6b9889e8cc --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/ohosTest/module.json5" @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "module": { + "name": "entry_test", + "type": "feature", + "deviceTypes": [ + "phone", + "tablet", + "2in1" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/test/List.test.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/test/List.test.ets" new file mode 100644 index 0000000000..f1186b1f53 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/test/List.test.ets" @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import localUnitTest from './LocalUnit.test'; + +export default function testsuite() { + localUnitTest(); +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/test/LocalUnit.test.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/test/LocalUnit.test.ets" new file mode 100644 index 0000000000..7fc57c77db --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/entry/src/test/LocalUnit.test.ets" @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function localUnitTest() { + describe('localUnitTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }); + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }); + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }); + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }); + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }); + }); +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/hvigor/hvigor-config.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/hvigor/hvigor-config.json5" new file mode 100644 index 0000000000..0bbbb33b0b --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/hvigor/hvigor-config.json5" @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "modelVersion": "5.0.2", + "dependencies": { + }, + "execution": { + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */ + // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ + // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ + // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */ + }, + "nodeOptions": { + // "maxOldSpaceSize": 8192 /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/ + // "exposeGC": true /* Enable to trigger garbage collection explicitly. Default: true*/ + } +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/hvigorfile.ts" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/hvigorfile.ts" new file mode 100644 index 0000000000..2a5e543f19 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/hvigorfile.ts" @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import { appTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/oh-package.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/oh-package.json5" new file mode 100644 index 0000000000..3b555a4269 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Client/oh-package.json5" @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "modelVersion": "5.0.2", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.21", + "@ohos/hamock": "1.0.0" + } +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/.gitignore" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/.gitignore" new file mode 100644 index 0000000000..d2ff20141c --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/.gitignore" @@ -0,0 +1,12 @@ +/node_modules +/oh_modules +/local.properties +/.idea +**/build +/.hvigor +.cxx +/.clangd +/.clang-format +/.clang-tidy +**/.test +/.appanalyzer \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/AppScope/app.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/AppScope/app.json5" new file mode 100644 index 0000000000..d0ff6c191b --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/AppScope/app.json5" @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "app": { + "bundleName": "com.samples.ipc_service", + "vendor": "samples", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name" + } +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/AppScope/resources/base/element/string.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/AppScope/resources/base/element/string.json" new file mode 100644 index 0000000000..cd0fd2e00e --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/AppScope/resources/base/element/string.json" @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "IPC_APP2" + } + ] +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/AppScope/resources/base/media/app_icon.png" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/AppScope/resources/base/media/app_icon.png" new file mode 100644 index 0000000000000000000000000000000000000000..a39445dc87828b76fed6d2ec470dd455c45319e3 GIT binary patch literal 2777 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 literal 0 HcmV?d00001 diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/build-profile.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/build-profile.json5" new file mode 100644 index 0000000000..2144ff2bfd --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/build-profile.json5" @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "app": { + "signingConfigs": [], + "products": [ + { + "name": "default", + "signingConfig": "default", + "compatibleSdkVersion": "5.0.1(13)", + "runtimeOS": "HarmonyOS", + "buildOption": { + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + } + } + ], + "buildModeSet": [ + { + "name": "debug", + }, + { + "name": "release" + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/.gitignore" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/.gitignore" new file mode 100644 index 0000000000..e2713a2779 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/.gitignore" @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/build-profile.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/build-profile.json5" new file mode 100644 index 0000000000..e7569e3056 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/build-profile.json5" @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "apiType": "stageMode", + "buildOption": { + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/hvigorfile.ts" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/hvigorfile.ts" new file mode 100644 index 0000000000..e4f43d5466 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/hvigorfile.ts" @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/obfuscation-rules.txt" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/obfuscation-rules.txt" new file mode 100644 index 0000000000..272efb6ca3 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/obfuscation-rules.txt" @@ -0,0 +1,23 @@ +# Define project specific obfuscation rules here. +# You can include the obfuscation configuration files in the current module's build-profile.json5. +# +# For more details, see +# https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5 + +# Obfuscation options: +# -disable-obfuscation: disable all obfuscations +# -enable-property-obfuscation: obfuscate the property names +# -enable-toplevel-obfuscation: obfuscate the names in the global scope +# -compact: remove unnecessary blank spaces and all line feeds +# -remove-log: remove all console.* statements +# -print-namecache: print the name cache that contains the mapping from the old names to new names +# -apply-namecache: reuse the given cache file + +# Keep options: +# -keep-property-name: specifies property names that you want to keep +# -keep-global-name: specifies names that you want to keep in the global scope + +-enable-property-obfuscation +-enable-toplevel-obfuscation +-enable-filename-obfuscation +-enable-export-obfuscation \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/oh-package.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/oh-package.json5" new file mode 100644 index 0000000000..c9cb6c8174 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/oh-package.json5" @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": {} +} + diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/entryability/EntryAbility.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/entryability/EntryAbility.ets" new file mode 100644 index 0000000000..d3ee54d2be --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/entryability/EntryAbility.ets" @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; + +const DOMAIN = 0x0000; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy(): void { + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(DOMAIN, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err)); + return; + } + hilog.info(DOMAIN, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onBackground'); + } +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/pages/Index.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/pages/Index.ets" new file mode 100644 index 0000000000..0cf816b07c --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/pages/Index.ets" @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import { DataStatus, dataStatus } from '../serviceextability/IPC_Service' + +@Entry +@Component +struct Index { + @State message: string = 'IPC-Server'; + @State statusObj: DataStatus = dataStatus + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + .margin({ + top: '12vp', + bottom: '50vp' + }) + Text('显示接收到的Parcelable: ') + .width('100%') + .fontSize(24) + .textAlign(TextAlign.Start) + TextArea({ placeholder: 'Parcelable', text: this.statusObj.getParcelable }) + .width('100%') + .height('25%') + .fontSize(20) + .margin({ + top: '12vp', + bottom: '60vp' + }) + Text('显示接收到的ArrayBuffer: ') + .width('100%') + .fontSize(24) + TextArea({ placeholder: 'ArrayBuffer', text: this.statusObj.getArrayBuffer }) + .width('100%') + .height('25%') + .fontSize(20) + .margin({ + top: '12vp', + bottom: '20vp' + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/serviceextability/IPC_Service.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/serviceextability/IPC_Service.ets" new file mode 100644 index 0000000000..8edcfef148 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/serviceextability/IPC_Service.ets" @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import { rpc } from '@kit.IPCKit' +import { util } from '@kit.ArkTS'; +import hilog from '@ohos.hilog' + +const TAG = 'ServerIpc_App2' +const DOMAIN = 0x0000; + +// 状态管理,对嵌套类对象属性变化直接观测 +@Observed +export class DataStatus { + getParcelable: string = ''; + getArrayBuffer: string = ''; + + public updataParcelable(v: string) { + this.getParcelable = v; + } + + public updataArrayBuffer(v: string) { + this.getArrayBuffer = v; + } +} + +export const dataStatus = new DataStatus(); + +// 提供服务端能力 +export class StubServer extends rpc.RemoteObject { + private str: string | undefined + + constructor(des: string) { + super(des); + } + + onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, + options: rpc.MessageOption): boolean | Promise { + hilog.info(DOMAIN, TAG, 'Client Send code:' + code); + let descriptor = this.getDescriptor(); + // 进行校验 + if (descriptor != data.readInterfaceToken()) { + hilog.info(DOMAIN, TAG, 'VERIFICATION FAILED'); + return false; + } + + onHandleClientReq(code, data, reply); + return true; + } + + getLocalInterface(descriptor: string): rpc.IRemoteBroker { + return super.getLocalInterface(descriptor); + } +} + +// Parcelable对象 +class MyParcelable implements rpc.Parcelable { + private num: number = 0; + private str: string = ''; + + constructor(num: number, str: string) { + this.num = num; + this.str = str; + } + + marshalling(messageSequence: rpc.MessageSequence): boolean { + messageSequence.writeInt(this.num); + messageSequence.writeString(this.str); + return true; + } + + unmarshalling(messageSequence: rpc.MessageSequence): boolean { + this.num = messageSequence.readInt(); + this.str = messageSequence.readString(); + return true; + } +} + +// 处理接收到的数据 +function onHandleClientReq(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence) { + hilog.info(DOMAIN, TAG, 'onHandle Client,code:' + code); + switch (code) { + // 接收parcelable对象 + case 1001: + let parcelable = new MyParcelable(0, ''); + data.readParcelable(parcelable); + dataStatus.updataParcelable(parcelable.str); + hilog.info(DOMAIN, TAG, 'read parcelable: ' + parcelable.str); + break + // 接收arraybuffer + case 1002: + let result = data.readArrayBuffer(rpc.TypeCode.UINT8_ARRAY); + let decoder = util.TextDecoder.create('utf-8'); + let stringData = decoder.decodeToString(new Uint8Array(result)); + dataStatus.updataArrayBuffer(stringData); + hilog.info(DOMAIN, TAG, 'read arraybuffer: ' + stringData); + break; + default: + hilog.info(DOMAIN, TAG, 'onHandleClient-default,code: ' + 1001); + break; + } +} + diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/serviceextability/ServiceExtAbility.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/serviceextability/ServiceExtAbility.ets" new file mode 100644 index 0000000000..91884d67b0 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/ets/serviceextability/ServiceExtAbility.ets" @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import { rpc } from '@kit.IPCKit' +import { ExtensionAbility as ServiceExtensionAbility, Want } from '@kit.AbilityKit' +import hilog from '@ohos.hilog'; +import { StubServer } from './IPC_Service' + +const TAG = 'ServerIpc_App2' +const DOMAIN = 0x0000; +let globalStubServer: StubServer | undefined + +function getInstance(): StubServer { + if (globalStubServer == undefined) { + globalStubServer = new StubServer('serverStub_app2'); + } + return globalStubServer; +} + +export default class ServiceExtension extends ServiceExtensionAbility { + onCreate(want: Want) { + hilog.info(DOMAIN, TAG, 'ServiceExtensionAbility onCreate,want param:' + JSON.stringify(want) ?? ' '); + } + + onRequest(want: Want, startId: number) { + hilog.info(DOMAIN, TAG, + 'ServiceExtensionAbility onRequest,want param:' + JSON.stringify(want) ?? '+,startId:' + JSON.stringify(startId)); + } + + onConnect(want: Want): rpc.RemoteObject | Promise { + hilog.info(DOMAIN, TAG, 'ServiceExtensionAbility onConnect,want param:' + JSON.stringify(want) ?? ''); + return getInstance(); + } + + onDisconnect(want: Want) { + hilog.info(DOMAIN, TAG, 'ServiceExtensionAbility onDisconnect,want param::' + JSON.stringify(want)); + } + + onDestroy() { + hilog.info(DOMAIN, TAG, 'ServiceExtensionAbility onDestroy'); + } +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/module.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/module.json5" new file mode 100644 index 0000000000..e40188f49e --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/module.json5" @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "phone", + "tablet", + "2in1" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:layered_image", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ], + "extensionAbilities": [ + //配置IpcServiceExtAbility能力 + { + "name": "IpcServiceExtAbility", + "srcEntry": "./ets/serviceextability/ServiceExtAbility.ets", + "type": "service", + "exported": true, + "description": "service" + } + ] + } +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/element/color.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/element/color.json" new file mode 100644 index 0000000000..54bb950ffe --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/element/color.json" @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFFFF" + } + ] +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/element/float.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/element/float.json" new file mode 100644 index 0000000000..33ea22304f --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/element/float.json" @@ -0,0 +1,8 @@ +{ + "float": [ + { + "name": "page_text_font_size", + "value": "50fp" + } + ] +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/element/string.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/element/string.json" new file mode 100644 index 0000000000..f94595515a --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/element/string.json" @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "label" + } + ] +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/media/background.png" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/media/background.png" new file mode 100644 index 0000000000000000000000000000000000000000..923f2b3f27e915d6871871deea0420eb45ce102f GIT binary patch literal 91942 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/profile/backup_config.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/profile/backup_config.json" new file mode 100644 index 0000000000..78f40ae7c4 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/profile/backup_config.json" @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/profile/main_pages.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/profile/main_pages.json" new file mode 100644 index 0000000000..1898d94f58 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/base/profile/main_pages.json" @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/Index" + ] +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/dark/element/color.json" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/dark/element/color.json" new file mode 100644 index 0000000000..79b11c2747 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/main/resources/dark/element/color.json" @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#000000" + } + ] +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/mock/mock-config.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/mock/mock-config.json5" new file mode 100644 index 0000000000..b9a78e2015 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/mock/mock-config.json5" @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/ohosTest/ets/test/Ability.test.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/ohosTest/ets/test/Ability.test.ets" new file mode 100644 index 0000000000..0f8ce9a2c0 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/ohosTest/ets/test/Ability.test.ets" @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function abilityTest() { + describe('ActsAbilityTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + hilog.info(0x0000, 'testTag', '%{public}s', 'it begin'); + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }) + }) +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/ohosTest/ets/test/List.test.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/ohosTest/ets/test/List.test.ets" new file mode 100644 index 0000000000..1eac52fceb --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/ohosTest/ets/test/List.test.ets" @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import abilityTest from './Ability.test'; + +export default function testsuite() { + abilityTest(); +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/ohosTest/module.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/ohosTest/module.json5" new file mode 100644 index 0000000000..6b9889e8cc --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/ohosTest/module.json5" @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "module": { + "name": "entry_test", + "type": "feature", + "deviceTypes": [ + "phone", + "tablet", + "2in1" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/test/List.test.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/test/List.test.ets" new file mode 100644 index 0000000000..f1186b1f53 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/test/List.test.ets" @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import localUnitTest from './LocalUnit.test'; + +export default function testsuite() { + localUnitTest(); +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/test/LocalUnit.test.ets" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/test/LocalUnit.test.ets" new file mode 100644 index 0000000000..7fc57c77db --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/entry/src/test/LocalUnit.test.ets" @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function localUnitTest() { + describe('localUnitTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }); + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }); + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }); + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }); + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }); + }); +} \ No newline at end of file diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/hvigor/hvigor-config.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/hvigor/hvigor-config.json5" new file mode 100644 index 0000000000..0bbbb33b0b --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/hvigor/hvigor-config.json5" @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "modelVersion": "5.0.2", + "dependencies": { + }, + "execution": { + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */ + // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ + // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ + // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */ + }, + "nodeOptions": { + // "maxOldSpaceSize": 8192 /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/ + // "exposeGC": true /* Enable to trigger garbage collection explicitly. Default: true*/ + } +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/hvigorfile.ts" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/hvigorfile.ts" new file mode 100644 index 0000000000..f8ffeea12a --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/hvigorfile.ts" @@ -0,0 +1,7 @@ + +import { appTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/oh-package.json5" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/oh-package.json5" new file mode 100644 index 0000000000..3b555a4269 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/IPC_Service/oh-package.json5" @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * 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 + * + * http://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. + */ + +{ + "modelVersion": "5.0.2", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.21", + "@ohos/hamock": "1.0.0" + } +} diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/README.md" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/README.md" new file mode 100644 index 0000000000..3d41016681 --- /dev/null +++ "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/README.md" @@ -0,0 +1,329 @@ +# IPC通信示例 + +## 一、介绍 + +本示例介绍如何使用[OHOS RPC](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ipc-kit/js-apis-rpc.md) 相关接口,开发一个IPC客户端与服务端通信的完整示例,并在此示例中演示如何使用Parcelable/ArrayBuffer对象传递字符串信息。 + +### 1.1、示例界面: +|客户端|服务端| +|-----------------|----------------------| +|![](image/客户端.PNG)|![](image/服务端.PNG)| + +### 1.2、使用说明: + +1. 点击“获取服务端代理”进行连接服务端,在“发送Parcelable”和“发送ArrayBuffer”底下的输入框中输入发送内容,点击对应按钮即可发送字符串信息至服务端; + +2. 在服务端的“显示接收到的Parcelable”、“显示接收到的ArrayBuffer”文本下显示从客户端发来的对应信息; + + +## 二、工程目录 +### 客户端-IPC_Client +``` +entry/src/main/ets/ +|---entryability +| |---EntryAbility.ets // 入口文件 +|---pages +| |---Index.ets // 页面布局 +|---service/cnn +| |---IPC_Client.ets // 客户端能力,连接服务端,发送Parcelable和ArrayBuffer +``` + +### 服务端-IPC_Service +``` +entry/src/main/ets/ +|---entryability +| |---EntryAbility.ets // 入口文件 +|---pages +| |---Index.ets // 页面布局 +|---serviceextability +| |---IPC_Service.ets // 服务端能力,接收、处理数据 +| |---ServiceExtAbility.ets // Service通用能力 +``` + +## 三、具体实现 + +* 本示例分为两大模块 + + ### 3.1、客户端与服务端的连接和断开模块 + + * 3.1.1、获取服务端代理:按下按钮后,通过connectIpc()中的connectServiceExtensionAbility()进行连接服务端; + ``` + let connect: common.ConnectOptions = { + //回调获取请求结果 + onConnect: (elementName, remoteProxy) => { + hilog.info(DOMAIN, TAG, 'IpcClient:onConnect.callend(server),elementName:'+ + JSON.stringify(elementName)) + proxy = remoteProxy + ObtainResult.Result = 'success' + callback() + }, + onDisconnect: (elementName) => { + hilog.info(DOMAIN, TAG, 'IpcClient onDisconnect:' + elementName) + }, + onFailed: (code: number) => { + ObtainResult.Result = 'error '+code + hilog.info(DOMAIN, TAG, 'IpcClient onFailed,code:' + code) + callback() + }, + } + + //连接至服务端扩展功能 + connectid = context.connectServiceExtensionAbility(want, connect) + hilog.info(DOMAIN, TAG, 'IpcClient connectid:' + connectid) + ``` + * 3.1.2、断开服务端代理:按下按钮后,通过disConnectIpc()disconnectServiceExtensionAbility()进行断开连接; + ``` + function disConnectIpc(context: common.UIAbilityContext) { + if (connectid != undefined) { + context.disconnectServiceExtensionAbility(connectid) + } + } + ``` + + 源码参考:[IPC_Client.ets](IPC_Client/entry/src/main/ets/client/cnn/IPC_Client.ets); + + 接口参考:[@ohos.rpc](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ipc-kit/js-apis-rpc.md); + + [IPC与RPC通信开发指导](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ipc-rpc-development-guideline-V5) + + + ### 3.2、客户端发送数据与服务端接收数据 + + * 3.2.1、通过Parcelable对象发送数据: + + (1).在客户端的IPC_Client.ets中的sendParcelable()中通过rpc.MessageSequence.create()创建MessageSequence对象; + ``` + let data = rpc.MessageSequence.create() + ``` + (2).通过MessageSequence.writeParcelable()将封装字符串信息的Parcelable对象写入MessageSequence对象中; + ``` + //取决于MyParcelable类如何定义,或需要序列化时准备传递什么数据类型; + //本示例中MyParcelable是以number和string为例,且服务端接收string + let parcelable = new MyParcelable(1, str); + data.writeParcelable(parcelable); + ``` + (3).通过sendData()中的rpc.RemoteObject.sendMessageRequest()将包裹待发送字符串的Parcelable对象发送到服务端进程中; + ``` + //用连接服务成功后返回的对象proxy,进行消息发送 + proxy.sendMessageRequest(code, data, reply, options) + .then((result: rpc.RequestResult) => { + if (result.errCode === 0) { + hilog.info(DOMAIN, TAG, 'sendMessageRequest got result'); + try { + let rsp = result.reply.readString() + hilog.info(DOMAIN, TAG, 'IpcClient result.' + rsp); + } catch (error) { + let e: BusinessError = error as BusinessError; + hilog.error(DOMAIN, TAG, 'rpc read exception fail, error is ' + e); + } + } else { + hilog.error(DOMAIN, TAG, 'RPCTest: sendMessageRequest failed, errCode: ' + result.errCode); + } + }).catch((e: Error) => { + hilog.error(DOMAIN, TAG, 'RPCTest: sendMessageRequest got exception: ' + e); + }).finally (() => { + hilog.info(DOMAIN, TAG, 'RPCTest: sendMessageRequest ends, reclaim parcel'); + data.reclaim(); + reply.reclaim(); + }); + ``` + + * 3.2.2、通过ArrayBuffer对象发送数据: + + (1).在客户端的IPC_Client.ets中的sendArrayBuffer()中通过rpc.MessageSequence.create()创建MessageSequence对象; + ``` + let data = rpc.MessageSequence.create() + ``` + + (2).然后将待发送字符串转为ArrayBuffer,之后通过MessageSequence.writeArrayBuffer()将ArrayBuffer对象写入MessageSequence对象中; + ``` + let buffer = new ArrayBuffer(str.length); + let Uint8View = new Uint8Array(buffer); + for (let i = 0; i < str.length; i++) { + Uint8View[i] = str.charCodeAt(i); + } + //进行校验 + data.writeInterfaceToken(proxy.getDescriptor()) + //写入ArrayBuffer + data.writeArrayBuffer(buffer, rpc.TypeCode.UINT8_ARRAY); + ``` + + (3).通过sendData()中的rpc.RemoteObject.sendMessageRequest()将包裹待发送字符串的ArrayBuffer对象发送到服务端进程中; + ``` + //用连接服务成功后返回的对象proxy,进行消息发送 + proxy.sendMessageRequest(code, data, reply, options) + .then((result: rpc.RequestResult) => { + if (result.errCode === 0) { + hilog.info(DOMAIN, TAG, 'sendMessageRequest got result'); + try { + let rsp = result.reply.readString() + hilog.info(DOMAIN, TAG, 'IpcClient result.' + rsp); + } catch (error) { + let e: BusinessError = error as BusinessError; + hilog.error(DOMAIN, TAG, 'rpc read exception fail, error is ' + e); + } + } else { + hilog.error(DOMAIN, TAG, 'RPCTest: sendMessageRequest failed, errCode: ' + result.errCode); + } + }).catch((e: Error) => { + hilog.error(DOMAIN, TAG, 'RPCTest: sendMessageRequest got exception: ' + e); + }).finally (() => { + hilog.info(DOMAIN, TAG, 'RPCTest: sendMessageRequest ends, reclaim parcel'); + data.reclaim(); + reply.reclaim(); + }); + ``` + 源码参考:[IPC_Client.ets](IPC_Client/entry/src/main/ets/client/cnn/IPC_Client.ets); + + 接口参考:[@ohos.rpc](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ipc-kit/js-apis-rpc.md); + + [IPC与RPC通信开发指导](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ipc-rpc-development-guideline-V5); + + * 3.2.3、服务端读取数据: + + (1).创建一个ServiceExtensionAbility,并在onConnect回调中返回一个StubServer对象; + ``` + let globalStubServer: StubServer | undefined + + function getInstance(): StubServer { + if (globalStubServer == undefined) { + globalStubServer = new StubServer('serverStub_App2') + } + return globalStubServer + } + + export default class ServiceExtension extends ServiceExtensionAbility { + onCreate(want: Want) { + hilog.info(DOMAIN, TAG, 'ServiceExtensionAbility onCreate,want param:' + JSON.stringify(want) ?? ' ') + } + + onRequest(want: Want, startId: number) { + hilog.info(DOMAIN, TAG, + 'ServiceExtensionAbility onRequest,want param:' + JSON.stringify(want) ?? "+,startId:" + JSON.stringify(startId)) + } + + onConnect(want: Want): rpc.RemoteObject | Promise { + hilog.info(DOMAIN, TAG, 'ServiceExtensionAbility onConnect,want param:' + JSON.stringify(want) ?? "") + return getInstance() + } + + onDisconnect(want: Want) { + hilog.info(DOMAIN, TAG, 'ServiceExtensionAbility onDisconnect,want param::' + JSON.stringify(want)) + } + + onDestroy() { + hilog.info(DOMAIN, TAG, 'ServiceExtensionAbility onDestroy') + } + } + ``` + + (2).处理MessageRequest请求的接口封装在StubServer里面,在这里接收传递来的数据; + ``` + onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, + options: rpc.MessageOption): boolean | Promise { + hilog.info(DOMAIN, TAG, 'Client Send code:' + code) + let descriptor = this.getDescriptor() + // 进行校验 + if (descriptor != data.readInterfaceToken()) { + hilog.info(DOMAIN, TAG, 'VERIFICATION FAILED'); + return false; + } + + onHandleClientReq(code, data, reply) + return true + } + ``` + + (3).然后经过onHandleClientReq()处理接收的MessageSequence信息,通过不同的code值(Parcelable:1001,ArrayBuffer:1002),分别使用rpc.RemoteObject.readParcelable()和rpc.RemoteObject.readArrayBuffer()获取传递来的对象,通过解析该对象获得客户端传递来的字符串; + ``` + function onHandleClientReq(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence) { + hilog.info(DOMAIN, TAG, 'onHandle Client,code:' + code) + switch (code) { + //接收Parcelable对象 + case 1001: + let parcelable = new MyParcelable(0, ''); + data.readParcelable(parcelable); + dataStatus.updataParcelable(parcelable.str) + hilog.info(DOMAIN, TAG, 'read parcelable: ' + parcelable.str); + break + //接收ArrayBuffer对象 + case 1002: + let result = data.readArrayBuffer(rpc.TypeCode.UINT8_ARRAY); + let decoder = util.TextDecoder.create('utf-8'); + let stringData = decoder.decodeToString(new Uint8Array(result)); + dataStatus.updataArrayBuffer(stringData) + hilog.info(DOMAIN, TAG, 'read arraybuffer: ' + stringData); + break + default: + hilog.info(DOMAIN, TAG, 'onHandleClient-default,code: ' + 1001); + break + } + } + ``` + 源码参考:[IPC_Service.ets](IPC_Service/entry/src/main/ets/serviceextability/IPC_Service.ets); + + 接口参考:[@ohos.rpc](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ipc-kit/js-apis-rpc.md); + + [IPC与RPC通信开发指导](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ipc-rpc-development-guideline-V5); + + +## 四、相关权限 + +由于Service Ability(服务端所在应用)只能被系统应用调用,所以IPC通信机制在单框架上不对普通应用开放,故服务端需要申请系统应用权限。 +(服务端需提供ohos-sdk-full) + +4.1、配置权限:在服务端entry下的module中配置如下权限:[module.json5](IPC_Service/entry/src/main/module.json5),参考第38-45行。 + ``` + "extensionAbilities": [ + //配置IpcServiceExtAbility能力 + { + "name": "IpcServiceExtAbility", + "srcEntry": "./ets/serviceextability/ServiceExtAbility.ets", + "type": "service", + "exported": true, + "description": "service" + } + ] + ``` + +4.2、将“4.1.配置权限”中添加的权限注释起来,然后运行工程,在设备上推送服务端hap。 + +4.3、将服务端需要的系统应用权限注册到设备: + + 4.3.1、 获取签名指纹,及获取install_list_capability.json文件 + + ![](image/获取签名指纹.PNG) + + 4.3.2、 在拉取到本地的install_list_capability.json文件中添加如下权限信息: + + + { + "bundleName": "应用包名", + "app_signature": ["4.3.1获取到的签名指纹"], + //添加系统应用权限 + "allowAppUsePrivilegeExtension": true + }, + +![](image/添加权限.PNG) + + 4.3.3、 将添加权限后的install_list_capability.json文件推送至设备原路径,并重启设备 + + ``` + hdc shell mount -o rw,remount / + hdc file send install_list_capability.json /system/etc/app/install_list_capability.json + hdc shell chmod 777 /system/etc/app/install_list_capability.json + hdc shell reboot + ``` + + +4.4、将“4.1.配置权限”中添加的权限取消注释,然后运行工程,此时的hap具有IpcServiceExtAbility。 + +## 五、依赖 + +不涉及。 + +## 六、约束与限制 + +6.1、本示例仅支持在标准系统上运行。 + +6.2、本示例服务端要求使用OpenHarmony-full-sdk,推荐使用最新版本。[ohos-sdk-full下载链接](https://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist) diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/image/\345\256\242\346\210\267\347\253\257.PNG" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/image/\345\256\242\346\210\267\347\253\257.PNG" new file mode 100644 index 0000000000000000000000000000000000000000..16183e173d4472f21c8c204556a4fddf092c1c27 GIT binary patch literal 64566 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Μ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�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 literal 0 HcmV?d00001 diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/image/\346\234\215\345\212\241\347\253\257.PNG" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/image/\346\234\215\345\212\241\347\253\257.PNG" new file mode 100644 index 0000000000000000000000000000000000000000..0cae7c7921d8de0229cabea95a6de10f7e156210 GIT binary patch literal 62902 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 V9db*f;9J0twx+&DgPKju{{r#O7TW*- literal 0 HcmV?d00001 diff --git "a/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/image/\346\267\273\345\212\240\346\235\203\351\231\220.PNG" "b/code/BasicFeature/Connectivity/IPC&RPC/ArrayBuffer&Paecelable\345\257\271\350\261\241\344\274\240\351\200\222/image/\346\267\273\345\212\240\346\235\203\351\231\220.PNG" new file mode 100644 index 0000000000000000000000000000000000000000..ef25af8f38674f0e2fa4d47a62c5cef313eecb94 GIT binary patch literal 16279 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

fAQ%xPj#IrRdpg~C$x#Q;w!xPmMIug-Sp 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 AqyPW_ literal 0 HcmV?d00001 -- Gitee