From 76b01b2dfd9dbc1537f8629f9a9640c2e4c6f181 Mon Sep 17 00:00:00 2001 From: wangweiyuan Date: Wed, 6 Aug 2025 16:37:17 +0800 Subject: [PATCH] ArkTSRuntime Signed-off-by: wangweiyuan --- .../ArkTSModule/DynamicImport/.gitignore | 12 + .../DynamicImport/AppScope/app.json5 | 25 ++ .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes .../ArkTSModule/DynamicImport/README.md | 125 ++++++++ .../DynamicImport/build-profile.json5 | 85 ++++++ .../DynamicImport/code-linter.json5 | 35 +++ .../DynamicImport/entry/.gitignore | 6 + .../DynamicImport/entry/build-profile.json5 | 80 +++++ .../DynamicImport/entry/hvigorfile.ts | 21 ++ .../DynamicImport/entry/oh-package.json5 | 38 +++ .../entry/src/main/cpp/CMakeLists.txt | 15 + .../entry/src/main/cpp/napi_init.cpp | 55 ++++ .../src/main/cpp/types/libentry/index.d.ts | 18 ++ .../main/cpp/types/libentry/oh-package.json5 | 21 ++ .../DynamicImport/entry/src/main/ets/Calc.ets | 22 ++ .../main/ets/entryability/EntryAbility.ets | 57 ++++ .../entrybackupability/EntryBackupAbility.ets | 27 ++ .../entry/src/main/ets/pages/Calc.ets | 20 ++ .../entry/src/main/ets/pages/Index.ets | 279 ++++++++++++++++++ .../entry/src/main/ets/utils/Calc.ets | 20 ++ .../DynamicImport/entry/src/main/module.json5 | 66 +++++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 128 ++++++++ .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/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 ++++ .../ohosTest/ets/test/DynamicImport.test.ets | 228 ++++++++++++++ .../entry/src/ohosTest/ets/test/List.test.ets | 22 ++ .../entry/src/ohosTest/module.json5 | 27 ++ .../entry/src/test/List.test.ets | 20 ++ .../entry/src/test/LocalUnit.test.ets | 48 +++ .../ArkTSModule/DynamicImport/har1/.gitignore | 6 + .../ArkTSModule/DynamicImport/har1/Index.ets | 20 ++ .../DynamicImport/har1/build-profile.json5 | 46 +++ .../DynamicImport/har1/hvigorfile.ts | 21 ++ .../DynamicImport/har1/oh-package.json5 | 24 ++ .../har1/src/main/ets/components/MainPage.ets | 31 ++ .../har1/src/main/ets/utils/Calc.ets | 27 ++ .../DynamicImport/har1/src/main/module.json5 | 25 ++ .../main/resources/base/element/string.json | 8 + .../src/ohosTest/ets/test/Ability.test.ets | 50 ++++ .../har1/src/ohosTest/ets/test/List.test.ets | 20 ++ .../har1/src/ohosTest/module.json5 | 27 ++ .../DynamicImport/har1/src/test/List.test.ets | 20 ++ .../har1/src/test/LocalUnit.test.ets | 48 +++ .../ArkTSModule/DynamicImport/har2/.gitignore | 6 + .../ArkTSModule/DynamicImport/har2/Index.ets | 20 ++ .../DynamicImport/har2/build-profile.json5 | 46 +++ .../DynamicImport/har2/hvigorfile.ts | 21 ++ .../DynamicImport/har2/oh-package.json5 | 24 ++ .../har2/src/main/ets/components/MainPage.ets | 31 ++ .../har2/src/main/ets/utils/Calc.ets | 22 ++ .../DynamicImport/har2/src/main/module.json5 | 25 ++ .../main/resources/base/element/string.json | 8 + .../src/ohosTest/ets/test/Ability.test.ets | 50 ++++ .../har2/src/ohosTest/ets/test/List.test.ets | 20 ++ .../har2/src/ohosTest/module.json5 | 27 ++ .../DynamicImport/har2/src/test/List.test.ets | 20 ++ .../har2/src/test/LocalUnit.test.ets | 48 +++ .../DynamicImport/harlibrary/.gitignore | 6 + .../DynamicImport/harlibrary/Index.ets | 20 ++ .../harlibrary/build-profile.json5 | 46 +++ .../DynamicImport/harlibrary/hvigorfile.ts | 21 ++ .../DynamicImport/harlibrary/oh-package.json5 | 24 ++ .../src/main/ets/components/MainPage.ets | 31 ++ .../harlibrary/src/main/ets/utils/Calc.ets | 36 +++ .../harlibrary/src/main/module.json5 | 25 ++ .../main/resources/base/element/string.json | 8 + .../src/ohosTest/ets/test/Ability.test.ets | 50 ++++ .../src/ohosTest/ets/test/List.test.ets | 20 ++ .../harlibrary/src/ohosTest/module.json5 | 27 ++ .../harlibrary/src/test/List.test.ets | 20 ++ .../harlibrary/src/test/LocalUnit.test.ets | 48 +++ .../DynamicImport/hvigor/hvigor-config.json5 | 37 +++ .../ArkTSModule/DynamicImport/hvigorfile.ts | 21 ++ .../DynamicImport/myHar/.gitignore | 6 + .../ArkTSModule/DynamicImport/myHar/Index.ets | 24 ++ .../DynamicImport/myHar/build-profile.json5 | 46 +++ .../DynamicImport/myHar/hvigorfile.ts | 21 ++ .../DynamicImport/myHar/oh-package.json5 | 24 ++ .../src/main/ets/components/MainPage.ets | 31 ++ .../DynamicImport/myHar/src/main/module.json5 | 25 ++ .../main/resources/base/element/string.json | 8 + .../src/ohosTest/ets/test/Ability.test.ets | 50 ++++ .../myHar/src/ohosTest/ets/test/List.test.ets | 20 ++ .../myHar/src/ohosTest/module.json5 | 27 ++ .../myHar/src/test/List.test.ets | 20 ++ .../myHar/src/test/LocalUnit.test.ets | 48 +++ .../DynamicImport/myHsp/.gitignore | 6 + .../ArkTSModule/DynamicImport/myHsp/Index.ets | 22 ++ .../DynamicImport/myHsp/build-profile.json5 | 43 +++ .../DynamicImport/myHsp/hvigorfile.ts | 21 ++ .../DynamicImport/myHsp/oh-package.json5 | 26 ++ .../myHsp/src/main/ets/pages/Index.ets | 32 ++ .../myHsp/src/main/ets/utils/Calc.ets | 18 ++ .../DynamicImport/myHsp/src/main/module.json5 | 28 ++ .../main/resources/base/element/string.json | 8 + .../resources/base/profile/main_pages.json | 5 + .../src/ohosTest/ets/test/Ability.test.ets | 50 ++++ .../myHsp/src/ohosTest/ets/test/List.test.ets | 20 ++ .../myHsp/src/ohosTest/module.json5 | 27 ++ .../myHsp/src/test/List.test.ets | 20 ++ .../myHsp/src/test/LocalUnit.test.ets | 48 +++ .../DynamicImport/oh-package.json5 | 25 ++ .../ArkTSModule/DynamicImport/ohosTest.md | 27 ++ .../screenshots/DynamicImport.png | Bin 0 -> 82193 bytes .../JsApisLoadNativeModule/.gitignore | 12 + .../JsApisLoadNativeModule/AppScope/app.json5 | 25 ++ .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes .../JsApisLoadNativeModule/README.md | 75 +++++ .../build-profile.json5 | 57 ++++ .../JsApisLoadNativeModule/code-linter.json5 | 35 +++ .../JsApisLoadNativeModule/entry/.gitignore | 6 + .../entry/build-profile.json5 | 69 +++++ .../entry/hvigorfile.ts | 21 ++ .../entry/oh-package.json5 | 28 ++ .../entry/src/main/cpp/CMakeLists.txt | 15 + .../entry/src/main/cpp/napi_init.cpp | 62 ++++ .../src/main/cpp/types/libentry/index.d.ts | 18 ++ .../main/cpp/types/libentry/oh-package.json5 | 21 ++ .../main/ets/entryability/EntryAbility.ets | 56 ++++ .../entrybackupability/EntryBackupAbility.ets | 27 ++ .../entry/src/main/ets/pages/Index.ets | 52 ++++ .../entry/src/main/module.json5 | 66 +++++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 16 + .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/en_US/element/string.json | 16 + .../main/resources/zh_CN/element/string.json | 16 + .../entry/src/mock/mock-config.json5 | 17 ++ .../src/ohosTest/ets/test/Ability.test.ets | 50 ++++ .../ets/test/JsApisLoadNativeModule.test.ets | 56 ++++ .../entry/src/ohosTest/ets/test/List.test.ets | 22 ++ .../entry/src/ohosTest/module.json5 | 27 ++ .../entry/src/test/List.test.ets | 20 ++ .../entry/src/test/LocalUnit.test.ets | 48 +++ .../hvigor/hvigor-config.json5 | 37 +++ .../JsApisLoadNativeModule/hvigorfile.ts | 21 ++ .../JsApisLoadNativeModule/oh-package.json5 | 25 ++ .../JsApisLoadNativeModule/ohosTest.md | 9 + .../screenshots/JsApisLoadNativeModule1.png | Bin 0 -> 21246 bytes .../screenshots/JsApisLoadNativeModule2.png | Bin 0 -> 24764 bytes .../screenshots/JsApisLoadNativeModule3.png | Bin 0 -> 27099 bytes .../ArkTSModule/LazyImport/.gitignore | 12 + .../ArkTSModule/LazyImport/AppScope/app.json5 | 25 ++ .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes .../ArkTSModule/LazyImport/README.md | 86 ++++++ .../LazyImport/build-profile.json5 | 60 ++++ .../ArkTSModule/LazyImport/code-linter.json5 | 35 +++ .../ArkTSModule/LazyImport/entry/.gitignore | 6 + .../LazyImport/entry/build-profile.json5 | 43 +++ .../LazyImport/entry/hvigorfile.ts | 21 ++ .../LazyImport/entry/oh-package.json5 | 25 ++ .../main/ets/entryability/EntryAbility.ets | 57 ++++ .../entrybackupability/EntryBackupAbility.ets | 27 ++ .../LazyImport/entry/src/main/ets/pages/1.ets | 19 ++ .../LazyImport/entry/src/main/ets/pages/2.ets | 21 ++ .../LazyImport/entry/src/main/ets/pages/3.ets | 21 ++ .../LazyImport/entry/src/main/ets/pages/A.ets | 23 ++ .../entry/src/main/ets/pages/A_ns.ets | 21 ++ .../LazyImport/entry/src/main/ets/pages/B.ets | 25 ++ .../LazyImport/entry/src/main/ets/pages/C.ets | 19 ++ .../entry/src/main/ets/pages/fail_example.ets | 34 +++ .../entry/src/main/ets/pages/index.ets | 23 ++ .../entry/src/main/ets/pages/innerinner.ets | 19 ++ .../entry/src/main/ets/pages/main.ets | 99 +++++++ .../entry/src/main/ets/pages/middle.ets | 20 ++ .../entry/src/main/ets/pages/mod1.ets | 21 ++ .../entry/src/main/ets/pages/mod2.ets | 19 ++ .../entry/src/main/ets/pages/outter1.ets | 19 ++ .../entry/src/main/ets/pages/outter2.ets | 22 ++ .../entry/src/main/ets/pages/outter3.ets | 20 ++ .../entry/src/main/ets/pages/under1.ets | 16 + .../entry/src/main/ets/util/CommonButton.ets | 48 +++ .../entry/src/main/ets/util/resource.ets | 27 ++ .../LazyImport/entry/src/main/module.json5 | 66 +++++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 16 + .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/dark/element/color.json | 8 + .../main/resources/en_US/element/string.json | 16 + .../main/resources/zh_CN/element/string.json | 16 + .../entry/src/mock/mock-config.json5 | 17 ++ .../src/ohosTest/ets/test/Ability.test.ets | 50 ++++ .../src/ohosTest/ets/test/LazyImport.test.ets | 71 +++++ .../entry/src/ohosTest/ets/test/List.test.ets | 22 ++ .../entry/src/ohosTest/module.json5 | 27 ++ .../LazyImport/entry/src/test/List.test.ets | 20 ++ .../entry/src/test/LocalUnit.test.ets | 48 +++ .../LazyImport/hvigor/hvigor-config.json5 | 37 +++ .../ArkTSModule/LazyImport/hvigorfile.ts | 21 ++ .../ArkTSModule/LazyImport/oh-package.json5 | 25 ++ .../ArkTSModule/LazyImport/ohosTest.md | 12 + .../LazyImport/screenshots/LazyImport1.png | Bin 0 -> 51034 bytes .../LazyImport/screenshots/LazyImport2.png | Bin 0 -> 57751 bytes .../ModuleLoadingSideEffects/.gitignore | 12 + .../AppScope/app.json5 | 25 ++ .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes .../ModuleLoadingSideEffects/README.md | 79 +++++ .../build-profile.json5 | 57 ++++ .../code-linter.json5 | 35 +++ .../ModuleLoadingSideEffects/entry/.gitignore | 6 + .../entry/build-profile.json5 | 43 +++ .../entry/hvigorfile.ts | 21 ++ .../entry/oh-package.json5 | 25 ++ .../main/ets/entryability/EntryAbility.ets | 57 ++++ .../entrybackupability/EntryBackupAbility.ets | 27 ++ .../entry/src/main/ets/pages/Index.ets | 42 +++ .../LazyImportChangeExecutionOrder/module.ets | 20 ++ .../moduleOptimize.ets | 20 ++ .../moduleUseGlobalVar.ets | 73 +++++ .../ets/pages/ModifyGlobalObject/main.ets | 74 +++++ .../ets/pages/ModifyGlobalObject/module.ets | 20 ++ .../ModifyGlobalObject/moduleOptimize.ets | 20 ++ .../ModifyGlobalObject/moduleUseGlobalVar.ets | 23 ++ .../moduleUseGlobalVarOptimize.ets | 22 ++ .../ModifyGlobalObject/sideEffectModule.ets | 20 ++ .../sideEffectModuleOptimize.ets | 20 ++ .../ModifyTheApplicationLevelArkUI/Index.ets | 67 +++++ .../ModifyTheApplicationLevelArkUI/module.ets | 20 ++ .../moduleOptimize.ets | 20 ++ .../ets/pages/ModifyingGlobalVariables/a.ets | 22 ++ .../ets/pages/ModifyingGlobalVariables/b.ets | 22 ++ .../pages/ModifyingGlobalVariables/main.ets | 75 +++++ .../modifyPrototype.ts | 22 ++ .../ets/pages/TopCodeModification/main.ets | 67 +++++ .../ets/pages/TopCodeModification/module.ets | 24 ++ .../TopCodeModification/topCodeModule.ets | 18 ++ .../topCodeModuleOptimize.ets | 16 + .../entry/src/main/ets/util/CommonButton.ets | 46 +++ .../entry/src/main/ets/util/resource.ets | 25 ++ .../entry/src/main/module.json5 | 66 +++++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 28 ++ .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 10 + .../main/resources/dark/element/color.json | 8 + .../entry/src/mock/mock-config.json5 | 17 ++ .../src/ohosTest/ets/test/Ability.test.ets | 50 ++++ .../entry/src/ohosTest/ets/test/List.test.ets | 22 ++ .../test/ModuleLoadingSideEffects.test.ets | 156 ++++++++++ .../entry/src/ohosTest/module.json5 | 27 ++ .../entry/src/test/List.test.ets | 20 ++ .../entry/src/test/LocalUnit.test.ets | 48 +++ .../hvigor/hvigor-config.json5 | 37 +++ .../ModuleLoadingSideEffects/hvigorfile.ts | 21 ++ .../ModuleLoadingSideEffects/oh-package.json5 | 25 ++ .../ModuleLoadingSideEffects/ohosTest.md | 12 + .../screenshots/ModuleLoadingSideEffects.png | Bin 0 -> 54330 bytes .../ArkTSModule/ModulePrinciple/.gitignore | 12 + .../ModulePrinciple/AppScope/app.json5 | 25 ++ .../resources/base/element/string.json | 8 + .../resources/base/media/background.png | Bin 0 -> 91942 bytes .../resources/base/media/foreground.png | Bin 0 -> 15325 bytes .../resources/base/media/layered_image.json | 7 + .../ArkTSModule/ModulePrinciple/README.md | 83 ++++++ .../ModulePrinciple/build-profile.json5 | 58 ++++ .../ModulePrinciple/code-linter.json5 | 47 +++ .../ModulePrinciple/entry/.gitignore | 6 + .../ModulePrinciple/entry/build-profile.json5 | 58 ++++ .../ModulePrinciple/entry/hvigorfile.ts | 21 ++ .../entry/obfuscation-rules.txt | 23 ++ .../ModulePrinciple/entry/oh-package.json5 | 26 ++ .../entry/src/main/cpp/CMakeLists.txt | 15 + .../entry/src/main/cpp/napi_init.cpp | 67 +++++ .../src/main/cpp/types/libentry/Index.d.ts | 16 + .../main/cpp/types/libentry/oh-package.json5 | 21 ++ .../main/ets/entryability/EntryAbility.ets | 59 ++++ .../entrybackupability/EntryBackupAbility.ets | 31 ++ .../main/ets/pages/CounterExample/test1.ets | 18 ++ .../main/ets/pages/CounterExample/test2.ets | 44 +++ .../entry/src/main/ets/pages/Index.ets | 40 +++ .../entry/src/main/ets/pages/example.json | 3 + .../entry/src/main/ets/pages/test.ets | 40 +++ .../entry/src/main/module.json5 | 65 ++++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/float.json | 8 + .../main/resources/base/element/string.json | 20 ++ .../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 .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/dark/element/color.json | 8 + .../entry/src/mock/Libentry.mock.ets | 22 ++ .../entry/src/mock/mock-config.json5 | 20 ++ .../src/ohosTest/ets/test/Ability.test.ets | 50 ++++ .../entry/src/ohosTest/ets/test/List.test.ets | 20 ++ .../ets/test/ModulePrinciple.test.ets | 58 ++++ .../entry/src/ohosTest/module.json5 | 26 ++ .../entry/src/test/List.test.ets | 20 ++ .../entry/src/test/LocalUnit.test.ets | 48 +++ .../hvigor/hvigor-config.json5 | 38 +++ .../ArkTSModule/ModulePrinciple/hvigorfile.ts | 21 ++ .../ModulePrinciple/oh-package.json5 | 25 ++ .../ArkTSModule/ModulePrinciple/ohosTest.md | 10 + .../screenshots/ModulePrinciple.png | Bin 0 -> 73535 bytes .../StaticImportNativeModule/.gitignore | 12 + .../AppScope/app.json5 | 25 ++ .../resources/base/element/string.json | 8 + .../resources/base/media/app_background.png | Bin 0 -> 91942 bytes .../resources/base/media/app_foreground.png | Bin 0 -> 15325 bytes .../base/media/app_layered_image.json | 7 + .../StaticImportNativeModule/README.md | 97 ++++++ .../build-profile.json5 | 57 ++++ .../code-linter.json5 | 47 +++ .../StaticImportNativeModule/entry/.gitignore | 6 + .../entry/build-profile.json5 | 58 ++++ .../entry/hvigorfile.ts | 21 ++ .../entry/obfuscation-rules.txt | 23 ++ .../entry/oh-package.json5 | 26 ++ .../entry/src/main/cpp/CMakeLists.txt | 15 + .../entry/src/main/cpp/napi_init.cpp | 67 +++++ .../src/main/cpp/types/libentry/Index.d.ts | 16 + .../main/cpp/types/libentry/oh-package.json5 | 21 ++ .../main/ets/entryability/EntryAbility.ets | 59 ++++ .../entrybackupability/EntryBackupAbility.ets | 31 ++ .../pages/DirectImport/DefaultImport/test.ets | 39 +++ .../pages/DirectImport/NamedImport/test.ets | 39 +++ .../DirectImport/NamespaceImport/test.ets | 39 +++ .../pages/DynamicImport/DirectImport/test.ets | 39 +++ .../IndirectImport/NegativeExample.ets | 24 ++ .../DynamicImport/IndirectImport/test1.ets | 17 ++ .../DynamicImport/IndirectImport/test2.ets | 41 +++ .../entry/src/main/ets/pages/Index.ets | 70 +++++ .../ExportNamedAndImport/test1.ets | 17 ++ .../ExportNamedAndImport/test2.ets | 32 ++ .../NegativeExample.ets | 23 ++ .../ExportNamespaceAndImport/test1.ets | 16 + .../ExportNamespaceAndImport/test2.ets | 37 +++ .../entry/src/main/ets/util/CommonButton.ets | 48 +++ .../entry/src/main/module.json5 | 66 +++++ .../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 .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 12 + .../main/resources/dark/element/color.json | 8 + .../src/ohosTest/ets/test/Ability.test.ets | 50 ++++ .../entry/src/ohosTest/ets/test/List.test.ets | 20 ++ .../test/StaticImportNativeModule.test.ets | 86 ++++++ .../entry/src/ohosTest/module.json5 | 27 ++ .../hvigor/hvigor-config.json5 | 37 +++ .../StaticImportNativeModule/hvigorfile.ts | 21 ++ .../StaticImportNativeModule/oh-package.json5 | 25 ++ .../StaticImportNativeModule/ohosTest.md | 14 + .../screenshots/StaticImportNativeModule1.png | Bin 0 -> 70764 bytes .../screenshots/StaticImportNativeModule2.png | Bin 0 -> 30117 bytes 377 files changed, 10508 insertions(+) create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/AppScope/app.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/AppScope/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/AppScope/resources/base/media/app_icon.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/README.md create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/code-linter.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/CMakeLists.txt create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/napi_init.cpp create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/types/libentry/index.d.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/types/libentry/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/Calc.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/pages/Calc.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/pages/Index.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/utils/Calc.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/element/color.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/media/background.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/media/foreground.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/dark/element/color.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/mock/mock-config.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/ets/test/DynamicImport.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/test/LocalUnit.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/Index.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/ets/components/MainPage.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/ets/utils/Calc.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/ohosTest/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/test/LocalUnit.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/Index.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/ets/components/MainPage.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/ets/utils/Calc.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/ohosTest/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/test/LocalUnit.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/Index.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/ets/components/MainPage.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/ets/utils/Calc.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/ohosTest/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/test/LocalUnit.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/hvigor/hvigor-config.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/Index.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/main/ets/components/MainPage.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/main/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/main/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/ohosTest/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/test/LocalUnit.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/Index.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/ets/pages/Index.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/ets/utils/Calc.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/resources/base/profile/main_pages.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/ohosTest/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/test/LocalUnit.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/ohosTest.md create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/screenshots/DynamicImport.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/AppScope/app.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/AppScope/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/AppScope/resources/base/media/app_icon.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/README.md create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/code-linter.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/CMakeLists.txt create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/napi_init.cpp create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/types/libentry/index.d.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/types/libentry/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/ets/pages/Index.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/element/color.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/media/background.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/media/foreground.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/en_US/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/zh_CN/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/mock/mock-config.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/ets/test/JsApisLoadNativeModule.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/test/LocalUnit.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/hvigor/hvigor-config.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/ohosTest.md create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/screenshots/JsApisLoadNativeModule1.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/screenshots/JsApisLoadNativeModule2.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/screenshots/JsApisLoadNativeModule3.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/AppScope/app.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/AppScope/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/AppScope/resources/base/media/app_icon.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/README.md create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/code-linter.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/1.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/2.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/3.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/A.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/A_ns.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/B.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/C.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/fail_example.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/index.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/innerinner.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/main.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/middle.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/mod1.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/mod2.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/outter1.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/outter2.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/outter3.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/under1.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/util/CommonButton.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/util/resource.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/element/color.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/media/background.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/media/foreground.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/dark/element/color.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/en_US/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/zh_CN/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/mock/mock-config.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/ets/test/LazyImport.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/test/LocalUnit.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/hvigor/hvigor-config.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/ohosTest.md create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/screenshots/LazyImport1.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/screenshots/LazyImport2.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/AppScope/app.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/AppScope/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/AppScope/resources/base/media/app_icon.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/README.md create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/code-linter.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/Index.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/LazyImportChangeExecutionOrder/module.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/LazyImportChangeExecutionOrder/moduleOptimize.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/LazyImportChangeExecutionOrder/moduleUseGlobalVar.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/main.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/module.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/moduleOptimize.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/moduleUseGlobalVar.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/moduleUseGlobalVarOptimize.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/sideEffectModule.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/sideEffectModuleOptimize.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyTheApplicationLevelArkUI/Index.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyTheApplicationLevelArkUI/module.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyTheApplicationLevelArkUI/moduleOptimize.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/a.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/b.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/main.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/modifyPrototype.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/main.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/module.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/topCodeModule.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/topCodeModuleOptimize.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/util/CommonButton.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/util/resource.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/element/color.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/media/background.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/media/foreground.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/dark/element/color.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/mock/mock-config.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/ets/test/ModuleLoadingSideEffects.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/test/LocalUnit.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/hvigor/hvigor-config.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/ohosTest.md create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/screenshots/ModuleLoadingSideEffects.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/AppScope/app.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/AppScope/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/AppScope/resources/base/media/background.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/AppScope/resources/base/media/foreground.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/AppScope/resources/base/media/layered_image.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/README.md create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/code-linter.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/obfuscation-rules.txt create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/CMakeLists.txt create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/napi_init.cpp create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/types/libentry/Index.d.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/types/libentry/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/CounterExample/test1.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/CounterExample/test2.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/Index.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/example.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/element/color.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/element/float.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/media/background.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/media/foreground.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/dark/element/color.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/mock/Libentry.mock.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/mock/mock-config.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/ets/test/ModulePrinciple.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/test/LocalUnit.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/hvigor/hvigor-config.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/ohosTest.md create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/screenshots/ModulePrinciple.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/app.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/resources/base/media/app_background.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/resources/base/media/app_foreground.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/resources/base/media/app_layered_image.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/README.md create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/code-linter.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/.gitignore create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/build-profile.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/obfuscation-rules.txt create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/CMakeLists.txt create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/napi_init.cpp create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/types/libentry/Index.d.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/types/libentry/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DirectImport/DefaultImport/test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DirectImport/NamedImport/test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DirectImport/NamespaceImport/test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/DirectImport/test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/IndirectImport/NegativeExample.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/IndirectImport/test1.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/IndirectImport/test2.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/Index.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamedAndImport/test1.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamedAndImport/test2.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamespaceAndImport/NegativeExample.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamespaceAndImport/test1.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamespaceAndImport/test2.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/util/CommonButton.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/element/color.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/element/float.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/element/string.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/media/background.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/media/foreground.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/dark/element/color.json create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/ets/test/StaticImportNativeModule.test.ets create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/module.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/hvigor/hvigor-config.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/hvigorfile.ts create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/oh-package.json5 create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/ohosTest.md create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/screenshots/StaticImportNativeModule1.png create mode 100644 ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/screenshots/StaticImportNativeModule2.png diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/.gitignore new file mode 100644 index 0000000..d2ff201 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/.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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/AppScope/app.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/AppScope/app.json5 new file mode 100644 index 0000000..78ddc43 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/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.dynamicimport", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name" + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/AppScope/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/AppScope/resources/base/element/string.json new file mode 100644 index 0000000..5b7aa33 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "DynamicImport" + } + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/AppScope/resources/base/media/app_icon.png b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/README.md b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/README.md new file mode 100644 index 0000000..2cb29e3 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/README.md @@ -0,0 +1,125 @@ +# ArkTS动态加载 + +### 介绍 + +动态import支持条件延迟加载,支持部分反射功能,可以提升页面的加载速度;动态import支持加载HSP模块/HAR模块/OHPM包/Native库等,并且HAR模块间只有变量动态import时还可以进行模块解耦 + +本示例主要展示了动态加载的业务拓展场景介绍、动态加载常量表达式、动态加载变量表达式以及HAR模块间动态加载依赖解耦这些场景。该工程中展示的代码详细描述可查如下链接中业务扩展场景介绍部分。 + +- [动态加载](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/arkts-utils/arkts-dynamic-import.md) + +### 效果预览 + +| 执行结果图 | +| ---------------------------------------------------------------- | +| | + +### 使用说明 + +1. 运行Index主界面。 +2. 页面呈现上述执行结果图效果,分别点击ListItem组件可以执行对应文本内容的操作,然后在控制台中打印出对应日志。 +3. 运行测试用例DynamicImport.test.ets文件对页面代码进行测试可以全部通过。 + +### 工程目录 + +``` +entry/src/ + ├── main + │ ├── cpp + │ │ ├── types + │ │ │ ├── libentry + │ │ │ │ ├── Index.d.ts // 提供JS侧的接口方法 + │ │ │ │ ├── oh-package.json5 // 将index.d.ts与cpp文件关联 + │ │ ├── CMakeLists.txt // 配置CMake打包参数 + │ │ ├── napi_init.cpp + │ ├── ets + │ │ ├── entryability + │ │ ├── entrybackupability + │ │ ├── pages + │ │ │ ├── Index.ets // 动态加载示例代码 + │ │ │ └── Calc.ets + │ │ ├── utils + │ │ └── Calc.ets + │ │ ├── Calc.ets + │ ├── module.json5 + │ └── resources + ├── ohosTest + │ ├── ets + │ │ └── test + │ │ ├── Ability.test.ets + │ │ ├── DynamicImport.test.ets // 自动化测试代码 + │ │ └── List.test.ets + har1 // har1模块函数实现 + ├── src + │ ├── main + │ │ ├── ets + │ │ │ ├── utils + │ │ │ │ └── Calc.ets + │ │ │ └── components + │ │ │ │ └── MainPage.ets + ├── Index.ets + har2 // har2模块函数实现 + ├── src + │ ├── main + │ │ ├── ets + │ │ │ ├── utils + │ │ │ │ └── Calc.ets + │ │ │ └── components + │ │ │ │ └── MainPage.ets + ├── Index.ets + harlibrary // harlibrary模块函数实现 + ├── src + │ ├── main + │ │ ├── ets + │ │ │ ├── utils + │ │ │ │ └── Calc.ets + │ │ │ └── components + │ │ │ │ └── MainPage.ets + ├── Index.ets + myHar // myHar模块函数实现 + ├── src + │ ├── main + │ │ ├── ets + │ │ │ └── components + │ │ │ │ └── MainPage.ets + ├── Index.ets + myHsp // myHsp模块函数实现 + ├── src + │ ├── main + │ │ ├── ets + │ │ │ ├── pages + │ │ │ │ └── Index.ets + │ │ │ └── utils + │ │ │ │ └── Calc.ets + ├── Index.ets +``` + +### 相关权限 + +不涉及。 + +### 依赖 + +不涉及。 + +### 约束与限制 + +1. 本示例仅支持标准系统上运行,支持设备:华为手机。 + +2. HarmonyOS系统:HarmonyOS 6.0.0及以上。 + +3. DevEco Studio版本:DevEco Studio 6.0.0及以上。 + +4. HarmonyOS SDK版本:HarmonyOS 6.0.0及以上。 + +### 下载 + +如需单独下载本工程,执行如下命令: + +``` +git init +git config core.sparsecheckout true +echo ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport > .git/info/sparse-checkout +git remote add origin https://gitee.com/harmonyos_samples/guide-snippets.git +git pull origin master +``` diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/build-profile.json5 new file mode 100644 index 0000000..b3de06e --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/build-profile.json5 @@ -0,0 +1,85 @@ +/* + * 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": "6.0.0(20)", + "targetSdkVersion": "6.0.0(20)", + "runtimeOS": "HarmonyOS", + "buildOption": { + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + } + } + ], + "buildModeSet": [ + { + "name": "debug", + }, + { + "name": "release" + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + }, + { + "name": "harlibrary", + "srcPath": "./harlibrary", + }, + { + "name": "myHar", + "srcPath": "./myHar", + }, + { + "name": "myHsp", + "srcPath": "./myHsp", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + }, + { + "name": "har1", + "srcPath": "./har1", + }, + { + "name": "har2", + "srcPath": "./har2", + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/code-linter.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/code-linter.json5 new file mode 100644 index 0000000..2858646 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/code-linter.json5 @@ -0,0 +1,35 @@ +/* + * 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. + */ + +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/.gitignore new file mode 100644 index 0000000..e2713a2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/build-profile.json5 new file mode 100644 index 0000000..25b5062 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/build-profile.json5 @@ -0,0 +1,80 @@ +/* + * 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": { + "arkOptions": { + "runtimeOnly": { + "packages": [ + "myhar", + // 仅用于使用变量动态import其他模块名场景,静态import或常量动态import无需配置。 + "myhsp", + // 仅用于使用变量动态import其他模块名场景,静态import或常量动态import无需配置。 + "@ohos/hypium", + "@ohos/crypto-js", + "libentry.so", + "har1", + "har2" + ], + // 配置本模块变量动态import其他模块名,要求与dependencies中配置的名字一致。 + "sources": [ + // 仅用于使用变量动态import模块自己单文件场景,静态import或常量动态import无需配置。 + "./src/main/ets/utils/Calc.ets", + "./src/main/ets/Calc.ets" + ] + // 配置本模块变量动态import自己的文件路径,路径相对于当前build-profile.json5文件。 + } + }, + "externalNativeOptions": { + "path": "./src/main/cpp/CMakeLists.txt", + "arguments": "", + "cppFlags": "", + "abiFilters": [ + "arm64-v8a", + "x86_64" + ] + }, + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + }, + "nativeLib": { + "debugSymbol": { + "strip": true, + "exclude": [] + } + } + } + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/hvigorfile.ts new file mode 100644 index 0000000..e4f43d5 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/oh-package.json5 new file mode 100644 index 0000000..76e9a20 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/oh-package.json5 @@ -0,0 +1,38 @@ +/* + * 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": { + "harlibrary": "file:../harlibrary", + "myhar": "file:../myHar", + //HAP常量动态import HAR模块名 HAP常量动态import HAR模块文件路径 + "myhsp": "file:../myHsp", + //HAP常量动态import HSP模块名 HAP常量动态import HSP模块名文件路径 + "@ohos/crypto-js": "2.0.3-rc.0", + //HAP常量动态import远程HAR模块名 + "@ohos/hypium": "1.0.19", + //HAP常量动态import ohpm包 + "libentry.so": "file:./src/main/cpp/types/libentry", + //HAP常量动态import自己的Native库 + "har1": "file:../har1", + "har2": "file:../har2" + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/CMakeLists.txt b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/CMakeLists.txt new file mode 100644 index 0000000..9042897 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/CMakeLists.txt @@ -0,0 +1,15 @@ +# the minimum version of CMake. +cmake_minimum_required(VERSION 3.5.0) +project(DynamicImport) + +set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}) + +if(DEFINED PACKAGE_FIND_FILE) + include(${PACKAGE_FIND_FILE}) +endif() + +include_directories(${NATIVERENDER_ROOT_PATH} + ${NATIVERENDER_ROOT_PATH}/include) + +add_library(entry SHARED napi_init.cpp) +target_link_libraries(entry PUBLIC libace_napi.z.so) \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/napi_init.cpp b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/napi_init.cpp new file mode 100644 index 0000000..3b0593c --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/napi_init.cpp @@ -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. + */ + +#include "napi/native_api.h" + +static napi_value Add(napi_env env, napi_callback_info info) +{ + size_t argc = 2; + napi_value args[2] = {nullptr}; + napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); + napi_valuetype valuetype0; + napi_typeof(env, args[0], &valuetype0); + napi_valuetype valuetype1; + napi_typeof(env, args[1], &valuetype1); + double value0; + napi_get_value_double(env, args[0], &value0); + double value1; + napi_get_value_double(env, args[1], &value1); + napi_value sum; + napi_create_double(env, value0 + value1, &sum); + return sum; +} + +EXTERN_C_START +static napi_value Init(napi_env env, napi_value exports) +{ + napi_property_descriptor desc[] = {{"add", nullptr, Add, nullptr, nullptr, nullptr, napi_default, nullptr}}; + napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc); + return exports; +} +EXTERN_C_END + +static napi_module demoModule = { + .nm_version = 1, + .nm_flags = 0, + .nm_filename = nullptr, + .nm_register_func = Init, + .nm_modname = "entry", + .nm_priv = ((void *)0), + .reserved = {0}, +}; + +extern "C" __attribute__((constructor)) void RegisterEntryModule(void) { napi_module_register(&demoModule); } diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/types/libentry/index.d.ts b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/types/libentry/index.d.ts new file mode 100644 index 0000000..914e7b4 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/types/libentry/index.d.ts @@ -0,0 +1,18 @@ +/* + * 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. + */ + +// [Start hap_const_dynamic_import_native] +export const add: (a: number, b: number) => number; +// [End hap_const_dynamic_import_native] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/types/libentry/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/types/libentry/oh-package.json5 new file mode 100644 index 0000000..2826cc7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/cpp/types/libentry/oh-package.json5 @@ -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. + */ + +{ + "name": "libentry.so", + "types": "./index.d.ts", + "version": "1.0.0", + "description": "Please describe the basic information." +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/Calc.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/Calc.ets new file mode 100644 index 0000000..e9a6914 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/Calc.ets @@ -0,0 +1,22 @@ +/* + * 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. + */ + +// [Start hap_const_dynamic_import_add] +export function add(a: number, b: number): number { + let c = a + b; + console.info('DynamicImport I am a HAP, %d + %d = %d', a, b, c); + return c; +} +// [End hap_const_dynamic_import_add] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/entryability/EntryAbility.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 0000000..edc2839 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,57 @@ +/* + * 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'; + +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(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy(): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 0000000..b1e2129 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,27 @@ +/* + * 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 { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(0x0000, 'testTag', 'onBackup ok'); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/pages/Calc.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/pages/Calc.ets new file mode 100644 index 0000000..3cba60b --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/pages/Calc.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. + */ + +export function add(a: number, b: number): number { + let c = a + b; + console.info('DynamicImport I am a HAP, %d + %d = %d', a, b, c); + return c; +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/pages/Index.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/pages/Index.ets new file mode 100644 index 0000000..1ba6184 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,279 @@ +/* + * 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 '@ohos.hilog'; + +function resourceToString(resource: Resource) { + return getContext().resourceManager.getStringSync(resource); +} + +@Entry +@Component +struct Index { + @State message: string = 'DynamicImport'; + private items: string[] = [ + resourceToString($r('app.string.business_expansion_scenario')), + resourceToString($r('app.string.dynamic_import_HAR_name')), + resourceToString($r('app.string.dynamic_import_HAR_path')), + resourceToString($r('app.string.dynamic_import_HSP_name')), + resourceToString($r('app.string.dynamic_import_HSP_path')), + resourceToString($r('app.string.dynamic_import_remote_HAR_name')), + resourceToString($r('app.string.dynamic_import_ohpm')), + resourceToString($r('app.string.dynamic_import_file')), + resourceToString($r('app.string.dynamic_import_native')), + resourceToString($r('app.string.dynamic_import_system_app')), + resourceToString($r('app.string.dynamic_import_ohos_curves')), + resourceToString($r('app.string.dynamic_import_ohos_matrix4')), + resourceToString($r('app.string.dynamic_import_ohos_hilog')), + resourceToString($r('app.string.dynamic_import_module_myhar')), + resourceToString($r('app.string.dynamic_import_module_file')), + resourceToString($r('app.string.dynamic_import_HAR_name_variable')), + resourceToString($r('app.string.dynamic_import_HSP_name_variable')), + resourceToString($r('app.string.dynamic_import_remote_HAR_name_variable')), + resourceToString($r('app.string.dynamic_import_ohpm_variable')), + resourceToString($r('app.string.dynamic_import_file_variable')), + resourceToString($r('app.string.dynamic_import_native_variable')), + resourceToString($r('app.string.dynamic_import_system_app_variable')), + resourceToString($r('app.string.dynamic_import_ohos_curves_variable')), + resourceToString($r('app.string.dynamic_import_ohos_matrix4_variable')), + resourceToString($r('app.string.dynamic_import_ohos_hilog_variable')), + resourceToString($r('app.string.dynamic_import_HAR')) + ] + + build() { + Column() { + Text(this.message) + .fontSize(30) + List({ space: '10vp' }) { + ForEach(this.items, (item: ResourceStr) => { + ListItem() { + Text(item) + .width('100%') + .margin({ bottom: 2 }) + .height(60) + .textAlign(TextAlign.Center) + .backgroundColor(Color.White) + .fontWeight(FontWeight.Bold) + .borderRadius(30) + .fontSize(16) + .onClick(() => { + if (item === resourceToString($r('app.string.business_expansion_scenario'))) { + // [Start dynamic_load_har_module_reflect_call] + import('harlibrary').then((ns: ESObject) => { + ns.Calc.staticAdd(8, 9); // 调用静态成员函数staticAdd() + let calc: ESObject = new ns.Calc(); // 实例化类Calc + calc.instanceAdd(10, 11); // 调用成员函数instanceAdd() + ns.addHarlibrary(6, 7); // 调用全局方法addHarlibrary() + + // 使用类、成员函数和方法的字符串名字进行反射调用 + let className = 'Calc'; + let methodName = 'instanceAdd'; + let staticMethod = 'staticAdd'; + let functionName = 'addHarlibrary'; + ns[className][staticMethod](12, 13); // 调用静态成员函数staticAdd() + let calc1: ESObject = new ns[className](); // 实例化类Calc + calc1[methodName](14, 15); // 调用成员函数instanceAdd() + ns[functionName](16, 17); // 调用全局方法addHarlibrary() + }) + // [End dynamic_load_har_module_reflect_call] + } else if (item === resourceToString($r('app.string.dynamic_import_HAR_name'))) { + // [Start const_dynamic_import_har_name] + //HAP常量动态import HAR模块名 + import('myhar').then((ns: ESObject) => { + console.info(ns.add(3, 5)); + }) + // [End const_dynamic_import_har_name] + } else if (item === resourceToString($r('app.string.dynamic_import_HAR_path'))) { + // [Start const_dynamic_import_har_path] + // HAP常量动态import HAR模块文件路径 + import('myhar/Index').then((ns: ESObject) => { + console.info(ns.add(3, 5)); + }); + // [End const_dynamic_import_har_path] + } else if (item === resourceToString($r('app.string.dynamic_import_HSP_name'))) { + // [Start const_dynamic_import_hsp_name] + // HAP常量动态import HSP模块名 + import('myhsp').then((ns: ESObject) => { + console.info(ns.add(3, 5)); + }); + // [End const_dynamic_import_hsp_name] + } else if (item === resourceToString($r('app.string.dynamic_import_HSP_path'))) { + // [Start const_dynamic_import_hsp_path] + // HAP常量动态import HSP模块名文件路径 + import('myhsp/Index').then((ns: ESObject) => { + console.info(ns.add(3, 5)); + }); + // [End const_dynamic_import_hsp_path] + } else if (item === resourceToString($r('app.string.dynamic_import_remote_HAR_name'))) { + // [Start const_dynamic_import_crypto] + // HAP常量动态import远程HAR模块名 + import('@ohos/crypto-js').then((ns: ESObject) => { + console.info('DynamicImport @ohos/crypto-js: ' + ns.CryptoJS.src); + }); + // [End const_dynamic_import_crypto] + } else if (item === resourceToString($r('app.string.dynamic_import_ohpm'))) { + // [Start const_dynamic_import_ohpm] + // HAP常量动态import ohpm包 + import('@ohos/hypium').then((ns: ESObject) => { + console.info('DynamicImport @ohos/hypium: ', ns.TestType.FUNCTION.toString()); + }); + // [End const_dynamic_import_ohpm] + } else if (item === resourceToString($r('app.string.dynamic_import_file'))) { + // [Start hap_const_dynamic_import] + // HAP常量动态import自己的单文件 + import('../Calc').then((ns: ESObject) => { + console.info(ns.add(3, 5)); + }) + // [End hap_const_dynamic_import] + } else if (item === resourceToString($r('app.string.dynamic_import_native'))) { + // [Start hap_const_dynamic_import_native_index] + // HAP常量动态import自己的Native库 + import('libentry.so').then((ns: ESObject) => { + console.info('DynamicImport libnativeapi.so: ' + ns.default.add(2, 3)); + }); + // [End hap_const_dynamic_import_native_index] + } else if (item === resourceToString($r('app.string.dynamic_import_system_app'))) { + // [Start hap_const_dynamic_import_api] + // HAP常量动态import加载API + import('@system.app').then((ns: ESObject) => { + ns.default.getInfo(); + }); + } else if (item === resourceToString($r('app.string.dynamic_import_ohos_curves'))) { + // HAP常量动态import加载API + import('@ohos.curves').then((ns: ESObject) => { + ns.default.springMotion(0.555, 0.75, 0.001).interpolate(1); + }); + } else if (item === resourceToString($r('app.string.dynamic_import_ohos_matrix4'))) { + // HAP常量动态import加载API + import('@ohos.matrix4').then((ns: ESObject) => { + ns.default.identity().transformPoint([1, 2])[0]; + }); + } else if (item === resourceToString($r('app.string.dynamic_import_ohos_hilog'))) { + // HAP常量动态import加载API + import('@ohos.hilog').then((ns: ESObject) => { + ns.default.info(0x0000, 'testTag', '%{public}s', 'DynamicImport @ohos.hilog.'); + hilog.info(0x000, 'testTag', '%{public}s', ns.default.LogLevel.DEBUG); + }); + // [End hap_const_dynamic_import_api] + } else if (item === resourceToString($r('app.string.dynamic_import_module_myhar'))) { + // [Start variable_dynamic_import] + // 变量动态import其他模块myHar + let harName = 'myhar'; + import(harName).then((ns: ESObject) => { + console.info(ns.add(3, 5)); + }); + // [StartExclude variable_dynamic_import] + } else if (item === resourceToString($r('app.string.dynamic_import_module_file'))) { + // [EndExclude variable_dynamic_import] + // 变量动态import本模块自己的单文件 + let filePath = '../utils/Calc'; + import(filePath).then((ns: ESObject) => { + console.info(ns.add(3, 5)); + }); + // [End variable_dynamic_import] + } else if (item === resourceToString($r('app.string.dynamic_import_HAR_name_variable'))) { + // [Start hap_variable_dynamic_import_har] + // HAP变量动态import HAR模块名 + let harPackageName = 'myhar'; + import(harPackageName).then((ns: ESObject) => { + console.info(ns.add(3, 5)); + }); + // [End hap_variable_dynamic_import_har] + } else if (item === resourceToString($r('app.string.dynamic_import_HSP_name_variable'))) { + // [Start hap_variable_dynamic_import_hsp] + // HAP变量动态import HSP模块名 + let hspPackageName = 'myhsp'; + import(hspPackageName).then((ns: ESObject) => { + console.info(ns.add(3, 5)); + }); + // [End hap_variable_dynamic_import_hsp] + } else if (item === resourceToString($r('app.string.dynamic_import_remote_HAR_name_variable'))) { + // [Start hap_variable_dynamic_import_har_crypto] + // HAP变量动态import远程HAR模块名 + let remoteHarPackageName = '@ohos/crypto-js'; + import(remoteHarPackageName).then((ns: ESObject) => { + console.info('DynamicImport @ohos/crypto-js: ' + ns.CryptoJS.src); + }); + // [End hap_variable_dynamic_import_har_crypto] + } else if (item === resourceToString($r('app.string.dynamic_import_ohpm_variable'))) { + // [Start hap_variable_dynamic_import_ohpm] + // HAP变量动态import ohpm包 + let ohpmPackageName = '@ohos/hypium'; + import(ohpmPackageName).then((ns: ESObject) => { + console.info('DynamicImport @ohos/hypium: ', ns.TestType.FUNCTION.toString()); + }); + // [End hap_variable_dynamic_import_ohpm] + } else if (item === resourceToString($r('app.string.dynamic_import_file_variable'))) { + // [Start hap_variable_dynamic_import_calc] + // HAP变量动态import自己的单文件 + let calcFilePath = '../Calc'; + import(calcFilePath).then((ns: ESObject) => { + console.info(ns.add(3, 5)); + }); + // [End hap_variable_dynamic_import_calc] + } else if (item === resourceToString($r('app.string.dynamic_import_native_variable'))) { + // [Start hap_variable_dynamic_import_native] + // HAP变量动态import自己的Native库 + let soName = 'libentry.so'; + import(soName).then((ns: ESObject) => { + console.info('DynamicImport libnativeapi.so: ' + ns.default.add(2, 3)); + }); + // [End hap_variable_dynamic_import_native] + } else if (item === resourceToString($r('app.string.dynamic_import_system_app_variable'))) { + // [Start hap_variable_dynamic_import_api] + // HAP变量动态import加载API + let packageName = '@system.app'; + import(packageName).then((ns: ESObject) => { + ns.default.getInfo(); + }); + } else if (item === resourceToString($r('app.string.dynamic_import_ohos_curves_variable'))) { + // HAP变量动态import加载API + let packageName = '@ohos.curves'; + import(packageName).then((ns: ESObject) => { + ns.default.springMotion(0.555, 0.75, 0.001).interpolate(1); + }); + } else if (item === resourceToString($r('app.string.dynamic_import_ohos_matrix4_variable'))) { + // HAP变量动态import加载API + let packageName = '@ohos.matrix4'; + import(packageName).then((ns: ESObject) => { + ns.default.identity().transformPoint([1, 2])[0]; + }); + } else if (item === resourceToString($r('app.string.dynamic_import_ohos_hilog_variable'))) { + // HAP变量动态import加载API + let packageName = '@ohos.hilog'; + import(packageName).then((ns: ESObject) => { + ns.default.info(0x0000, 'testTag', '%{public}s', 'DynamicImport @ohos.hilog.'); + }) + // [End hap_variable_dynamic_import_api] + } else if (item === resourceToString($r('app.string.dynamic_import_HAR'))) { + // [Start hap_variable_dynamic_import_har1] + let harName = 'har1'; + import(harName).then((ns: ESObject) => { + console.info('DynamicImport addHar1 4 + 5 = ' + ns.addHar1(4, 5)); + }); + // [End hap_variable_dynamic_import_har1] + } + }) + } + }) + }.scrollBar(BarState.Off) + .width('90%') + .id('List') + }.width('100%') + .height('100%') + .backgroundColor(0xDCDCDC) + .padding({ top: 5 }) + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/utils/Calc.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/utils/Calc.ets new file mode 100644 index 0000000..3cba60b --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/ets/utils/Calc.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. + */ + +export function add(a: number, b: number): number { + let c = a + b; + console.info('DynamicImport I am a HAP, %d + %d = %d', a, b, c); + return c; +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/module.json5 new file mode 100644 index 0000000..4144486 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/module.json5 @@ -0,0 +1,66 @@ +/* + * 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": [ + "default", + "tablet" + ], + "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": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/element/color.json b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/element/color.json new file mode 100644 index 0000000..3c71296 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..52e3705 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/element/string.json @@ -0,0 +1,128 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "DynamicImport" + }, + { + "name": "business_expansion_scenario", + "value": "业务扩展场景介绍" + }, + { + "name": "dynamic_import_HAR_name", + "value": "HAP常量动态import HAR模块名" + }, + { + "name": "dynamic_import_HAR_path", + "value": "HAP常量动态import HAR模块文件路径" + }, + { + "name": "dynamic_import_HSP_name", + "value": "HAP常量动态import HSP模块名" + }, + { + "name": "dynamic_import_HSP_path", + "value": "HAP常量动态import HSP模块名文件路径" + }, + { + "name": "dynamic_import_remote_HAR_name", + "value": "HAP常量动态import远程HAR模块名" + }, + { + "name": "dynamic_import_file", + "value": "HAP常量动态import自己的单文件" + }, + { + "name": "dynamic_import_native", + "value": "HAP常量动态import自己的Native库" + }, + { + "name": "dynamic_import_ohpm", + "value": "HAP常量动态import ohpm包" + }, + { + "name": "dynamic_import_ohos_curves", + "value": "HAP常量动态加载@ohos.curves" + }, + { + "name": "dynamic_import_system_app", + "value": "HAP常量动态加载@system.app" + }, + { + "name": "dynamic_import_ohos_matrix4", + "value": "HAP常量动态加载@ohos.matrix4" + }, + { + "name": "dynamic_import_ohos_hilog", + "value": "HAP常量动态加载@ohos.hilog" + }, + { + "name": "dynamic_import_module_myhar", + "value": "变量动态import其他模块myHar" + }, + { + "name": "dynamic_import_module_file", + "value": "变量动态import本模块自己的单文件" + }, + { + "name": "dynamic_import_HAR_name_variable", + "value": "HAP变量动态import HAR模块名" + }, + { + "name": "dynamic_import_HAR_path_variable", + "value": "HAP变量动态import HAR模块文件路径" + }, + { + "name": "dynamic_import_HSP_name_variable", + "value": "HAP变量动态import HSP模块名" + }, + { + "name": "dynamic_import_HSP_path_variable", + "value": "HAP变量动态import HSP模块名文件路径" + }, + { + "name": "dynamic_import_remote_HAR_name_variable", + "value": "HAP变量动态import远程HAR模块名" + }, + { + "name": "dynamic_import_file_variable", + "value": "HAP变量动态import自己的单文件" + }, + { + "name": "dynamic_import_native_variable", + "value": "HAP变量动态import自己的Native库" + }, + { + "name": "dynamic_import_ohpm_variable", + "value": "HAP变量动态import ohpm包" + }, + { + "name": "dynamic_import_ohos_curves_variable", + "value": "HAP变量动态加载@ohos.curves" + }, + { + "name": "dynamic_import_system_app_variable", + "value": "HAP变量动态加载@system.app" + }, + { + "name": "dynamic_import_ohos_matrix4_variable", + "value": "HAP变量动态加载@ohos.matrix4" + }, + { + "name": "dynamic_import_ohos_hilog_variable", + "value": "HAP变量动态加载@ohos.hilog" + }, + { + "name": "dynamic_import_HAR", + "value": "动态加载依赖解耦合" + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/media/background.png b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..f939c9fa8cc8914832e602198745f592a0dfa34d GIT binary patch literal 57364 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 A4*&oF literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/media/foreground.png b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/media/foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..4483ddad1f079e1089d685bd204ee1cfe1d01902 GIT binary patch literal 12430 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 cSLciz6AsI{U0tD9;7S&f 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/profile/backup_config.json b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 0000000..78f40ae --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/profile/main_pages.json b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 0000000..1898d94 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/Index" + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/dark/element/color.json b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/main/resources/dark/element/color.json new file mode 100644 index 0000000..79b11c2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/mock/mock-config.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/mock/mock-config.json5 new file mode 100644 index 0000000..b9a78e2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/ets/test/Ability.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 0000000..0f8ce9a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/ets/test/DynamicImport.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/ets/test/DynamicImport.test.ets new file mode 100644 index 0000000..bc0df7f --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/ets/test/DynamicImport.test.ets @@ -0,0 +1,228 @@ +/* + * 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, it, expect } from '@ohos/hypium'; + +export default function dynamicImportTest() { + describe('dynamicImportTest', () => { + + it('testDynamicImport001', 0, async () => { + console.info('uitest: testDynamicImport001 begin'); + let har: ESObject = await import('harlibrary'); + expect(har.Calc.staticAdd(8, 9)).assertEqual(17); + let calc: ESObject = new har.Calc(); + expect(calc.instanceAdd(10, 11)).assertEqual(21); + expect(har.addHarlibrary(6, 7)).assertEqual(13); + + let className = 'Calc'; + let methodName = 'instanceAdd'; + let staticMethod = 'staticAdd'; + let functionName = 'addHarlibrary'; + expect(har[className][staticMethod](12, 13)).assertEqual(25); + let calc1: ESObject = new har[className](); + expect(calc1[methodName](14, 15)).assertEqual(29); + expect(har[functionName](16, 17)).assertEqual(33); + console.info('uitest: testDynamicImport001 end'); + }) + + it('testDynamicImport002', 0, async () => { + console.info('uitest: testDynamicImport002 begin'); + let har: ESObject = await import('myhar'); + expect(har.add(2, 3)).assertEqual(5); + console.info('uitest: testDynamicImport002 end'); + }) + + it('testDynamicImport003', 0, async () => { + console.info('uitest: testDynamicImport003 begin'); + let har: ESObject = await import('myhar/Index'); + expect(har.add(2, 3)).assertEqual(5); + console.info('uitest: testDynamicImport003 end'); + }) + + it('testDynamicImport004', 0, async () => { + console.info('uitest: testDynamicImport004 begin'); + let hsp: ESObject = await import('myhsp'); + expect(hsp.add(2, 3)).assertEqual(5); + console.info('uitest: testDynamicImport004 end'); + }) + + it('testDynamicImport005', 0, async () => { + console.info('uitest: testDynamicImport005 begin'); + let hsp: ESObject = await import('myhsp/Index'); + expect(hsp.add(2, 3)).assertEqual(5); + console.info('uitest: testDynamicImport005 end'); + }) + + it('testDynamicImport006', 0, async () => { + console.info('uitest: testDynamicImport006 begin'); + let har: ESObject = await import('@ohos/crypto-js'); + expect(har.CryptoJS.src).assertUndefined(); + console.info('uitest: testDynamicImport006 end'); + }) + + it('testDynamicImport007', 0, async () => { + console.info('uitest: testDynamicImport007 begin'); + let ohpm: ESObject = await import('@ohos/hypium'); + expect(ohpm.TestType.FUNCTION).assertEqual(1); + console.info('uitest: testDynamicImport007 end'); + }) + + it('testDynamicImport008', 0, async () => { + console.info('uitest: testDynamicImport008 begin'); + let singleFile: ESObject = await import('../../../../src/main/ets/Calc'); + expect(singleFile.add(3, 5)).assertEqual(8); + console.info('uitest: testDynamicImport008 end'); + }) + + it('testDynamicImport009', 0, async () => { + console.info('uitest: testDynamicImport009 begin'); + let native: ESObject = await import('libentry.so'); + expect(native.default.add(2, 3)).assertEqual(5); + console.info('uitest: testDynamicImport009 end'); + }) + + it('testDynamicImport010', 0, async () => { + console.info('uitest: testDynamicImport010 begin'); + let systemApp: ESObject = await import('@system.app'); + expect(systemApp.default.getInfo()).assertNull(); + console.info('uitest: testDynamicImport010 end'); + }) + + it('testDynamicImport011', 0, async () => { + console.info('uitest: testDynamicImport011 begin'); + let curves: ESObject = await import('@ohos.curves'); + expect(curves.default.springMotion(0.555, 0.75, 0.001).interpolate(1)).assertEqual(0); + console.info('uitest: testDynamicImport011 end'); + }) + + it('testDynamicImport012', 0, async () => { + console.info('uitest: testDynamicImport012 begin'); + let matrix4: ESObject = await import('@ohos.matrix4'); + expect(matrix4.default.identity().transformPoint([1, 2])[0]).assertEqual(1); + console.info('uitest: testDynamicImport012 end'); + }) + + it('testDynamicImport013', 0, async () => { + console.info('uitest: testDynamicImport013 begin'); + let hilog: ESObject = await import('@ohos.hilog'); + expect(hilog.default.LogLevel.DEBUG).assertEqual(3); + console.info('uitest: testDynamicImport013 end'); + }) + + it('testDynamicImport014', 0, async () => { + console.info('uitest: testDynamicImport014 begin'); + let harName = 'myhar'; + let har: ESObject = await import(harName); + expect(har.add(3, 5)).assertEqual(8); + console.info('uitest: testDynamicImport014 end'); + }) + + it('testDynamicImport015', 0, async () => { + console.info('uitest: testDynamicImport015 begin'); + let filePath = '../../../main/ets/utils/Calc'; + let file: ESObject = await import(filePath); + expect(file.add(3, 5)).assertEqual(8); + console.info('uitest: testDynamicImport015 end'); + }) + + it('testDynamicImport016', 0, async () => { + console.info('uitest: testDynamicImport016 begin'); + let harPackageName = 'myhar'; + let har: ESObject = await import(harPackageName); + expect(har.add(3, 5)).assertEqual(8); + console.info('uitest: testDynamicImport016 end'); + }) + + it('testDynamicImport017', 0, async () => { + console.info('uitest: testDynamicImport017 begin'); + let hspPackageName = 'myhsp'; + let hsp: ESObject = await import(hspPackageName); + expect(hsp.add(3, 5)).assertEqual(8); + console.info('uitest: testDynamicImport017 end'); + }) + + it('testDynamicImport018', 0, async () => { + console.info('uitest: testDynamicImport018 begin'); + let remoteHarPackageName = '@ohos/crypto-js'; + let har: ESObject = await import(remoteHarPackageName); + expect(har.CryptoJS.src).assertUndefined(); + console.info('uitest: testDynamicImport018 end'); + }) + + it('testDynamicImport019', 0, async () => { + console.info('uitest: testDynamicImport019 begin'); + let ohpmPackageName = '@ohos/hypium'; + let ohpm: ESObject = await import(ohpmPackageName); + expect(ohpm.TestType.FUNCTION).assertEqual(1); + console.info('uitest: testDynamicImport019 end'); + }) + + it('testDynamicImport020', 0, async () => { + console.info('uitest: testDynamicImport020 begin'); + let calcFilePath = '../../../../src/main/ets/Calc'; + let singleFile: ESObject = await import(calcFilePath); + expect(singleFile.add(3, 5)).assertEqual(8); + console.info('uitest: testDynamicImport020 end'); + }) + + it('testDynamicImport021', 0, async () => { + console.info('uitest: testDynamicImport021 begin'); + let soName = 'libentry.so'; + let native: ESObject = await import(soName); + expect(native.default.add(2, 3)).assertEqual(5); + console.info('uitest: testDynamicImport021 end'); + }) + + it('testDynamicImport022', 0, async () => { + console.info('uitest: testDynamicImport022 begin'); + let packageName = '@system.app'; + let systemApp: ESObject = await import(packageName); + expect(systemApp.default.getInfo()).assertNull(); + console.info('uitest: testDynamicImport022 end'); + }) + + it('testDynamicImport023', 0, async () => { + console.info('uitest: testDynamicImport023 begin'); + let packageName = '@ohos.curves'; + let curves: ESObject = await import(packageName); + expect(curves.default.springMotion(0.555, 0.75, 0.001).interpolate(1)).assertEqual(0); + console.info('uitest: testDynamicImport023 end'); + }) + + it('testDynamicImport024', 0, async () => { + console.info('uitest: testDynamicImport024 begin'); + let packageName = '@ohos.matrix4'; + let matrix4: ESObject = await import(packageName); + expect(matrix4.default.identity().transformPoint([1, 2])[0]).assertEqual(1); + console.info('uitest: testDynamicImport024 end'); + }) + + it('testDynamicImport025', 0, async () => { + console.info('uitest: testDynamicImport025 begin'); + let packageName = '@ohos.hilog'; + let hilog: ESObject = await import(packageName); + expect(hilog.default.LogLevel.DEBUG).assertEqual(3); + console.info('uitest: testDynamicImport025 end'); + }) + + it('testDynamicImport026', 0, async () => { + console.info('uitest: testDynamicImport026 begin'); + let harName = 'har1'; + let har: ESObject = await import(harName); + expect(har.addHar1(4, 5)).assertEqual(9); + console.info('uitest: testDynamicImport026 end'); + }) + }) +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/ets/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 0000000..794f995 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,22 @@ +/* + * 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'; +import dynamicImportTest from './DynamicImport.test'; + +export default function testsuite() { + abilityTest(); + dynamicImportTest(); +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/module.json5 new file mode 100644 index 0000000..c3fd9dd --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * 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": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/test/List.test.ets new file mode 100644 index 0000000..f1186b1 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/test/LocalUnit.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/entry/src/test/LocalUnit.test.ets new file mode 100644 index 0000000..7fc57c7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/.gitignore new file mode 100644 index 0000000..e2713a2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/Index.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/Index.ets new file mode 100644 index 0000000..99b93d0 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/Index.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. + */ + +export { MainPage } from './src/main/ets/components/MainPage'; + +// [Start export_add_har1] +export { addHar1 } from './src/main/ets/utils/Calc'; +// [End export_add_har1] diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/build-profile.json5 new file mode 100644 index 0000000..aefa5f6 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/build-profile.json5 @@ -0,0 +1,46 @@ +/* + * 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" + ] + }, + "consumerFiles": [ + "./consumer-rules.txt" + ] + } + }, + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest" + } + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/hvigorfile.ts new file mode 100644 index 0000000..0785a51 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/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 { harTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: harTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/oh-package.json5 new file mode 100644 index 0000000..24a5f32 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/oh-package.json5 @@ -0,0 +1,24 @@ +/* + * 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": "har1", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "Index.ets", + "author": "", + "license": "Apache-2.0", + "dependencies": {} +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/ets/components/MainPage.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/ets/components/MainPage.ets new file mode 100644 index 0000000..7dc1a0d --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/ets/components/MainPage.ets @@ -0,0 +1,31 @@ +/* + * 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. + */ + +@Component +export struct MainPage { + @State message: string = 'Hello World'; + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/ets/utils/Calc.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/ets/utils/Calc.ets new file mode 100644 index 0000000..ad7bec2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/ets/utils/Calc.ets @@ -0,0 +1,27 @@ +/* + * 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. + */ + +// [Start function_add_har1] +export function addHar1(a: number, b: number): number { + let c = a + b; + console.info('DynamicImport I am har1, %d + %d = %d', a, b, c); + + let harName = 'har2'; + import(harName).then((ns: ESObject) => { + console.info('DynamicImport addHar2 4 + 5 = ' + ns.addHar2(4, 5)); + }); + return c; +} +// [End function_add_har1] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/module.json5 new file mode 100644 index 0000000..f14a04c --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/module.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. + */ + +{ + "module": { + "name": "har1", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ] + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/resources/base/element/string.json new file mode 100644 index 0000000..f51a9c8 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/main/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from package" + } + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/ohosTest/ets/test/Ability.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 0000000..0f8ce9a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/ohosTest/ets/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 0000000..1eac52f --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/ohosTest/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/ohosTest/module.json5 new file mode 100644 index 0000000..acef8e5 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * 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": "har1_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/test/List.test.ets new file mode 100644 index 0000000..f1186b1 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/test/LocalUnit.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/src/test/LocalUnit.test.ets new file mode 100644 index 0000000..7fc57c7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har1/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/.gitignore new file mode 100644 index 0000000..e2713a2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/Index.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/Index.ets new file mode 100644 index 0000000..63672b2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/Index.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. + */ + +export { MainPage } from './src/main/ets/components/MainPage'; + +// [Start export_add_har2] +export { addHar2 } from './src/main/ets/utils/Calc' +// [End export_add_har2] diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/build-profile.json5 new file mode 100644 index 0000000..aefa5f6 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/build-profile.json5 @@ -0,0 +1,46 @@ +/* + * 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" + ] + }, + "consumerFiles": [ + "./consumer-rules.txt" + ] + } + }, + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest" + } + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/hvigorfile.ts new file mode 100644 index 0000000..0785a51 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/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 { harTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: harTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/oh-package.json5 new file mode 100644 index 0000000..d778bf2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/oh-package.json5 @@ -0,0 +1,24 @@ +/* + * 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": "har2", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "Index.ets", + "author": "", + "license": "Apache-2.0", + "dependencies": {} +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/ets/components/MainPage.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/ets/components/MainPage.ets new file mode 100644 index 0000000..7dc1a0d --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/ets/components/MainPage.ets @@ -0,0 +1,31 @@ +/* + * 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. + */ + +@Component +export struct MainPage { + @State message: string = 'Hello World'; + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/ets/utils/Calc.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/ets/utils/Calc.ets new file mode 100644 index 0000000..72e3c50 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/ets/utils/Calc.ets @@ -0,0 +1,22 @@ +/* + * 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. + */ + +// [Start function_add_har2] +export function addHar2(a: number, b: number): number { + let c = a + b; + console.info('DynamicImport I am har2, %d + %d = %d', a, b, c); + return c; +} +// [End function_add_har2] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/module.json5 new file mode 100644 index 0000000..cadd1c0 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/module.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. + */ + +{ + "module": { + "name": "har2", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ] + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/resources/base/element/string.json new file mode 100644 index 0000000..f51a9c8 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/main/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from package" + } + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/ohosTest/ets/test/Ability.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 0000000..0f8ce9a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/ohosTest/ets/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 0000000..1eac52f --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/ohosTest/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/ohosTest/module.json5 new file mode 100644 index 0000000..280914c --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * 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": "har2_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/test/List.test.ets new file mode 100644 index 0000000..f1186b1 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/test/LocalUnit.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/src/test/LocalUnit.test.ets new file mode 100644 index 0000000..7fc57c7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/har2/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/.gitignore new file mode 100644 index 0000000..e2713a2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/Index.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/Index.ets new file mode 100644 index 0000000..9b782d9 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/Index.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. + */ + +export { MainPage } from './src/main/ets/components/MainPage' + +// [Start module_members_export] +export { Calc, addHarlibrary } from './src/main/ets/utils/Calc' +// [End module_members_export] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/build-profile.json5 new file mode 100644 index 0000000..aefa5f6 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/build-profile.json5 @@ -0,0 +1,46 @@ +/* + * 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" + ] + }, + "consumerFiles": [ + "./consumer-rules.txt" + ] + } + }, + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest" + } + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/hvigorfile.ts new file mode 100644 index 0000000..0785a51 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/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 { harTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: harTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/oh-package.json5 new file mode 100644 index 0000000..fb0db50 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/oh-package.json5 @@ -0,0 +1,24 @@ +/* + * 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": "harlibrary", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "Index.ets", + "author": "", + "license": "Apache-2.0", + "dependencies": {} +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/ets/components/MainPage.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/ets/components/MainPage.ets new file mode 100644 index 0000000..7dc1a0d --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/ets/components/MainPage.ets @@ -0,0 +1,31 @@ +/* + * 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. + */ + +@Component +export struct MainPage { + @State message: string = 'Hello World'; + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/ets/utils/Calc.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/ets/utils/Calc.ets new file mode 100644 index 0000000..cc34273 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/ets/utils/Calc.ets @@ -0,0 +1,36 @@ +/* + * 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. + */ + +// [Start dynamic_call_add] +export class Calc { + public static staticAdd(a: number, b: number): number { + let c = a + b; + console.info('DynamicImport I am harlibrary in staticAdd, %d + %d = %d', a, b, c); + return c; + } + + public instanceAdd(a: number, b: number): number { + let c = a + b; + console.info('DynamicImport I am harlibrary in instanceAdd, %d + %d = %d', a, b, c); + return c; + } +} + +export function addHarlibrary(a: number, b: number): number { + let c = a + b; + console.info('DynamicImport I am harlibrary in addHarlibrary, %d + %d = %d', a, b, c); + return c; +} +// [End dynamic_call_add] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/module.json5 new file mode 100644 index 0000000..6b2ff2e --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/module.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. + */ + +{ + "module": { + "name": "harlibrary", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ] + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/resources/base/element/string.json new file mode 100644 index 0000000..f51a9c8 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/main/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from package" + } + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/ohosTest/ets/test/Ability.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 0000000..0f8ce9a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/ohosTest/ets/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 0000000..1eac52f --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/ohosTest/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/ohosTest/module.json5 new file mode 100644 index 0000000..8d8baae --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * 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": "harlibrary_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/test/List.test.ets new file mode 100644 index 0000000..f1186b1 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/test/LocalUnit.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/src/test/LocalUnit.test.ets new file mode 100644 index 0000000..7fc57c7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/harlibrary/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/hvigor/hvigor-config.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/hvigor/hvigor-config.json5 new file mode 100644 index 0000000..4dc0238 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/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.5", + "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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/hvigorfile.ts new file mode 100644 index 0000000..2a5e543 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/.gitignore new file mode 100644 index 0000000..e2713a2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/Index.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/Index.ets new file mode 100644 index 0000000..c7e6b0d --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/Index.ets @@ -0,0 +1,24 @@ +/* + * 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. + */ + +export { MainPage } from './src/main/ets/components/MainPage' + +// [Start const_dynamic_import_har] +export function add(a: number, b: number): number { + let c = a + b; + console.info('DynamicImport I am a HAR, %d + %d = %d', a, b, c); + return c; +} +// [End const_dynamic_import_har] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/build-profile.json5 new file mode 100644 index 0000000..aefa5f6 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/build-profile.json5 @@ -0,0 +1,46 @@ +/* + * 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" + ] + }, + "consumerFiles": [ + "./consumer-rules.txt" + ] + } + }, + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest" + } + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/hvigorfile.ts new file mode 100644 index 0000000..0785a51 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/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 { harTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: harTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/oh-package.json5 new file mode 100644 index 0000000..d3bb3dc --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/oh-package.json5 @@ -0,0 +1,24 @@ +/* + * 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": "myhar", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "Index.ets", + "author": "", + "license": "Apache-2.0", + "dependencies": {} +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/main/ets/components/MainPage.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/main/ets/components/MainPage.ets new file mode 100644 index 0000000..7dc1a0d --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/main/ets/components/MainPage.ets @@ -0,0 +1,31 @@ +/* + * 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. + */ + +@Component +export struct MainPage { + @State message: string = 'Hello World'; + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/main/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/main/module.json5 new file mode 100644 index 0000000..a48a33b --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/main/module.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. + */ + +{ + "module": { + "name": "myHar", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ] + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/main/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/main/resources/base/element/string.json new file mode 100644 index 0000000..f51a9c8 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/main/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from package" + } + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/ohosTest/ets/test/Ability.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 0000000..0f8ce9a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/ohosTest/ets/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 0000000..1eac52f --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/ohosTest/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/ohosTest/module.json5 new file mode 100644 index 0000000..ad42bd7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * 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": "myHar_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/test/List.test.ets new file mode 100644 index 0000000..f1186b1 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/test/LocalUnit.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/src/test/LocalUnit.test.ets new file mode 100644 index 0000000..7fc57c7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHar/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/.gitignore new file mode 100644 index 0000000..e2713a2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/Index.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/Index.ets new file mode 100644 index 0000000..b5c7100 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/Index.ets @@ -0,0 +1,22 @@ +/* + * 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. + */ + +// [Start const_dynamic_import_hsp] +export function add(a: number, b: number): number { + let c = a + b; + console.info('DynamicImport I am a HSP, %d + %d = %d', a, b, c); + return c; +} +// [End const_dynamic_import_hsp] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/build-profile.json5 new file mode 100644 index 0000000..4b63399 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/hvigorfile.ts new file mode 100644 index 0000000..97ada3f --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/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 { hspTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hspTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/oh-package.json5 new file mode 100644 index 0000000..fafa5e8 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/oh-package.json5 @@ -0,0 +1,26 @@ +/* + * 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": "myhsp", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "Index.ets", + "author": "", + "license": "Apache-2.0", + "packageType": "InterfaceHar", + "dependencies": { + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/ets/pages/Index.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/ets/pages/Index.ets new file mode 100644 index 0000000..25040c4 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/ets/pages/Index.ets @@ -0,0 +1,32 @@ +/* + * 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. + */ + +@Entry +@Component +struct Index { + @State message: string = 'Hello World'; + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/ets/utils/Calc.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/ets/utils/Calc.ets new file mode 100644 index 0000000..8c5be7e --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/ets/utils/Calc.ets @@ -0,0 +1,18 @@ +/* + * 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. + */ + +export function add(a: number, b: number) { + return a + b; +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/module.json5 new file mode 100644 index 0000000..3605312 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/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": "myHsp", + "type": "shared", + "description": "$string:shared_desc", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "pages": "$profile:main_pages" + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/resources/base/element/string.json new file mode 100644 index 0000000..98e1d8a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "shared_desc", + "value": "description" + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/resources/base/profile/main_pages.json b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/resources/base/profile/main_pages.json new file mode 100644 index 0000000..1898d94 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/Index" + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/ohosTest/ets/test/Ability.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 0000000..0f8ce9a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/ohosTest/ets/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 0000000..1eac52f --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/ohosTest/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/ohosTest/module.json5 new file mode 100644 index 0000000..06e0923 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * 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": "myHsp_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/test/List.test.ets new file mode 100644 index 0000000..f1186b1 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/test/LocalUnit.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/src/test/LocalUnit.test.ets new file mode 100644 index 0000000..7fc57c7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/myHsp/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/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/oh-package.json5 new file mode 100644 index 0000000..8648e08 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/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.5", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.19", + "@ohos/hamock": "1.0.0" + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/ohosTest.md b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/ohosTest.md new file mode 100644 index 0000000..e1a49c7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/ohosTest.md @@ -0,0 +1,27 @@ +# 动态加载测试用例归档 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 是否自动 | 测试结果 | +| ----------------------------------- | ------------ | ---- | ---------------------------------- | -------- | -------- | +| 拉起应用 | 设备正常运行 | | 成功拉起应用 | 是 | Pass | +| 动态加载harlibrary模块调用函数 | 成功拉起应用 | | 输出日志 | 是 | Pass | +| HAP常量动态import HAR模块名 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP常量动态import HAR模块文件路径 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP常量动态import HSP模块名 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP常量动态import HSP模块名文件路径 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP常量动态import远程HAR模块名 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP常量动态import ohpm包 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP常量动态import自己的单文件 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP常量动态import自己的Native库 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP常量动态import加载API | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP变量动态import HAR模块名 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP变量动态import HAR模块文件路径 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP变量动态import HSP模块名 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP变量动态import HSP模块名文件路径 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP变量动态import远程HAR模块名 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP变量动态import ohpm包 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP变量动态import自己的单文件 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP变量动态import自己的Native库 | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| HAP变量动态import加载API | 成功拉起应用 | | 成功调用模块函数输出日志 | 是 | Pass | +| 动态加载耦合har包 | 成功拉起应用 | | 加载har1可以调用har2函数并打印日志 | 是 | Pass | \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/screenshots/DynamicImport.png b/ArkTS/ArkTSRuntime/ArkTSModule/DynamicImport/screenshots/DynamicImport.png new file mode 100644 index 0000000000000000000000000000000000000000..085f76eb4c57ba7c602e134c19c0347e90ae0d06 GIT binary patch literal 82193 zcmeFYbx>U2(>FMSLvWYD-Q67qm*5V;-CYwj4DPPM8QeW+a0%}28k|5#vV4EfKJsoo zTl-eMyH)$gd#1YP+;jT&?e6Kh_jG^G{k!sa2Y{(4s~`&i0s#Qv+XwJ>9U%R7^uN~r z5%Rw#;qC0deE=*Zm{4FmERYHSg9U`e0{$HWkpH75Ec`$E{(D10Ktu+@z`~=zy?bNO z#smNmfUp2~gm-X=h;RVdf9Bxe5fA}LSjgA}lxaBloZ31IxOh~O>Y7Q(sk4h_=5BM; zTpC(M^SgvnAt_%Pu4%a4`%!2cZ|LY5c?6|BLf^y^{h#*y`$gZr|0VZrN*L=+BUl(X zICxlCI3OJCKc0laf~DldmV~2HH^XrYNy6oNlPaY#OU>PH?!J4I438(RX%X7^cMX6F z`!8lJfH>fxzbxA}>c6A%`CkCJ3v@XZM*#@nTKuZuFJMlnP}#@B@N6G;9?GIV@cG9i&qmxsByu9#dA!?yd0b7KzY675BjD#R=*55*%J-a;@YJp z(xFtD(#E=dIq!{y?Y=@y2R6nFK^U~GBWg}X8)&pK_nf^8Ej6_w5Cw&7P+VqnF>w&K zIcEtdq#TQX&+^rurK2iU3jC@z%&%LLesSXPJn22TWeI8q+-h{inu-l6q&T_@Pw+s4`@^m z%_+Tfx1zdmg7)8$9kv**uWGK#@?;m$XtZu(PBU7v%Ox%3;b6GT2awut7AlQXU)8Sl zp_k%qhC~2hq7j!w6gQt>_q^WaU{}SMbK7crT;7pRnrA3mhTh~aw+8KeUJ2qYp5;)O$Gosq9LA(|(gG8oEG?;aK#a^d5>O752F zLMJ%(b2sjjn*bukcKw$Ah-U}F5hQh#@Hqu<(!Q(XX=gSXUk*Jb&Q_lUw%vO!_`zMZ z3SDO!yLNYLm;igeB=|8@DT@<+fC5$+CzLC;dL$9<4%u;pgDB>*ce_l|a|wryD5eai zDf*(TGPm4GHsgJT#KeJLP?bE|+9#@}5#A-G>Gv|D2ZRrpQHB)Fbrd#H?e4Y3|=h4pH;bWqLbId$IN|eK-sMbxf z_77vK`>`bNonYgjq6+tkLH8e}CPq7gOrsFDf9~S@zEGVXQon;a`$DPhwAht|7eovzVbH|1FyAG7rg%TSY zjmc$}0O}MoiZNK0X7es|FeKek3d_~qn)h*i5O!>xYbw7&U)4za% zCN-v!b|oVl1q6Y0DJ*Tul2yJM^YMxC8n~vaag9lr>0M;9fk`f>b)H~hd2eU(VP??5 zEk@sTgj7Ycbj6+hCfVH+Z?13V5KkJV^O{73T?peJvKxVPxMlk*?o%_#z+??>1Z$fbLI8((S1Ut@ zk*;sTy}htRk7`Hw?+r8yxwfGLVr{WsFuImuU5izZKQ%@vbY>=StfK6=LAo`g&>_hc zZhwe?0`Ia4Z|4Ekcxs{B;McPnLukQC_m-vX)lCmoPBIkpielB^rusxdjmyi8v9lPm zZskpRm!U%_&QhGgYDv6;6RSmF9zD4~c0J;_dycx?d6Cy#lj`}&ph26Cn`*^fKMTLWb2t1)No0JP(1Miw+Wz5@$u1YBu`EkcQr{7CWI9r!!IleKINzD- z7Zo@9!MS11E1H-;MZmD2Vv$#ypW#WknSFcW`W{iBE}75rxB4OTder0VL#HgOK@-GN z&JKh-sLOIQ_(ZvWN?$H74_oO5wI>=;Ep>)HeekA z(F4*Aoko}&1@iG5{J=K7xb6PS;rZ|sv{hsnq>eb_+DZexin*Ga%*tra72EVGc+E^WBI1y4m+L1im)e09{ZC0_gn7 z-)oiC!wX>@`62F&XZ*yqn!m-l#Mv=s@_4cItd`YXDNOWEx}DiM%Zl1-)C0>M=IlM$ zkgn+_jsFISS@_-9Q-eyj5=(KSb@`0m#^aOsL|%Ov-L?ZNk=GYzoi!t$xF&Q&C&w7o zyc83&1cL2! zUDjbA8$)$`a_rCx9j-Kt5U8}3SkJPV@KhL!> zg8myg)GRQ6Bf_QHBjhy+w&=F7pm1o@v&2TW#lR}gQ8uw&t8;{4HbdSVGT$PMmi& zQ^GHJ)#OEDxDKM*szSXM9d0gK^LOQBJ(BjVIDO|lMdepGT1u*Zf2mH=RPB+A+mCKNJ0@2nx2&M6!hCL2l0%px zU&XOo58bOist+4BJ<()|wxy$`GJX$Gwy%7zUg$8?If-U*pM!4eTc0GnXSPQS^o|a9 z@Ss81XgLgza^;Xu>UQiQwX3p<#G1IgsZsyx=OdXop&*yrCikNc2 zJe#eM$nldvuWpvA@51OQ`lE75N9RqQlwDai)&D&;ANUWDs*_#Sd&wo8MLxt*ZZ5(+ zJwa|pd?5&smU-h}#HINvR5j#4hEwiHTD3Sl6&%Dl?F=S`OyR+9#Dq1W%P!##|B%0c z*T%m9F-S!Xufd~_`vdG>z_Zn#AmRUa=G-bz{sR8I{|h)>^jO`TSitxTILvr{s9)LJ z@xWC1;7_4W23DuYMR6zM1#)r@g>yxLPI6VVOSqVznPs9M6${$MigsS8?!@bV|8XLB zP;$|U$ZulN5pPkr5598V8b|YAJnQ>?`B8FHgG%(5TIJ&LdIdVoPDyrJeLJGHkOZv+ z;sM%JdW(sW&J$W&+KKPksoIM7hC4IMvcs4lUF#mS)pHzAUB8D7CK8@TEyYVOhAUZx zwnT^9G7r3JoioiBoo!|klXTA_aCIPR_A_3y)(i^=>25S9za9b{OybA{Z$N?}2^17m zu!Z{*<+_KGqlAhkfWRc!(2SQ-0A*M3my@%MpMV#{l`FOsCcY}W_C*g^G&wBdjql4O zprIiMmvY3uh^Wo&*QP*LgJ#|m`GsYK9536g14r&~)zqJInI;a7zbO}yGH!9Y6i27_ z+&z%I^oy<>T>Mn}nKBlDwCO4n$FuPVYuusA;TmF$o1Iej@>3{@9U8};ChA8ZGo}1f zc22mcv96_2&0itemTX#q)vVZda%h~Sk~s~^g}z8kiYk_-DY|29(fG9M?>s{)!?c{w zZM%MN$$a*(y7|T5wi}3NI?g%C<$UDm<6knU@QS9}z?tcDWc5*?7sbxJw-mI2K16#+ z-rxwP*lJNuzGK^IB0+bn_@YRuYCFKpTK94y@&W0kl3c+ z37bqacH6q5ctZIWP#LOx0Ce%+PZP9&9RXP4qn}zkMKGjhSi7pyDPHa3A_OsP?qgE$*3pPIO&pEO*>B*vL0`LPovshOto^p3+$#@$>Bh_Ig+X|()3!|*p zVF*3A8AJxy?8z?r{?UMh{?RB6dHHNAS}ci>4M2!cDV+M*gFHM%VLqRp#ns-~?sP!xf6Mh?wH_8&`qDZt|u$jCO0rypEk9cN53 z`?LT@NYtC_f>!8y=_LId^D$DE7d3Bc49lbQrb16FhWXEQ=2oq@a#%ZhqG2tQI`YcX zGpy))8-lLSpVYmlyj2SgCON|i6<=4;*~pX{Wsw-C3IqZlUYv0}Z^4Hw~poE@C*DLzrr(bY6%R2n;Bn zIm1;yR)z!mXc#5HNK&c83=b{@%C^KN(!L4!CX#alBW+63u7vXV9r?-i(|9AgkfVN= z$kO0o10}E_d?(#f?&dJ7;o7K zKP>&h)Q3+C=ZQO6@)}eK^i=A%GHNKI(owNeNYB_03s~~w6<*30X9psw*BHw0*{_p> zDY9^xHVA?0dgbu&=D?YQC5FTuD_qWRlKP*R`*Rg+cO{$)01L^e$xN^F9-Q&N9Ca;} z^s7muKc^OKekuGg;e0b|W`71S$-bZ;Dda=+#8^>7Ef)|q2?78|6JWQusH-qqH-{{? z;*~eM@;aUSe@*J@jTy#%z0!p{%&HhWwg0G4ad4eL6RTijwtqleY*U8~!%9%@sx_aS zLe!dI+~z?6TPZ~Oa@Pq$D9KXkG zT2H`Nny6mCD7`p0)!1%B`_dX6ccRRRg-xOS5ol+sj=c$1QyV%V+mR{?3Di zIlwv0J(#i$J)-|WLa94Gp(!{RaZFvr&We5P91sE)DW{(CB`hJ^MSp$f9Znx+DBMhQ zngIjt!HpJDMQNh@N664bYZ8v^C$a0EiNaic5y{%6k>Svb!7P+` zOX{DGXB;=xP+gXL`DDQ+igY3 zv2Vl=;EV&|J0P*AK$n&mH(V4ApaFi))r~qoK7<|~+q2k71>DZynw1hiRtBW>-6;gX z1NUc7f$*pn@mnc#xN^ncII$RUPo>r}QZdQkBx-KCf~lx)rJ)q2=+dEhGDs$sU;x*n zk)Ibs>bKC3nz(&mz?H#-&{Q}SQ%-HhVAyKsdR#>hK$QO>LnbPlXjhqeMJ!7+bD60+ z-e?lw1gZ&yKtIj-kaD6oh?xrDf>G75iQY$jUsL{0m0~a5sNie+avH05g&^4b8Qn{| zBJoL+-dtKK>J&?CiIgDca`+0RtJOIhVpQNCQQ#4$(BPZ>DA(3EFuDRutX;;nu^QuF z5D#&D(VY5>A6}KDnLw@IZNeJcL4!WE8g(6{wf=eIEAJ`tOb&Y=$@?_7j6FARK1GMbO>}P!*&6@Wv#@yPu zE6P4m(xB|>yFeoXR}WMj*`5sMa??B4qyoZhH(mwQ5EHDEVQg`zDA?rL9Je^B!jYHJ z$XxH`Hz@NVpJ$S@ zF3lCZVCUmjTZ73kH*W5lo}Zs$k1n+Z13X2+evJQ(a*1wa5RC#+RBN&Pc=z3(YR98>4N4`57DxGOpuz!#=SlXQZc>dqIRRsLAVFCgN#0Dps$Kl z4+-V^CKw~$)NaS%+Y?hj$B#GvFgJ`hd5|+|8OVz6(MirD){t~spHd@(H9Qwb(j*6{ zXb;91GDBkF`6+0D%OD-vyin6{Em{$Cs&*;WPI zu4lNu4aglx(-<#*|l%Be}Wghel^OA*6kU5 zALPu=uEeS}FvwBT8b(y2wl|+RW3&$B9hHP^dVlYze zI&EsPo+R&{{Pn)5Fl8J>@?}}A@>x=W8%jQ(MU$#;g{?IHOhxK7bMQ?@=4(^n>ipZ)?^dS}Z2lXp=@#typN)Rj>|{ueO8es}tx zEARXN`Kj}ofcGtOnB!mT6bq9S>F~ay6paB8r@cr*ODTPUSXg9N0+?u6n%NGLSm!`r z%quLiwlOl;u0#y^*V^5Cx9u5UBnM+Go_UowGE}Alj(VKFz$QpQ?(P8qq$gL=ZSi8T z@gyp4TDl5SMYD{|A_wSKU|1@gVyL+$?q9$n=QOF5I~8oDi~6wk%Pf|$ zY^8!?BDP>jUWqokOv+h7^(?&5X){bNY=t{;851T~oAG%+hG0R#Fxa{CfMRTdE@!z4 z2nSaQmEe|*I6yHE^ZqTV2L~?q^qQm)p`-11p>hR5u0aW)glQ3fLGsnnn^(_&DgBS) z|Ap>fJm=M-ey!qfefg+6%KlcE_dy&79w&0RZNZM-jV6dB%n5ClHDdwp;~R;v*gT4f zWA86l@jD%CQt3s!!V1GOU z%qLe@>OLf-MH&!hkS<&H9(*#nWS?9xnea;=!f^=p%_!iS3UaH1eku7ze(Niwl}EzUXuVE*Ww&rF{3ZAi9ddPPejEAMuobN26j~-2~a!} zy$MPfFCRrT0)W8)#CEXs9B>A7P5OJ|$>&A*p)QpjbSv`dhF>h0{Oo2%1fw|K@9O@^ z{z`VA+D#y7lLkB*-{cbb<`Y{`@eB;?Nckn^UqE4SaO9-u+M2eeKqiWNrXm#rfDBv& zLQ3sFWo+k^gNk6hal#M>hnY%pW1{a(DOQDIZ{6(Vwl-(EN3NX6@U|lhUM4r4+FeWK*0EUKvNs_Bz0l**A|5s|>fs+6Oz@l%zf)A1p#?%HC zd7s?rQm1WnaO-~OLrHXXlN3)1Cs>JLii_^NZV{8AR_!cl_Y+i|X?GbWl18fx=5rBm zb_1hEvWRE0xpOfg7k||rK0?}z) z;%5MO`j%6TonB>4g8tU%X0+rYn1M;v|H~LUaETF&^o1_lOIZ_C4g^vTg~9-UV?iQ; zuL+_%V)0iyWS+A)#?|k*MyCfF1SN)in29$IvG%L86V_o$$X7fiH4$PS;+H47g&X7{=X+janb>imya&5zq7Z?B7gq+ z3rN+&I91x-0uLtZQ#)O=viSPnqdk_UU8ft@=mE9dz36;AJRMzfn3>9ak4&7Vmg0Cx z@Xv^vRv*e8JZ7x6vXR^R5)&`I3wpZ-rzQ@9s>fTCCmyqE_U?lfrdO=5s`u8Nww?5( zj!6-v0w4MJvgmI)G#+itB+Ke4Er?3IxrRlO`a`1-`{x>3Sm%D=e?$H-{Of%`Uvq;@ zS&qfvI;8yy{?hssB@|!T&3n|fVt?W0{Nz#0ZB#?2_*HN*S;e~nnb;2D^wqps@_t2U zo!_Uer_XvLA&Jkat=*3G`>|0@vb(cO-4*9l^n+H33Co?&sB#dAkr;>V+URhHZ8Ei+ z>yj$8d8cAaL$YHrGR}VcEQaizY$?I z>0B6WzEak6pZa5Oro-@2`WsQ1`!g0d&&U-PLRi_W->B@J}U0;@NXx{dK{A!;v z*mC;E1i0xNb<+8ejC&lg)UNj?O{~>a z(BrCip*3VDCBThv;BP`3*Ars#p@-b!Zxz_E9Aw)`3(oB z8}&5#u$m*?K^3c}mvxK_z7*kh4rPXxz)aO&23L1e?hUEqYse>ZsAx_q&wS6bLINSX zRbXZTNxEe{llin{bBJ>lZ((oDDC+z^@%8@F0*Yvk9-JhJZEeePXOn6Ba2H$LUBk)9 zp5~x>^5}O~D!Hx%q7CO%x}L(zXo0?#uy#zGJ@_9AEK=0lKi@-~nFHJPYX_=yCrf39 z^xskZ1++M}?##5shMtARk;_=LLpPShc+mFQOwk4nsWoF_lj2piZ3v-ib4&EeNs|jv zcC2{R1Uy3Ak1d(kMvpe_N0}(Ug=AGDTjILD+b@nWJhv)Y#8vO6Rv~RAuoCN>(gkcD z9s7M;>g@JFd}w9)?)cNF_5@Xldv2_eWxhM0grl;M$rS5zM2GZ`Z^I#uKzPDF=L~OZd#K%X3(H++_QFDeo(;_Fk}_38?oSw6jTQ zY@+jJAPxJTZx5FAYR6LVmf4B$541roElI+9;Had1^Lb}E2jN8dKhja;IsD6=xgG`n zy4l8NPt4Ib2zX|}#%}UI2YsUgW$DrNm$M~WcNe9u zi(S@aKQG1)9KQ1N;*(9U*%LANFG=UcCrRcSb#IEx)b3PgOg`k^l=&1)Ca*`N3+Ilt zO;nw1e28_gK}iwS`QXxSc?CsFbi&dvlNn|vO}lE07VkXBHsEf_p1V(LWNq;yn-O_e zh0x4{sEJ7$EWM_3@GS%<*n(;z#&9SYZrWYhguT5v)<|~z^9l46q26%+ju~zFYLLRR zIyQpNg}Qa5b+c=7cK=$1olrm~ZZo?Bn;PAGcvW^SsS%!5IKUd$S{k#{Z6AH=7g72- z3DN!U-&e*ZDr~THKghkN-9hKbx;Txg%KD$nZw>;Mlt?}Jc_XHs%Q~HPQJ0 z{b41#2@9~Y{0l(8Pj4Rx zA{BT~W#z?%aO%S=;P6qD)jm=?&4)d)vBj)8Z^{~nk74|V@&2c6=erZ43ECDfBdKqa zvlig@!tkT~5GT1euWWwRg>YVoIYT1++Jw4J zC-1iojjZBpP?ZcbXGYpsqbj1me!|9AsN_r4oLyDK%k_7btX_z=TO?mf%3<%=n>?O1 zB$0~ou^%Gg?a%swwe=&u-}V}t3Y7J-H@5hWzHh+0S~O9Q_PRGXAQAO+Nt+4;hAlgY-cZ5fX zj%$dvY-7W;NX1I%iZjAl>7iA{UMU7oqu0{@szJ=pe{vl+HP*gl^KffhF5hbd;rvQ} zE-BKL>86HrQk##P>I1i`Z`#-+L>|SXLnl$-4qc~&G1DZ0BjV9op~SKloYf)8pQKQ; zD*!$)>7?Qlwh#q9-yvPSD_*8t@z#yt&@&sST_O;-GV;rx_|$DgZ{2$G0$E&=td^JR z2lE9`1_&B6O^~Wu+Ag`zz0XZnu6H7t61g(&f93wvs!+x=oFO98xE32~n#q}h4`U@r_Xj@%LB>RxOEBOm}9FUkAH6?3Mm9;BdK-Y8y zP`H8LkH9XTd-)Ilsh{(wa%+*HTh@gswi&ff)K{6y~T6X%SEA>AR~EQ6Hg^S01i z*YTcLYswE}@o_PRbnvGth@TiiFvejz<)DQ=$dXdf0zDayqrEdY9mm@=L2xP60(v`Q zviqtemgK%BVVSU3Sa0w_p=Ih77fN6wvi}II5;R{Ttd%B_&t0|=2EhESQ!U&xs~spn zJ&H+&Sv(38_tM{YYaaY$8{IQ+;1zcIyF2hTNW}lsX*uP6L zYqVX?oK(UMVE^JCz3soqVgL{V{8+y#=ejM>gOJ=7(FMpPq~is4B;*o*7ndi$&kxKJ z1Y!Zt2om2?Ei&KZBme;G{u)5e;o$QxGyWy2%;WhPc2$p5TpVBs#Eqt)Rp5g7!y&0* zK2whQobhh?1*T#}1BCS;W4Dp&Z4~8fK^5UgU@@lry;f z$NYaYlM$c?K$JHO%ntespvZegdQEE?hb z7I1$KhC+0(X5$}^{+s6#>CAuT?HAPxu@)vwijwytxt*9EBu;K{+PjOZMmb zKvZ;p`}7B?-9a)AasM+<=ZN4EZNO!YhwV zZAI5%9#b{!$Uvq1rDg0KFE_@x_Sp`t@(=@tUf)KK4GIz>06da}E^V;pg6Rdu6@CgA z{#ve&bacd2myUH@HBLENlnDU_c5Z47=KJ!4P{D16hin>BFVf*^VARwA+>sYPl}S_0 zswDt>x~m7`{S}Tts(8 zCdnJGMt0Ty;kl-%4Pe?G}>dI@p2TUe)>k=q-+3z<;vWxc2x{T5ihxOCuw!;DHs(@Z*AuNjJv3 z&%cFL|D&f%U61#>QmKFDB|R^=?o!bN{nJ9TjMIOrFZ>^d7{&MLK9;g0ik}&H|8Hgg zw`c$V8wP_4M;S)DqJ zUX3x1gq`qJLJ+2t8nVlAZFUwCT&D>n1EA0gDvCU1ehr~&WFnPOwZc`GL3cX`oqsBhe%xlDU#0myb|@%l#= zZ1@?m@W3b1je_vMl7oYxB2m#}mCxt|TBTUp(!da^ke5PG34LaR+RgV#jf6PMFusaN zcm=9R1akR`FC!@xl_Q6wGH@fD9avbTo(pF$yqScf%?gWxm`pRcJ8(Mw9q@AYxqYAn zrp!tj6pS%Rnt28Qof=9L*ua%sA}FNB^M9y*&At^CSC}wG>3)9=xepRccqRLx+WPDn z5H?Pb1jI!Ds1}Tb`}P2A8{>>dyn2SAK-dBE@J$sRd6TNG^W7PBIzV*6f`?MU!N}o= z?GmMAa2pt(v=HZ9EFl33(gY9zNqLib!VBxNxSI6?AxJe5E5ff!K zrN!KP#F8xI8;$W|PqEu1FoBBdRR*)JpIbdq#tdHha%_IEQ;H2# zgV#H?R?RSd;J{4-3frKh!gD{prno7Qtt^Zn4>d<^&9OTa2A~eES#a!FOrxc}FRNH= zq(yGYhe_Q#)|K6Mh{$hPVn$JwP4@rxp^6=QZGs;e*9P#YK?fYVXTsq^P13KnZ)`a5 zhRS+E$eZg89JHD47hC5=v5cy8_GpeT_yorg8q^Zi)M^Mmv2(LCJZKROe;ej<++BbA zfiF{~Gg{F&p2US5DtY2>dR%1ha^=$gM>nXf@@%TL&Z}nmisu)qXj!Sl=a>fVi^XUB z#%n$X};uOFw%9^kGl;^HrJ}Lx% z{_&?WG9E=-B7t)AmnXruANc3B zCo}^p0&z$gPstbBz@PvjAz@ITTwxwRej@wv-aAitzc=H942>85jNM4*c3EYY%6O?< z&Gd$|w=Hp=VjcdY`-DxS5@$r+@~(xt`cQcD!cg>O@jf+SVRDsl;KKlGq5>^Cw3HE* zQgYn~ImDJ(kXUB_k*XRa=gV{V^cq_aZ82E zK-*u+n=|#Y`(foTAg&s&8Z79U8h*1=)cZPanWVBw%o@o~4ujUGHP`E3YG|Urf3|cs zmG+x1@IfhskZ5$wCrwyUJ?TzS=c1-~qul^KNWjmxQgd)DsXBz(az%{W)$yhiibSCR zhm=JTf(;&9lf;RFW3Fr>4o?BdXGJ9lP>e`3LFcu!CusI3y{DOE-%`tpIqGAZFVOmg z%T|HtbH)JPxD}4N`5A;Hvd`I zUD+!f#(9q5;M7;b;zdDJfIEW;uJR${sHvcY6y-te#~R61llt2j$sWNFSVEy=)B0PA zDKEHfmd}jJMeiWMkq~9@FaVfkaN_7%bAiRa2P#9MyQ!RK$P`XC66CfTbrw!_?$FdK zQinwZJ-sD^FsHRL-}Q^jSvC;0y#ph7SOt{T{sRqpuvJ zUu9dN#^vxHOydsm7(@MyUhnhdb8{CQd9kce*U9?hTcg_>g2j^G;t2xWEjsVgE|CTN z{0o>bt4DN&WJ&-8NwF+xgoDLC?)+Hl+;!|!H7q>D0nWNcE0wt3lhVp-<8XW&#Ozc)PHr<=(TRt#&9W)bPHAKS1idiqiQt@Stj)LKx9pZLOgYT zpqcxV?9n!NP>Q%dJ6j`greoNbjh_oVWMD8nsBhl-OranoLZu=_>b1X{FQh`*)aZO7 zYsUkDu*`C|GyVB|0}`~3)a2eJwz@o`$&U4ASzbGhpxvC3&IF!bw%ka|DTthBO=2b%n}?y1x15srekN{R{hCln6jwsD+SHSr0J75&>78>^@jXqmLN@#c8WM`vUu!?)vf zOJie@WM2v1EhdMi$Va~`U7=ETtI4XEQu}d&9uW&VM)tk7_&5W+B$l3D^n;vJy-id<*SSQ;JiN`!b~1u8gISZykJ8_2kKS_?zk#G{ z@+=iWtwUz1(Mb|Uq({JHxWxY!X?3;9h7dnk9P0>beg1_+kF0^N$Z)q#3@cq2J3^2dY|VLR3MiCOpikd3z534jv5c+z^L}?~uBZow zg%G~xR*8!LZ1n5ih$|WgE#sgT=afGeC%lF&xRE8bsw8t{Os*shay!|4YYkJyy6gt3 zx`kTOr6mL=*qJV7!}QI10AR_Isd)Rvoe)e`ZBP#CSHUS)j~JN}V2 ztx0AZ&0;qDJZxqivC>CpwE#pIQW(>t`Bvxd8!IpiT49BL6^1h!NQqVA zWNJ%wui;YDVmSvFf0NP8D{wGwhsljc=t_H-BMZ9+KKUXd!!L7(g*9tNY}9MSvDkPi zG1@q%>c?DHq;SBfkCBVPfbSeEXQ|eJ6H7qwq~W*rMHYR>JKrPcexd}9R+t)nO9%BQ z<`kA7=g`>R!;|kyybK>i#4&535gj){d1B+m3IOtS0_Bh7Jae z{Ixqe)zyw$XNEQa+me2YUlJj79%Qm_s!Mxb^9 zim_!ZkB>MIrP?JX!A>`Za!z`kLxi_ z<1k;)Fd8r0YB13p%=~Fpt?-pWlN;|#&+zfhtP*I0e3DUUmDj>@79pC;-YPqf-$ZNN zUN~y^1K*M|AI z<|@lh%dXGw;bZ9(8rInzuY|2j$Jc9Z56nBOmYHW;gv}^T%GK;}iyjfG)6K8!`bl41 zh|tt`{-pk%SE+1#O)F?UkF@LZ+NK_T5#!4rerB7uAM>0H{!_(j9+uX#bX3KOg#b1A zNb9{vM};DD@l6a#N@|&{B-tw5MCZMyrRhs6!@$F&^U^7$)tWcvhBN2-ykD1xy5oM^ z8eFN+P{imy{%pzkbo3=|mZ*R%f2_8baWx`?yAs~)uUYPRjyM8)L0B$wx@qfb(gYOw z+_!tHN5(5<KpoJpA59a#xcd+}=o4ZH!t)VY;Uk)ee1vTQjGouC?^Z8*Y?%=BydTrS&vkPt$Qi%iKU5-7#BDV@*8;{#yR|A*`o8aX%ivm z#YsB)a7EnYoRQnT%!J=v^WF`?K#_N%q=k0Ei}IY0AUQRB!L>U!BHWNqR*K#VJ;@}o z=bNX6GmbYdYQSe#Z4_dv8I!0^?Z$Me_nfVtRL9tumXvA)y9`#pP^qbO5DrO$d$ZmD z$f`#~-DM%IjMR^!>u}D1m*#K0b)g4mP$JL`;nul$(hUMe&ZswXT(?=kVcNjeq0>qe zmVj2Gc2uJGi^{#aVpTf?@s?R643c16ZI`*3Eho3N#n2_+e36%Gm281vl)as$Iy|F? z=ONY=m}HvXH1mvngto8ieAqlWSnfKV0>(3iI>o!NSprlFNFvbD%T-Mi@>&}*=M>;h z%N~T+kc8U=#LG4sE=CPW46j)*W+Oy z`pg549BHi}URaqHlpiNkVGl-OVAH7B+&dPG%}67`ziV?Pg?EB7UHXX1=qklP8B_eD ztzO&{&*_v`Q4iADLnuuz`N!lzr4{st>OUvXyOqZAtV8P~t7CCmAx6kiQ;~a(CYEDr zM%@Y|`1ZZsWBlGp@x^PyZ~xIjrddn}WWw2OtB4qdB>iEArf*qZ(+p9d-O+Rl3y z^_|v^kFds3_JshBwGtS(kdYpjTrJ)0oKvuE4r2^q0)F&d7tep_lAEj%Fm%!)9Yf!8 z){8+hc&g$Rv749EXpT-L!Z2mx@ZZXh`@aQHHfuYyBw;kGP`zQ$=>jwdiD?121+H+O7=`*c~ zj!1hZAU4qsr4o7waQO@NPRA&>DUfbIBvkXx;JHHzXE#KtBWym{RW5+e78r5rSKqR z5%SzYMo^$hL0A!}9Mt+42e!9ER7XIjk;PDQIkk$9jUdWk#K}WWr=HBg*Zm7v{R`k0 z%InW;!;q6c@D{{Zg2@jMS#X;}cj1+c8C`XJB%5hi^x~548D1qkoub)unrM{FW^^K_ z-b&oOtU>GKI#q60n)R1HbMJ~OGpNPExlw+6=8joW-y(2*7+#jK*tTkMk5Jgt_;J`j zVad73(cmCYbT4e1+H`Jt64a0Xf-mC4Z0<*pf5S_M9Tn4ttXQgEalTK-k%gjqZ-~z~ zz`@C|6U}krn;C8`VVE|k^zm+aR4SXLc_>X$RYZs6 zV#nu}8L@3NHCscM`gTvsskhZsAl^iKyY)OFAw+)XZ~3PyS21EcW3pX-aeYh!rV1#V zV)iQGA7$z-IWyDRSInGg-1`T+VB!*t6&qI+4^tG_<736Nv(vnnAGylb?wpOLFxv34 zJr+J|j|fbVSFOL58)>0HkcZ&M9IDuwdQPvh+Ak$KJ#4I|GkTJ~BdlB92KGjC!71qP z_ZYf9UrVsET1a%CQ}*r4$I*-)nwBy9u1+(){qc1fUWINb>f`UFBe{6F& zeg`}t=y=-_D6kK4>=v4<2s;{#;TJ3VQuMH;UlPS> zo|B>s*7Tz}1;>iKmWWh_G<5w*-^rjL?GuUoM0|1&o>$?KVW@xD6vRhfI>^1DB$iYa z9xv!Qa5o#UOGLYkZNh?Wqq01%UWh7yipj&Zt>=Hbdwa!m)1sj(5_N;>vS_^Uw6jDX zeoin%E0x|&RT?;I9wmJciGYzb9_R(9R7t8f6_+Z5uQQY?IR>ZT~i+bJtswS!aHtFWhgzDB}r`S6jMWR4+^Rw|1NDrbSe zhAjIX;=Bw5?fvnm+AeGL1OKTn@a@gdR~N6Q-(o*5dfVM=lluM~`6=f4^#6fzKKKRp z0?p|*>i7S_-dhI86>RHbBe0l8%*@Qp%+iRNnVBtSW+sc78Ei3w#V}%KSuD%49i5wV z&V4WUC6ymZDyh7w>FJu@dwQ?6x@%@n_xF9vRQN7PNU$VGN2SkrUKPL!xJQfghIoWs z$6wR`SF;Lj(JIC*&clk-HzkMv`Wa{d;EWOIy!2nrUxXFA{`viXWNS@a;KzFBKb`rP zBW3W}7^^I|XF@4X=;@Ns@{nX_KmZWs2l4*nn<(sSFiJlSA zod0-%(hvA&ME>Ra0`?z(5CEbQAe?;qU;JFazJWSJZPmN{FX6WqDM}Vf1q?)d`;Rre zT=4(a=jhI0*Dd`2)8qDkd}5C;0U?qO+=S97JNiou;a7*$$Qxn=`0Rt?=r>UW30$8& zfbRm1_t{GRw70mJWHrj*2j_t&OLP(*!3k+j@Pyr|fYykAz!MHe3^EC7m2CyZFQlPl zBlj?myjHJ8Ch*7LGGkbJd>SfToi*| z$JJiL2ur!i-w+snQhhMNYP0OfB?wMQsK@sr=>kK4n&Uz(x~@5IPzyf?2r8RDAp^yC zs)L$Tx{Rll|5>Xmv?zYQdiBX4zrgpBOX@E|#mN3GA*tF~V|;~igLA+1&w6?BDviWn zn3#s`EwUih{MLGS>lgH|i1)UC*6p0Vl;b<|Q86=tUn(uKe{KA@<4aoR zltT0?|1&7OAH>A}&svFjlI^8+|G=H3%JzR6_&+1~|KuFBQKj<*5JUC(&^`fR&-aC^ zJ`hw!(oWK4(c^jIaamst?`a(Y_C{(Oi(n(qBHG*)Meo3RJRH$jIEC&51EC9;W zu2|9!1QUQ4RRv<}gP0Q*{6}bWP1|oR%4%=IdV&7kXOeTyGg@ONKUUnRDJB+NSH+x- z22l3Uzyk2`Bts7S;X5T#?K-zdSIg^Tu>dXo9*`tVSX&#Q??%(Ev3 zE`^Hs0+ABJO%~uJ*96tg4OjD-i})(<%V0YpiT0Ld9Hpd`XJBIsHm#E%q5#RW_BqcOf*ht;=u4L7oD(gh7Zbz&77 zsYUwBn}wpRy1HcQ9srO=K9CLl2)#~-VbWNb8zYdutGw(LMWGzKFp2n}8`Tce z3hK~4&9?_wN#z(e4Gby*Db2;DN)nenypH9#aLG_@Y0-cYI>A**XgSGCYBbSSUh7;c~(y(lG$ZpCx-6ld-2eM zD1Fv<+2OY0v4TpsjIcuz&4P@%bs$ET>yZtl{!RVI+%rnEV)cRxA3B6I%HSICn325G z9puyw1xSLJYkmmhm$=(;pPl3Wvx{yWV418w`tZ}S2T#0R)S7@ot$zJd)0QmBTYl0z zB2u+QYdx%F5G=jdLaia@hT9K1Bk?FOosjpE>Dy`6I&+DzCOG^Fe)z?G@cheTAOmlB zm?+K*({B449feNa8R+fsJN|+)88_A~4-|6nw)Qf~CDu<&a_j$)ki z7rI=UgUwZPyG6E+m##c|Xs*%O2tH2>3Q{sW(2>)1z9zakb{qKDCnFT1A#B+Q(xU0~ zIiw6nga#Dyya|UWx1I$I?htfF#o7b*t=axTXfX^74w6CzPJBD&@7@ueS9xCJ>nCX` z`byjEh3G1-9yVmb?b6-3!%o)tYq^FYy0MSyHYYb!L=|y9x*6nGwbXf8@WTbv(|CNm zC_o^am>PVnAa3yo%Jb;>5jMy-P4&xT4oB9a1i+m%K2&h^h!D?U)82$WJBri<4GqeT zXn%#r2i1EAM}Xg6Q&hiygVHh_mIm@ zO@s4V>WaN)eBG@)YqckAgM$XP>jES%T4BbXt^tP&^?)miFIH^w?1*$Qv;<)XBKLiS z`mv;*!)YYe`P%7@8(MMVeKH%@*~%kBm1+BUEy)fir6RNg_wf`*IDwO`Ja*k?v9)Dw zYI7SQ7bSTQj%Z4ijyHhQDYnGF!;W^?m4>yi3R=AJnL%zj znaw&fWiO@zG5s>;f?_>L&Q4#Iuv|lHY1>BK^n9hyXwSWx;Pm$QAYCt%&|J>0$OG|z z5RkSOQPNhJXMDNe|FXE7ZOgv<0@qoSo9AS;i-QwCdW+x(9}F9Esuz4u7}>0n(PP4$ z6X!rs(2%n|PCj*Q2*-7s(iO_zn|gG#klHXYr!qOrTDMMI3#&EOXdb6Dl@*Zc$HhTn z0q=LLHZ3@~9ZG9xMAY^eVs5x(*usU97T-yykUEx{XjWnA*0AeF1=H4Yedz%f?LZ_v zqG$c#_36;5xwfecY@mJ9f`q^=t@+~Vjbv$fzRVj8!8t8Mm*!7I={Df`1lO@=MT1EwLvO^0M7D~IdNzp!p>w)EWM=}oeCRuV#5@BUgU8qMhlgi@5coz!`be{48*_d2>^kwiRPjEk0^NyE;SA zEkS19t;KO4e|px!yy}j*a#4|(=}dz~8lNtKxoly1+pzy8_WaP1m*Mv%*}8m9%^J}n zVPJA1@Dv_)T@%@z?$kI4^w)EnNT+v)r`- zlrlQWmYQ3aDt&Xp9iuvds9XKRk=jr}D45Z)ANNUdpOUEL53wayimYz_XgG_XyH|@m z;dcKAddEaL0E$p(4EIKxP+Z371+qb}N5|&T=A8@%dkw*`KtW--UYaht6#BcZajLV0~k*_hY6l6_pq*Xa1H#PVUy#^hvo4zJ1Z zlP~K-Vr>q!-F&__(Idf8sd8rEy6VNz7*<1F|3Xvn*Jqm*+P7Ky1wNN7FjMw&%_2|D z)~8Tm;=so#sTI2LM};^a5Atu>*=lB1Y=+%2@v3ILXTvu{izIVC+&a!_ zZjRKj3>q3@z|P==KBwouajZvIWHS5gfLFqf!#5 z4Qw2fB7;VdLdOWYh*k@=RupqZ=~gyP#s9h8E_Ub%=A%g$8$#&R$&dD2)CrY>-y#*E zEg{?9o&N{VgM8ct4pq>7AmH5_^$K;9MC1;&Qtz@kJBd?qq|Pi9vJ@UxDV~&KFoa4` zoDd+>RY@lAa@d;&2kQcWH7ud-z4$VrplPB(iyPS_No~SY8urbJMAi@K6RZ0KARStw z*AS(%Wbc}g%Ogt|)S9lX@-6s2nijEg!uuYwL<;3rG#YhwAjLve2;$)dHfX8db9r#; z3l|0v_4mS;?{`mvf-s!dnX>bV4>`mPh92@6*vMjqV|Gaz3> zk2$1?K@2zsvXDaZ*Yg{!Su3o+UVa%|xI`54 z%|19g+3SC(F?Bxo+Er>&9Trnxb;Z-UNKYp)q0(%3mDLdg==~EmN+6 z5Z21*DctmbZfl(#b8mFy6bvkJrzl5(8z`n$@(bdsEr$e(YqqO=!E_e5aQ=^No}pmx zcy|cnk$cc`QW$eO6rOCW9OKP^?ETxKQ9s%V8=U1q$y%%(GQuX8&2x=R2L+j|UP><( zx`2mRRT<=bl_*TV#vuEXI^@~Vr*ISgS18_RYQOX8H7m1G>d^D0FN#_oXCO3=s5oCt zh~ZYkng+OZMIjSKwdc-67t)?Ic+(nP!jO{I^;6wqg)h0D1bC@nv3p|V9tC~S05%N2 zbjdYk=2i*--O+v9S921aGTS@7RV041@0FSfr_FoB)aNw2c$c#;FmZtYw8;I%D0~L3 z^|~s$(Zxka7p~So(*n0n3#BL%TTG^rTv^Q9-5q5bv?)CgjGnlEA^3XNsoo!_nT56c z+-mUPux>7JqgR*foEJOI78dQ`+_&K@Rc=Zl2sj$5W$5{gI?-Yci2zIQ@Ogq zxG@X|$Ia0Esx!{KNEPRKn4U~*fikIqrZ^iZI-o8B^GDVQ4&DGy{K>D^5i>U8yZv~F zX04Z}9XB@)en}>+>_(}UW3z0JGoDQ_9?Tpvs#&7b?|a~b>zE_;C{IJ|%A#mbu#++R z{(dB2burpuCIs{Zp#Ic-NTB?q=M|Z1&UN{emp7FM$(;W$pv21inr5Uzq{9H;h>_mu z52`Dj$-8aWhGEw+q1h6daa}z7rdDjbU2+ETUx2}!Aw!PhHNn`NRS#9k&@P5KVUsM( z9|w8139BT^TI^K!ibZj?q@GL08A~^qaeec)s%hUsmDAcb%y4Ptu&fEu&0ZV@30hX{ zHj`@cA(aHRBCR?K7XCLoLjuUw2bE=oB~!1wj@I>EaG6Ws2LMiFQsn{fO3O}>s>C!= zGcCSeLe{u=cRgo{w|;$FYRRrH)89yq^+dcMg~$XHD}RwcK|r*Lt<$P($Zoae`sp5Q zbua9yQ_mUgo1^tX=Yam6>u-8t4-&%hrIoZax~`P5eRK_Rg4gaW=mjCEY6C6g5f-XBG^w zi?C13RL-S4-;D&HDe?~I5N7;wE)$pp!-sXsx6Z1w0)(jFEEoAKC=nQ%@{ z$!~Q;z-+(=rsbq4{Kp@G(TvJWvX0)U@)dG2^Q{fPDoWi`rkoB%LPhG0R<9~qTJrrC zTFNwa(ooxC1(5#P?FN?&Jy~9@zUA=u9NmJ1*{{NfL`rrmM~3AO8HN2#l3ZkeATa2U z?=N~dCZ4ZX$;a-?c$ro;HVDn3YJd&Idx2uqv-k#{CIegRDWOHks@!>ECf@<6veYl6 zVi!C(&pKFr&N%G4iS1w0dJq$(<1)^Owr>2)gQBD3M#Cs_F7e>E^a+MuZwgr0bjpwL z#jlp@`Y0*Og2$#tdaUGN>Dm=Pc3nBWmAu~s~i}zHeOQYa~j^&~u-YK9| z4c3?y_?WwF!5)kzLR#Wt%1<1)!-KPj$SLhy5|))D%}OxXfe~R29tRtgr9R|O;Y~3_ zl(Nta&zFL#yw%)@nF^yPf&xuer zlCkwpHd_Qtc5F6W`H4Olt+8?aDoH~;iJ3OypLA$8(esAZhi--52|vi#@JhLV_Ti$T zKB72SNZ?wy_7mnkIBwN2+tTE8+&azAO6uV!?>y~MY;TPxN$=>-aT8qKJJY82v0KY_ z+h(B_s5^Z97195Wl-q<{#@c-GldsN%3l6L&ZyXt_z|~O=3f8;MFxx#j^t}|D@$lbtMpV|i+pG$WTxSa`Xx5) z^%?=#AZY{*~ zRC9Rs9p;pn6Gr6TeWfWXXNqiS%mCF@X;RZ1isRjPcsWGsId$KqRh=GFwaWqe^vNo| z-|;A}$s&tic02Urq*yxfTA5=XA{MGyNqS>XO$J|gC_wdoa-89i@g*Y^LAi=q#5O4f zl?_R^I_z1)yi4w*HUgbk4hnVV0gi2 zYpU15T*6(##!!`q#3ONTO#~Ydo@QOH;C)Rc-?PA4=;O6Pf8iS{wL_N+)dM6@W~1@1 zPj34jZEYipSQr&-zB7YcABDGWZ9ELy(?0uUk7QiUY(Kd+oH8O?)PB)#RvP56DXqpy zVgAD_x3K1TXO|G4gcyB6dFare_uLISFG*5+>oDIQlim6X1bb0;uGF}6Ju8q}Z_R_! zDwcLuFOZKcNNZZqn2wk8?G~(KWpe!X6PYs&zf-E{hd~jt2NAu)M~xdp33`tmOafD0 z`!unZ5@CY@R}>RnKi%11Wm4GRYsAakN$MYbOZ8t}%cKzqjcI?T=Qbka4j9x^5lW$( zlGYroO&2^+W*H<9A(XUyGE^lSK(0rjjYM#&K>WnbKEkz`{oAkooEkaA3dYLC6Fw-K zSfZVG5I+ya#KJb2Qu5*!t*`CTXXJP`;>JzIkSe@f8ViA|B#n}*ka5#gu&_1 zt3PpF%A(evs=2P^hvsBJvux@^$NChAc5SgEdL(vqt5$MJo}KDix6oBQ=6gxQ`H3r$ zfW?BZWyB$zC6cpjkvgg5sa{<{wW4uM>*&oSeV?UWd-8E+paoS;bDZ=v6>bUp-Q6LK zzJ^S@EiY}i<$8DEVA^PDeD!+Wd9CNFMaiCcT`g6H>?Nn6e9wFDnHkx z|IJfG^QRaT6Hi#Tz=<};5F}lKg^ydHZmNO`D1q&wkHd)q)^asRq^y>}L^{x%u(#>`k zKRoo-pI^A(`{J9sLc^-zh9`$KS>~9bp~TF4H4L`}eM_y}G9Ls@HU5rahI}C;BpKiB^y7 zICWR@X3CzTgZ!B>7r(#pW1~gIEZ<`8W5!N zI~5@ocW(~5myEVR14LZ%jnDcH96CKz@$}unTFuUX^WjcWE!?HXZpp%!rGX#J27HYw3BN2`giXMUzORh8-~PP3D_?v z1c00_>8MJ+>hK2v8w$ze-R^{H?3(nlMQ>B12kiuwVf>@41vs|Slf^wugsmWl_j86ybZh$ z<_r}hMI@2EJPj%(KvrJ%X6g1%3rzf7@qOLA{&=_69nVOBd9czIEJ;y^7k_wK<@1#> zn=4t@&Q{yuW|#IxcuCUYM<JEvF2HRD}@**Gjgb&AoRZ8!!qwr zDrY7+VapGt_*S8LH3Hb8Dqek5y zu%aiYh)M);vU-J;8z!?|thUrO$GsVmL$6gEc?h)H6WnUsE7z3MQujlzV+S?IK;2}& zD+mbGSz~9LM;pHIAXDK11E#nIb3{Z~@Ql?!n`&O4bg3@vdfS9rm#Xj-urydJ_^Zto z7ttf8IO*$cBg`tD;A@ur!mEwMM8A*_es8RG*cjo3d%l*nN=Q2j?aKMAe?FIJ7_nJy zQF*P;57sOkWIwiURbP5Fi(+D9e{wzcUc6V?Gw4eRJbk+*?$y;SV5HF%gAh?|Osp_6 z&{b7ZR~rbUig(bNfm{O;ncd5YMEP3f*wDy+g+Ub)f`;G&TDo)R&&?Bc<|~d}rVv`{ z`(bt!x9kw_O&vaE{JV>9*YJj2yI9ahRyuk=_7L?P0f zU{smn9~!};87Nr6Q`(_9=b(GPvFOt%hyl<5$LvUOIU(8kAF6$I_5UH=7j{PS=QqjS zk}<){?4fRNz|~%!mt%%o^Nb*XIt6+Rb<-5ES4^VpK|X!*3^_d}HQ?ai_IPgMZR>1=3g1B-dfHcY~o9H<`#TK$*m8o_E2^|fw z>Nt>o3@zi6Mic-&8|g#t5CjEy7|7}?5e)u#L`|aIp6XnnL7>3)3A_A^dPZF&Y4UG( zwe#g3)uLBIFq@Jrp`vB=qnLsQpopb49b5fYb0d|YJnxP=!mKX(F2%*Ul4hP?%Rs3v z%bsac6*Wa}OZpl?vJJw5a|ir+aElJu!@m-+E&uFM8CCSKfVH)xmDG`|y(aJD`xhYe zf6swU^z?sF?Y_2OWPPBPw9@`Z*F$~?5~%GSfGy@-3MP?tuayCRq;n`26#NS)ENEN& z+M_-^|MM*N`o}*Q)|LMO7i;@>`}u#K8!O5Ocw^|Us3&pcY-~vX@$kpbYf1j?Tm@C+ zw4~<7_J60}{|gUX!^;c32kk0<2~2uRI;~asPuu=&?}s1306!?bi-qTZ*;e^)b942a zL}}_!b_br}8up@uhU@#)ev`bclwVh5JS`Ry2hA&Q+8P_u?Vr9s0+0ZLb+I@0${%2` zCNA5558l#$1{eSZfS-Z;Mf(w!pE26@HO8fX-qvc2i-l+P{;!FU zIQI|q+5b3@LZJF8X?|$^L^1UAh%%&JQ<(0;(r=R*MK`WE;X&=vg`03@mW z7aLaTGh+__hhAD3wBk9qTs{`A0+Je}?!H9`5mqA#!CuLuQ5~W*Pi_RGq|wx-&Z*{W zjXotLqA8X{7u-BMy8>XhgBMkP97Q{9a8(ky#F@nHKaj%VTov1pVoj8+VzZddmHbH7 zR%`K{4gq2u03YH@vU3A`jJ9uHz~*~gmFE0^L&f!@H__@R2jz9Gwj?jSqBhe+w`2(< zB%~%E#1V8*6gk=M4z$kGl3LGNWbsjo=4=2)c%Ujqm>U4e?m#WuuR`G{PCZ`|pd~vb z9#xJ3NGydeGYDsR0k$M0t{kdEXew@H!zM$}e*ju~rO)T>Y>%I5^-!b-3Cr!zSO9K96Da+=zsq!tDQzuU8B8A7Ojnbuk1KNVxg^o1-~fd7$!qFfb&lA?4U-&O6` z1$czT-xq^Uk)vEBrIt)1gA+Xhl#>A>SU$vLdQ>6PVGFCgVewD?b1UNClSCq6&uNya zD$B7#FS&p1_m>y#D6g+cDNR%WEUbHQx7AS}FBVyaxM>@N8H%T=Je&BB+L*6g&PRR~ zs}H@Lw)*3P`f_Tib)ns@xW|Ht8835~IhBT2gR(8v2;~;vYisF!m&-JCX{wdlIH19} z%99f{MrD|n*indWp%P&Zq6w-lW`6<77dV`j1HQ?^7iKYCBw|soFm0E?e!lPDl79aM zL^dbI`zci6Nd)N{o3pih$ES}sV@znZ!k_9_YfS2rM-a$oP2<+|yypkvS+}5aA>s4 zwtASMM=M+}M5wXd0HU8sxI;;ai}oA&e$|{OPPZu*>8e1gxpKs#S`8y#x6i~Bv1?+$ zc1@~pSOZtsjfh(gM%_M7rJO=DF^x7*i!f-#LEnqB;gp;F5yv(JW2AMj&nr;xwa&R# zn7`MH4!hwl1{QtN&zoEqVKPUm#!G7Xtbn}Tk|^DK97B&H-OgEZ`0F8-DwGCiR93Q; zOg`>Y{-#m)tE7K@A!^Kz1S9Eam?JdGHY2!ANA6@CveCsmL1r^6N<<96?;w5_2}n|+ z!}dwYf8NGKd!HJ zK@ve_-YbedWuHG2!2%V(DLzupf8Bl9uzpbTU2A%5Kdtf92hjT%i1p}W9eNY6KEsWBe=P_jv8cZ2e7}&Gl^=9RG!`&|tq5SN{FKLU$qY!jP8!b=CB)?8t85xjUJVLVyYX zY_U{DaKxXpB}HZ@0r8-(UZ9Zi)f#HZ{CfCU5D$utql?kfEViR<9JotDW0DoHFryz3 zA#y8hiT^qWt z_KYMkw^Vt2&FG||(n89_=vyc|6c!-vEb`P|L<{BnW4#tie5Q73wL@mB*lbt5!dmGb zA~$>D$)STI(c1PX`TA{2p4|cM1k@vzlfkQ}i1}Z@o%fH<`l9Y{KT(fmXSvKPy?Hw6 z#}p%no(1osN!^~J@2W));RE8-lfEf3v5PYx?QoY}=+cchSYd#;$n|;5O70~=9PCPN zRbpH`9y`Lz&F}fge!E>)6h>`pL#z4add761gRA(0MFvNv=MH6ZN-J=W-A%u4N@2>_He09iw;T&ji%8kh00g@YVU9-S?>bvWDDfeU6>4$h#;EiIZJUOW1dV zC0~x5aDVz^$*cVZ#2YBrv!*KwONG`dEB|a{BbVi)+T;j0`ZUF4fB?g{*+b6hgtOD) z>rZ@(@^0YQ2k9?2pO-i|XO7uQMRs}t{+wjzK!_MTIC5?i7Ku$qtwOYUft>8~AyR)5RJd!Ez^FW=k{sjP53!K-Tn>@pK z8?yZql|OgHf9`ZF7o7IJbjh!Sg7?N=}i{vsSOiI^EhXmyGweGkoj^Yd?%9oqMdZ#e&lkaJpJUrVl_@Zd?}ea ziN*ZpR>Vg@iOxj%hdbD-`|^f(B;G%xB)7+}&tIsJxQo>`RB~QGD%Yf!+vdV?tHCX{uJ>v2n<<5X;xkvzf>Y&}lho#LATBPUM1I&3%eSfUXNjij zq>hVel!XV8JaitDvAp@5s!@&edIv1R!m#)_qLB1pk2yrjVFuhkQ*j(}tl9Aykqv9i zD=T2I&UGIN+VcgnO*f7Ut5{sH#oOl)dKBu6$YR$3Wftg($>$F7C+~`;W~+1YPATVU z>Z_Zi#Pk`hH?M8F4j&|K&Dhkk4TtWtEIduOd}t@5DG80yD$pfwfsTFv;Y#p#SNBCF z%G!^l7>NA)`j*R&E{_FPj`Lk3I=3Q@e^iJKS`rWij&fH)(M=0m=D*UZ31>_bj!P+O zKwkRDg{=(GeSL<$Z>v%pUpUxMX?PIAvhlF(sAhiT>r@!wubHHgN|;$IPGY;Hn8Q$p z;T+KIWeYKFdf)yevwG3z-+x5?Eh6N*KJlA9$4Z@F7jw{Oo^bFw4DoOhvH#?@mqDq~ zp|Q2jW9FfTldA|;Zi8(*!=z@p5oE8eh`4%U-Gcczj4K-*?Fq(Q#8X>OJaUJ*Z1NA7 z%<{UV>L@?GLZ4i$Zp9ww-XP!t_5jThKeLrp`#gI=)csnqiot_7t(KOnN10=HLGWs+ zg41?+(i;X1aFqz#LeFu|sQ6^>U|9o|Zjhj}1kl7F$vp`XvvF`UxCVStBu+m#P%0Nu ze*zBcHxHO0E_(l44SdpI)H1$5{Ox>d`3Z?w+SjSHijq8_VN0kk11^;eB6eO_A`>=% zrbG%WmkxVqqfqZii@-d|VY5`Rw)v z;+O9Y$%l*)45}=u%cY?PcGp03tBOo=za)6F=bmy;6ap)e8HoPWJ5mxm0vVm;13+D* zP&tcfxM?Y|*|49kB8L`tVlszwou3HUD*r=D!v~N!1KvXHc`n*c28)icrjHUgD-tKO zdMEFWasgtqUM4`qK8KRJI4D0L-bA??sxE|b2!#Cj?vNn&s(^JNl7VU}U}|w*y0~$w zPm;3xC^E;zO@y#VNnDBl)E@hX{@6$H`$swnXrdASl99gv1?uGn{jU|*u*7T4_qybH zI=kF(6L^bQ_KZTN)VL^E3sbi-bD>yQ47Vl%j?RfQ9Uh3xXl}I%0Gi*1FfWi=6_hxCr0z)cLD8|;u z*Y1C~gBsh+;YL&}TaMXEyg%MK!uvFJajTas0`;q`ALWvvFmtt277RK}@<|(K zWORFF<#PVE`92*Kxs}BvGjVX9SASOF*A(Qs)4J`HYb+!sg*x*srS^mrWfc?scy7L# z2F6+o0$?2|vyLI&+7-oP#KE-iXLmxgLNuH=7kCH>^R+YgSH(26d8|T7VobLIVtVeF zv1@&^AG6rTAHK=%P9{CpXPeO0?kU!Gex!B+dWF zrv!AkJ5`gsXVHsqVoT}=H9khbUT+SPDt_}Bq_j2qcMd@nG*MygVHur19aVXIkRan$lok z-DO#J!)W}rqPd<0(tzUX8h71wjL|dWlo2Bn$*pfwZPn)D$yAck z1VZOlAKyM}v}c4BHn6nn!8bY{ou_#W8$2v?nUl~#{544GxTHC%(KmHEhOGe6GLgN5 za5K{*Y9>Pi&y+mtu)unAF(qve!B6-Gmc8HGQe6rrhKPr zRc3LLKc{#6?0x>(_tk<0*NEM(uu(bEa0hxTV6>8OT9O~^a4l}d-|Ckf8D#EyH>}-i zm2|nZ=Fq+m`w3Qs?rbdiqVv(cqH>h~1F{jbwd1BJ9e8Psf;uBctRJ25zLu+ZEA1s- zf!)s_3oa0EH4Q$WH0?f%nR?HpN=lF4P`3}SNnvkFO<<&B9LnD5I{Nl$6v=?6xhynP zO)cH8W~dFf&T)y)DGTRT2Ex?v%W}TrkyD1?yzqQLLnH1VtN@yg9oN{LG~FYDC^^gH zlglQ>A}Pt%YOFWZFAW@YBXPby$2q*uVYU8Au3AE)$aM~`v%-*>Lty7-p|^nTTY3*@p*cpB$#4<}lIcs*sfHp6Dp zfJ^Y#>6xAVk1a1#D|O#rJ`LCMDgI4Poj%B&$ca5-MMsRT_?JlE4K~k~;!9}Eis*N_ z*z!jfTw0%|j)Xuss!Md6jP_zbX(u+cG6iFl13MM@=jv3b?FPOnju(aC9k=L1R zw4FFw@&ZUk_b|2|x*f^+DK)IVTx8_o;SNiWrIWF=%dlX-m4^7@%3?Y(SJO zCBJmRGhxYqv>BCcp8)=EbAFG(UbB})>)fA(nR#{M9wLW~^N2Pq|&sV%PEYU(5=IArZIK$%pQT{;)GuV@9WPOyr531&#fL zAt~d3=oac?&7aGW@Dk{o5cr($nQ8=_8RO}xzAGfiCHF*%-)zLxrF%NsK^H!n;|~<# z5)%-Rp8eEizu=TxDDd>PtU!}+jdwD~c3B7>{EBFVs9d1ENGNiT{E;W~^!{>Mv0>%~ z6|aLS-!y)0p+I{3a}eHj3w=pzZsg~xgU@q&@2hPyv1+07l-PT#jSNYdQCtqQsilh3 znABk2AQOh@RW?ORyI5oCj%RlFx%jHjlSl8@20`J?ftTd&M)pJC;Mf|=cdzz)w@-ga zi$A{V)7@Qr8Cij&H5)Yc$q%kmEhcULV5qSm=$y32?TQ{^wl_p5JqY)Fxzux4>LshV z9AqdBWXYlNVK^H~30YFf15zu$_}|)vh9@2}`*1zfldf}Il@|I|WF<~>`4!5eWv=$U zwW;|h?@4jyZVhhJ&zZHn?R-J-Ni|**)zcJNOlJEBPN>F|Z5TRM7DzO^{KB23emP%v zW5TZzJL*L|+c>(KRh)fMSjfNSeciBP!SH^o*gkEEb|Tlx!LrV9MrT)YP^?23o1nc% zC7Ef703FWz>e($G)~Z`aS;LX04wW?3Q|1|aW&t3YNFTUSw;tnVSOihvS)j-oe zLu)eg90$o{PnZ$fii$>0Ao!eLh@a2+YRMI|&c2{o*sS~5gCQ%15aKHmm)9f)u3H|K zXPKG&iHWBHH2ngSvCbr5Zm)Fz= zIt(TGKrB1EPe$C?-+n(^A@0lQTwa(dGO)0|XsFNqs33cG+L=V4y4&xY;?0Fzq!aI! z*KSVJFGh0)J#k?fT&*iDUAQn~)k^hJ3$sQwl~77oDc^8O{JTl=pJGiMJ}p1{&oYB@ zcg^DO@p6dP$hR}kS`d+Bl}^Zy8P^L*ofXDH^yNWLRl{Es83*e^!!Cxio+{B{(m2hJ zXHa4bwH{aL*F5da@*<%`IY@2ektX1;b9W*T#s-gD$aH z`Nq5Y&SHsBn26EcOUkitq?RwWoQmfcj+9I%wdB( z6P@K&G=@A;-<4h2#$Vzo9xjvqBR!F3J^s~m4mATBrXJJAlrD8ZRtCZ+^sq7j9~}`n zAr=RGpuStI9jeY&_+)645XVa=%S7qvUcBL`b3`SQ4@1`U2Vh0od`S-f0z&>%U9+zrt4D!cqc zA=ML`FI==(oLZDEUG)SFdO|!Vp8OM?BE?t@eSw<%F1_rD)V*xwist1ZPD2{^9yJ8t z^cIZHkWmdSTy*U!T{wRzMRlBZg}A0ZkoF`d^gtZTdn&y$U~d%Vf&Lp|dWmp2=-w8y z4^!TW51qDZ9LJ~(NM9|U)2vANK)w$nv-cU2mbSP-^o@T6f~1&h<5|G_&(Yf5>|a2h zI)M^UqHx^lFJLS858t;3+x6?+UunkUJbxS&9XX{?{E2%10^IChPyPaCE6qEDZj^!u zcYn6CwJl)sU3uO9o@_kK`wQSMNZkGl=;nHN4?0;MTar{gZ3cgPq5hWW{J!b+KQH$G zxiDVt9Q013<4H(_r9wy!{=iYnuic(_Aw@`0kA_g1lm+p4lTFy!+mm_8 zSUF*QOd+RpDxg8Z-~bU7f<&@RGAl$ZVOAd>1OzdYiU5@w{`X~l`Bo)U$ZVjSD)bHy zTkznj(;ifVGT)J`DZk8Njm0Z*lf-mAvv>|U^6H21ZVTRKC6Re&a)d zJvmG!=I?tLfaoIjg#Zv=yTJv2{t!MZx?6=f`%L$A#n-!&OsLRpZ)MoLR;8PogBoFa z&ddFhVqX0u)x2eXeztOa7lE&FjdbJc8lZ8_9yifI4e}z-V=t=iP^;DuTmroMdBRZ+ zGGQkMPo8H-OqE-yyXzf#&v=E9E8UAFb|DHI!zmQ<@ywso1^Y(@6GH>GLBx9^L}J7@ zogX`o)0GoZ52dmn!+YH`&nUx-RENmA;fHdW;qMZ>)!Qk zY@H&o5wQJR{V-{3UA_0*n!He;@qz5R71uNE_bQjPOs(l}QMgSAV6|C}z_NaNW;?oOkfi~Sh=G1T@UkM}HG{-vmSeNi{ z@(!LLUQ{6K|xgEg#czP~qyg-;L7cyaa`OC_;k4 z>48DnTeu&IivSQPKY%E|1B!olg~UU;LO%8EF62Y=mt(;FFo8h3h|+iZ<+@sxS~-SGo2h+4IEi8$Gu(=B;x?n^uH*xZdAfC9ssw*l+uKaAb;`k4i03yG z?X`%5gbwwC^d)8mpoH$ZSa9l5pNuaCHVM6?OwnVaNO(?=twQ01VUD6fKqU{5tEY<& z2${hL3qcLM*c&q!!2p2(7QyIrQ2^pZ^ut3G#5~!&_w~(M8q@u(QxM*x?ln0SrxiiH z)8{{X)pjc_C;W2OT0B0-^?DPy9O&CM-<|Eb{XZ3gRRbCH33;VAu)~jqh7}|uLdBi1 z-XrnYggqzhkG7O8Ud+1`5Hj9x<7;pBhcfKyxbxe`woSHBxHAg9EfY-PE_^I-MFpje zq-a+YiYk0NE?BYP*o&YI){3wim|Ptoa7h&hi8DoXk`4jxP?8sbA|1YQ+rNN_H_q6} zbW!Ln_>bR8;WRiuAJmWRnCC|lz26FKWZ;VmtMZZ$Q?o0`dPhWstO7Lv?Y z4!=Hwq5l{5-ZD0hr)~2cGgHjW%*>8q3}a@FnVC6eikaDtnVB(h%*;Gyj2U9b7-#2s z-lONgA9g>SBOPhAdPf@djJoTtQg!uoPt|o_Kc#ZN@i=@jnRaSiRW*50&v0Da2fJAg z*^7%PnxWeGDw9in79tK%T($rvgls<%8iLnGCT|@u{#qbZ zelTKXtrAF_G``0EC)*ug&c7CfZ;{h!7B}4O5R`CxkFGJ(mb33%?ZQjvX~?XeI-=^u zq}VqjR+Z|mWv4-^TQ@^ElmeB!Uog&{ui#XE0s>F2KQ zbyV9}Fo$naGIfaoHcCk6X97BcAn9_&4G#&g+cGmb8LxHVRS&hE}VE z{_ycHd`4ci9J6io{!-Cz=$_#kX;~GYvRtWN%U(NnwL z@Xv2?DqaUaHtn3|PCtI%ojNi2KIeSUfBOuvUsvu3D%=?jIe-|Ql{euyWyWc!R64P# zi0n;GhPWwjXpj8VZ*;7R=bKJptG4oH(>3F{wOMrJO84){O^fAMJ4+G!%r}RgTV2{x zN{w8a^AR;lVH!R;zJt+vnt+&RuePLZV_Trt_=dNukJG=l4u%;_b;fhvMrK7d^wMM% z&XQNi+xUfsxVJ&BFwZa*Xe1=fD;2em@fUyuMt6E~4s$XMJP@A!QqpI2Atn_7kyu>m zg+ZO1{slxM+Dnljjfy-b0sth5B8Yzh4}Sq`k8YF@_?zH;)m3w5=XAU}(<|L{5-w|h zCg1oPXIob!Bb&~6lc&(U@v@%kjA412649VO(EMt((jc`|%Mr#rp`PwiLCQK#HBFSg zCw&}jwvms`V)p7#hHeN>=)b|MNOo!RV${L0J$-n)ZYUwRWAmu#`b?IX0zJy5E}=n( z*rZu*oLmxBO$w@CKy#AdOo z|7HT=B7;wN0Wc>V(Ks+ih!5h5#L@%OP}s!PP@5t*WDu0}Yd_Ej3jL}BYL*Hh0F!$P zgs|kH*VrgGE)y9zi?+-joEn_bTQ zn(QZg#!WcmD1@8n>61#@+_4vNNuZs`A^(S0@grCBy1eJgr*i%pO(Ja*tyYb6W33m})@En1TQ7R?cJ5L;Cc7808 zgg68yAQ`~#)thqfaX3{&PrQJ0O>6=Fy>|!ajqzj0-0m@dowIYls%o>_`oY)siymUH z3fVFAwNkC=(IFLWZkOMNwwUG(Fh2eXRF)F4`uXG#+Eh8thnQS0Udriro}*yB-=c-V;)AJ9AH7Y{#wmj?hj3Y077%2BonbV|cE?^jCxD;RP)eiXeDn;Jyab`8IW{*|~~P(MFVd6ZwUnFo`DDIqC6IN9{Y-zGda zHM(oKjBB%VVV%s2PPWlB&OhV@cy|RT?&u!T@1Qo{j6C@LN>R2$v9?Xk>^UMpm2NuH z8aJFmciD1H$U{P{zNs0B)L&nJot%;D1#UwvK z!z#;OVe^t}K6iv0{&3SVw67T@JcOHtZjUQ%gfr^T9KC2@pv#9FQImU!mYC$x-i1Yi z-JlmBN<}$Jx_Kw^0s}$Dcfu?-i2h-8@!t&owpfy~)5I|{#;@h3;w*^NY~V7SI>UF^ z_KPf~N7G3D{>ACTIrFCp?-31_QugX~o1>wtxic+ytGGIxF{db=!>0HcJOJ+ ztUu~{82B4iv4o6cd2sw!m$o>@&A32pH9=cI`E$GmQ(c{HjhV9>HWPr~IMlh|CRf0kRrA`KA=-HZ=OTS=rc2lJ~|p zX+7_%Zw0;pC@gfLO^AQMYdMB&X$1yI5%47cX@JTEiX#nHUMwXsNCW@@WcDhG-~gnO zp*Y0@sCu?WuDI!FXFE!p`?%rClJq>HtnwN(r?P$JiyWHp?6myh4yIe?U41t9u3{}5 ztg$tlbvc*P;vA$6S4OMkYMIsw9cqmanSOkAd;1HJW+hdq-}5?6%2Q8U$1Cl>&m_%W+*-vk3HqeH?VA&V4lw(U1YMa@n40SR8M~%$~ z-K5-5myT`MV@I(4rt{6*qcaj8FQgM%MUTwqbjz>l?(|nbV)Pvagv|p@;*Bvy@(`9F zJ4f+x`FbUEk75@V2)nZkg$_FahmDAz{A>n*8N;vpNuI^KnPDO`6*3(?v)B?UA^KOJG)!jLQ-*_wcL&VwUc&D5_6D8 z96Z+XE=tsAniprw)2FKxm4wDDp&xgFa(C4CoyYI z3wpgSy*al{JDS>i(>@Ph70$Al@B^|0S5HVlJ~pQABxKMw%D_PI9UW zz!d%=({!jdqwe=iAOkteexlAQ7D0@x-a?oYc@en&3+TUo<&jPZqw`49;srpG1U%xP zMRyq?|2q`ke})A2JNZ9DL1BG3SJGNNHW@gza8eJ!ei}M2S49UPU-E1v>hu%{8cMxV znDA@DeAk3%6fR8jVF)X&M@}k7jCj{akD)vKAZdI7ZxF9dA53y^eUE{nQ3qMV9@h1r zGEU&f;It7ah$b|;nJs&w2+=JXNm(+lm@I@b7!{hlQCwWg;KBA*x{Vo@h;s%HDkB2K zH-pVTE_8{g%B&Nt_TEVlidbLd3viJ*1mLjMkNig>(M}+h1cfe@2;Q1?Im5Z!v5V~Y z9rYm$e=O<8kcb7opAcY#BGYJ(d^wjm_6A9g;F~4eLjp|1KiJA2mVC$peBIpBoiiC5tBNy#; z{F0|i^OM7unZ~LocKz5pH>})OsQ>WN26r4mb@^rQgU69=#A-`}NrLp^#A5x*<6McP zqxv>HRllH80c^i;QJ21i~LaR{hvqk{97@v{nYc9RXoT0&tBz2$J@HD~-;gp4H= zQ2#)^S)%>3QHU-2a%tKdY@7zjl2AIi0^V%z&KU*b>8{kD%(IcL#x;7krkMFtreSo} zL{Gn2_s+?f+|lhIp;;-FYLg#^K{4zrdDk!$RPs`_PBRWoX0Ad<{b9+PS+QG$g!Ua? z7OxnL2rHH_yVQ%FMuT>?d(Iun(~@*K9gXrLby24t4wu?=a%9~# zel!d8*r*Hju(giDTo>KDX_J--OCr%)aw{3ZoDZZ|I{C_s;hQ4inp5Iy`jd_c1NqIi zwY5^-Cygk&WS!+HN_#{x^7Rchq`VtniH)+{_4UezQc$2$%udd)uczN=>AT8NJca<~ z1lI&k#RN;!q-0}jkA+180Db@%CHJSCwG0`+ z4cM_Zpww?h@;jP>cD?P@KCmC3c+Yp19e8}y_<9>ZpwVMFlceGE=vdLb;Vof0yX=sS z)>+rH!PPch?p>~X+f=t0Z>-CzXZC|luA+T`VTNHsJ?~p)1KUkPgKsy@l}4wS6tN+{ zg24N<_q4ywX1!dpJBYTrI^Z^DgUdUYm1oV9rR@ttc~4{qzw*35>KB{?yV;4Bv7Bpl ziG7$nQl6)rErWIfxFKWFIs%o5GKwEqc<2-aaly`s5Pg!$y?)#!HJcWUz#DNJS;|;o z(q1wj7eaZcHkV|^#Z$Om#9L_^f|zx=__uVQyQI6A+CEMoI3HgPp%kWMl$M^I`|}81 z&z~4?&rkF{v=i9MO_3s6_A+35g1ZK@Vvq%nCF1+qh+dhgY^7nMU3SBOgm^a>t7VQH z7naZWQc+$wzpw}LeV$nT6`L0aO2;MLpN$YVl--E1lg}8}ZuvT{ZaoECwBNa$*oB3M zt_r#P{E0MO^=>u<==Ah1^p2%J5WWp@#S}4}F2+VTaO4t)GFRtX@vaU(jk70g&0~8^ zJPmr3ZjxOZ9mS73Ic3Lk#%1`kVK!({aK5t)byUBLM^|dylG+`Rg&uwV8m%qAN_Tu5 zERv)y3Z_#;9Ntwp;a4(_uBIXZB7#ZUhrg+v;HM`KF2H`6GZ~xC<8X7LH23$03ZXBfw&!{HIn zexVxv*>^X-k~_OWQ*gskAT)H>CDF%amz{a@u9w_ND@%C%8wu5vP0t$3R(sMR6mf~g z8CKzF!19?AOB3ye5t9;&=W7^r0*$n#Kd%|`SfSXRl8~JmYTi?uHl_`pKuCcTct;!Q? z1joA8Q^!%9q@CfX#U&-^r_2=04db;9r&AQ`R;Jr?7MYh#Y|)SHQDDLmVN=W&yLzW5 zB4ZI?4x;xjy>>+QHzx;Iue8tMNaY?2T*j020PcWqK|J$$(ss`7 zIZw+U5X>-)CWug3?M>XSoRozxQJ{M~etsGAx2Mw?(!8Ahl)DRl7xI*^u_#|v%sGH~ zEGKo&pOi5nnV*v;Y_(Y@b0u-&b@KTVVSG@(PPh6s*=&_pbxcR6Br`9BMOrz&Oib&< zb>A-V14&`zf|qEjwfixE*+L}W%?{s%-#tc{1Bt#~k_~xWZ;Vn`4;J{ZWjJgF4%c^D zyM}LU%WviCDzvF!TJ4TDKU7a!)=s6NXg|u5qsF$WEM9q4+TCF|RUbT+Cp#8&DI@o0 z4qYPO+JDUT6MAgPY})b)p>+FsZ;4Ny#PQJl$xdvw8IQW1jGx3psBQjE^%;&NKRF_G zlu;*cXZKt~(^?><2KZf{HujM%Y1S%dQXpn3nB3~SE-W+~fFj{gA~P{|dcDd@bh=bD45QmM(!V1f)3j<#wgqD}HNyCNJipp5XeO-weZozklwt49W_> zjmHoQ#OJ5PMGZeombQ{uh7$VQ|NJG#KkmY2*cir~!WYEMbtH>0QIHeb_X#S2l@)TI z=7X>A*|8P&YF@Nys!)aPM)4HLB&EN#zQ z4)}zUWN~stM@4sJs}gINnc|Kas@||_kzmcU^3K%6wZGY!&${>vac#{Dk5BMJvw)om z6!g5C5YTx|d9?V~WXE=F{*1}=0=R=p|1UrWBt@y`avzuPR@QFc%jwEv#T{?-o#)Xh zT*i^wJl6A=^j8%MOJ$GWw*Jxrk=h=%-LzGLC~9UxmCrRgOvu%}>ni}}0)SD-Tc2~H zUQ{XJ(uwuP7FSNl86WN&lmyZAcGdrT{izONPApOUkpVZDkXIADlhsyew8kYuX?&T>Pdw*82Al(QwB{)3%tgzEwq*8=Pmwmqapdb>YDs18KF9)S=}1TRd$RoknI z>1`Fe@8Zn4aqDk#qLjycEEV?u3S01r972&m6W{qK!msYtOVOy2(!LX*#^huP1fKAt zB2yN^mk3kk|0jaTf5Oh=+}-_z03~j0kLDqmirpo&eE|G z#_U}xC8KmlprbSusYLtX09aVq7~>28z#SC@d50?dKjSk%`GoFkaQa1WNplteRR?2> zNdpjMQ=uvE3?9P}Nfb+-$7yLlBKqUWn{0QOau=+OZ80t`WJ|CaO}JQ$Sez{`E~pqO zoKRs{YWL%HF~cKiC?;(G!s0nY&|_+X zl_oMY7oBy zy5tiu0ny5gz^oQsO#opW3EozSAvffTGpBNCR}B;WuG|&lBC$f9TnS5JQWSbr6Us=U ziA44xT5_z3Gt&m1<3St`ixSttoIqYZeSk4Z(S%Y<^_Wsg+MX(=R5}G>cOi|f8L0$Z zVj$&C+NI@GmhvVkXNX3U?d*qu7tR=t6n*kNCGsQWK$u73%lZB}C4p9*r^ek@@(L zXVqVufoxHaGOSi=b_i;Matuj~Bs%wNApiiB?Foj$A`_g)*{qkOHja#qaS&&6*eI8V z{r(q_?8=yMEG-c2*~Q+TL(2s zs_bRWBP!c8<)Rr1boB=LxreoB!DzdMU42yY-+97g+jY8O9&5Di(TZ*gR${52BltrEteYIMGk@!eGnRr zf1>eA_ah;_W36Oc!e>sC$S>w>&uJD4>wIaTiBvaDFCieZpiMKlv@>tPVD8nOLIdQT>}LcoiQPVcw#$ zQeu=)C&%6m41QOMvH?1x0q#u2uoc#X^ToPFwu9Qw39N)(tJYSdM2mJQtGQ@>#mdLU zIhwl%D(tiZOD5p4&J4RWKRW?n($9}>_i`456nkUHLQP*UPgmcDpcKc4s`QZPG|-R6lLJ zOTHi-8p+reX7cIZly)$E;&h5#k? zbEU%Kg=JDm*ft~G`}ZpxMe-s$rs!u|?O~tO?{*@j$nmu&+TQp3D8y89u%XTzmhGZf zjqh|dhW!L{s{jz4ToxxFdS)LyqSM#g(Zd22#*)tDrTi@pt^NVqqM&k>K&#%Xt7=R> zEIKj+WR=|da{tD#S^*w9Cs?PM7UU{yVOX@vK&p=ELbzZaN_E@1GUe)N zR+ZtlEJf^?GOt!-gg~v+B-#1i5Vvl2b`a?WSz5KSnONsClN+4uF{kB3R2QljQUB2C zA$OTeP&9Ahb|?yVSfthAgx9X5_Y0lMU|`8+&(1pT?6#nF>!8uw=zZn2MTVufyLBA- z7FJbu=I*$GL%u4Zhd5%flKn$12<-r2iEZHk(8`}aWYX9J{WvR4IxM1nGZMN^{K08X z5$(irmKsD*lZHj!l4QM)&pLnblSqgiZR~O2yBKX7nkd4MX0|h zCz#2dTo%i{He^Wv%erj1v3Mb+dNONZaKs@g7Pd{OGH5FzTh@D~7Y z&rHD&f8$h?E1(lvZ0mIaJmQjte!v%>c($oI5r(VaK8&;OQQF#9kRcB8+lmx5r`FoY zU>VZrn&Ef!S!+hG_zoT9|J3zRVvQ9-Pok6PM-swI21(~=vWtrxx@q7ioe8v;`bd&wF#6+5Q$~j1YqPeE0smLbq z2Y*U!(P~^`;ALxQ@RU!^3NE)c*C+HL{3W{0`ES%6;tFWfbv7C(#5si=NiKYN4|`fv zGc_O3$I*+cN@!R!1U1MB9^!NMQQ-B*o@M?5lDrNK$5hJha8pS)m<M_TKoEkq*!8&(>4|R7X{LkMKRkQBn0k2V7P<0%#4G5$uM3|1;KAhUISg$BW% z09RgGeX!G}gZG?gsD=qdZLDP^e~!mmlYYn*Vz5wZpqty9_O)rGf@%6r{Z_Tys{bN~ z?Kh#Mq7&JxXPp^|X+iap$YQ`L(pI_f#9Swa!&>|U@~YfmoSxY9YfUzvQiCNeQ^uou zg6nbsL0@Y}TvLHQZZ5-WN}&$ImKbhCzu-$Q)bMmhh#+i+5a7=|9yN1nXX;*NBT^E8 z${HKmN%+3|z5~DavQ)_&X>%RB%Yl$G>Ksp^Lbuu9p-e$N3ds>(Ek(?JLO;}cUt60! zLf~5xx6zfu!>FNEP$GsxB_dXBC_iDs=)OfIUuD~Yz7Z?r+TsHF2($uJFcf7I9--T zEeECcpMIX)w1@42N$tIwbFH-j^MmdqOO+bh0iD0cW`vfNE3{1w)!34M%@}n{jv3z_ zwZMyCngtrY7I1n=PWkY|?V%Vd&e+LEnX5M-m`z+%r@CXdiiTNMYnGFT*x2%E`c7ER z7|^Y8{@SPocSGU0w56Ze8KRKZ==m(%&BLMq7GJVJGva`x&m2BEp)8Y46$mu$s24yP zV75S_3(i|dTr;dFS75q-&3dsLttYW3?jdjzKcZbL(rI?>8C8SkVTe6wrkT&m*d-AuK+A9s(v4IIV88o&w89YMR_hOel{K#=)k*#UbG%v zTiKyymGb|HA68y+`=H(7Qt-u+rUrag&)8H`c}70T*))|OE0d_*!>K4* zywN69W#WJ`1q9PWIrgg32Dfeo?@OQ!WeMQp|o0$9y#b6?%tyIHNuT zJyzj)e)C*;U$S+S%*lm5HPZ@(GcN0fQ^M{daLN{lG<)G;IvL^WQmBv}-l3M!|SM-IJ(IIk`=ma&2)pW?&?xFJ0ZBm~V727(Fac-eG!?j;l|})9;qi(Z*idmFDk4uT4{tp9EL)nc0eBMvG8uM% za$yY1X9YiD(*b3!T!)rS=6mctKT!iJ3tkq-qqX+fx=%|z)GCM_RtenppCYHe33s%I zRcNN?b;t|FD%A)`=YfW4UcL^1A-w2 zSiN=Xqh3r=PY-}?`Jd(A_)Nw)d`1Rwv$M^VhQ|k&Snkr=FRJP(EL`JCL9E!y4*15! zY+xwwO>H#~!Sib+IojwF8MYYO5&i*+QK)jGr{N~&OL^M|+g*+C=-hO&=yk8JR z4vhY#eh8NX4d$*m_NMPWS>-`TL%n|V|_{A^X6HuBl2w{zs- zi9ANLKE;p0*l?pWS|o4N&_Niw)K-uY-W6KsIJv@aivvn99PpW(<}=9+Jk~vw;>RVy zaO6OQYARZ?kD~rO8N{*c@C$W#iVUBZIvT7k4(OTISSLN!mt&yk^wIR=h+jQebOo+7nW15%z9Wcd6`|E(Hn+ zi3gsnQ;nPZCZZc7W*w1h%a&6;bADs6jtwzS-=*!spNU8c!B#X#;bkLHouR1ksT5c)aFD6yz(GMz99P>%P?sn7sil*|(55jwA??bg^b(3>b@Dto)Ynlp{3k^|zE z_=S%oWOYij>U4yi4%Cshn5dR7b&C#JRO3!N^sSVQe{BE1hIV~hhvk6g6=}{pPJE9tLZTa2aFZp@04Hh@;gErR*mt>JL6|T?qwHK%T;&pzdG9 zf@Fi%cZykjM6GK5ALq}bpRL$3tpcwE@g^A(4Ss(K&Nn6hnuLXgwK`k9LxV+gjYm}q z$0)sTM}jN@p<2|)oUu`Fiy+pTe~I0Mzi6~FjkVsQl%J$uaKNo93|e$hFr^6MeQ8*~GAHb4VFJ?@~PD5%xt%7Z9p zhGZ@++KfAUoRg{)i|;NgwJ>pOIrjvL|xQP3S71%d-|FcMsEX`ygCnp5byO zJi|lZIZ5A-mXS`$src0sj(&YKlZaWye@J1MV&DWMlgu# zj(4)%emF07{zrT54~I>(uS{)Y-r5GKpTAge;R~$L+eW)K#<_vq`4OK>a zV~tTVpmjPiY1cVAoY}fPz!H`@Qued0<15n+B~)!C&qBMx*o3`VpL1Nac^9i_m2e#P z@HhE1udm)_8NupSPb5)c6cZzDmm6)vFiYnqBo9}6Dd{>SH&$7cC-#KhnyTlPcBsU` z0MMVpo~LfDYhPz*&jXH}8>Ek_!v^WQaV?*yL~AhY8q1EUFl+uQkP-S+vraJXL8?ru zGq0|qo9{+b>FMTMURk46H@A^s?`&$5O20X~SUeh{pxp=Psk(!CgNr*)l)9Ex8YK8W zOuKQ#Sv3fnmDVNGJJlNNBuOjD8eg)?v@%T6R%TglgxoO1LeXrx_Dg^ z8_JK$;;ovXo>DF?bY(=)!gGL_pUp+I2PYpX6S=sE42tlucNoi5;&)p78jQo zlZKtK$w{oGDBg;5hE>#tp}J? z(KU>O4h;@iIz-YhD-!S)kc1b`;U$* zdztM=I2r7t(i?0TgU>4o0;X^A(;%<*sg5LjLaesXGTxiEqy6Y@H?e^`=`(M<4-tf^ zGL1mf6_>THghj1%JB}0*5bJ`)AC(=;R8S-fET-%8Q$R7{y3ogVSEnDIXl=^7MAUJN zi97rmr3<!NeQb3 zp|8pMlX^A3b-mPPGty%mthK5-J<5{4q`2(8>2p_tipLjyR+|sUGV!gp7^6chg6Olwa2DF&5AT;k`kj_8eV5{;~uZ8BrJjw^&ZUgVKu`LOyzO#yayRJ7q9G*XeAN{DlQ z_TPs2%2FJ<#I}5gFuiPh7lmV3vbFR;28`L;#~l718)nNFoHj~DM9*z%C0_B#aom!_ zpweZI9CI2|%`=5>5QF6w{qt=1>4#3Tq9KwQ$kKLM6A{oC&f?B$y9wPaXZW{Bs$RpWzr;vy9TBcnc>2&^GHu+B&WX zh22(#%4_TyLct;rE_6LTyx4&cZDDmv>#Gq&5z%Yj*e{)R$ji#WkF!oP&X&D^IIH1_ zdW_rpmk0L(MQ_;QMnq*!i@vsf`yr|LwXs(=qoHH+GUp_>1b@6OP7u^5K7W_DEf(9f z=+e?#@cTmpCAXsThnHH`GKVHp6tIfOOH0*ge|qN#itKUfnLQ~nu}rZpImrCN>o`iI zS-s5lU1m_r9%oSmJCnIt%PQ^AUwH^Uzpr$io@#dknbi?A%+V@WeS4Ro_hp|c$3}&e zw@JT7CS%Em6egMg#(a%&uch!eX-^>N5;OG6{88(LZyMXP6$|OfEScGqokwcvJQF{r*}nSr02NNX!v}7S@W2PTjsv2C*8JezJogTkoi=%e zsYHZ`7JtPsoc+$aGx?zdg4Jd%+H^XNzD=05`&`m&N}e^bS$3xP;flo` z!SOGDC0VV?SHUZnj4W6B?55H$LnIzw1>yO~wz+@yWpw8;7 zXsmc%SajE$zh98!uvku}RnTqRrsw3E)rODI)6Mi*pBAZ50}^Y28<|j(Cx&=5Yy>Kw zA|rJ#OS0Q6ViM4i1+@60>DGBk7}S$03{OinSlp7i@+CO?BhFn&3vwc^JuBd zu_TW@4*pUsHS>Jv#MyByPHgfG<*Q3iA&A>D#BrGwrd9*zG)qHJ5rJ`xLL;qTBqYYE zs*?l52ZMBQXAC2-Azq5-W2^)op7xnMKM*5dk3jmRKm<^Gu%mo$3b$zuS(+o+MOS?{TG1$@-xQwpM4eo6bR}2ul=Y09qhmR z3^Hu~&m9`|#Zq)?Yk-FfRuTfi-KJq9IaCqi&HDfa zB7Olv2o}a;C&%rk=$4agqHM{0G4reabiGkw4O5FHLAv-EYE22|OpMw&RNQhGsz)+M zzyyP5g7Kre;w}PhxZtv$G@eV*s-8wnOl?*7S#?pc&;)~1B~pSbx+3*h^b0W1Q8=vU z&GU{Kk<}qtYH_B!fKmpe z1XC<@MAgH=tua5z7tO|=E@-OXQ@agx{@4<+>d$R~! z)-agDy}~j;Eai1NaP6L{Y7-Kh>U#*y(0GpcxHn>Tb#Sv1jz(wQgmg5idAUh40P=zw zeGgiFdXZf$X2MP2DIG1>TnMr1ic!U2dMXbr8iEPo{IQoIoBZ5gnHKVX3iD|+`+?o^ zd>f7QYNPUg9#`=Av%>f4>)zN}7E z!qWKXK-+&xSBvsUEB|v~#XqJ0KUJfT@sY#*F91^8xBoQjf36LSBg!Z9y{PV+#_yoj zKRoyYY++L`navN^@ClEOBC}Qg>_#^>*IuhZM<1>K1TCsCzJ5G^&+$ui?e)GAU0w)6 z+!lT$J1_htR(8?n|D&W2tipX}G`ZSKB)rw82Dk%=xX!e#NQH2q4MF^Cu)fz%FuDJ) z;xEgVx5niCucMq6|8L7gSIz#Xy4HV6YmwzpRs7TV#eZtl^t1WjRf7moMas1Ms;ooq zt@rcz691f%f6mkYuP3y-qjNv)t(yfcO2^H49%j^9*I$JL-rBipaFM1|!IQ{z=r z1L`QAvcyD!fJ=RHB^jah1 z5?ZQZ0~U9arwKuFhNmi=LhGq$Cmh`)z>%!tn5bLbA9o7qq&qkYn;16RIsnl33KMX3 z82B|$;JNea)w4c2=S8=bC+s(ioCxW`Nc_L7l42|5c+R6PDcFxbei4`I6~xH>^q{3G zxu~bQ=?VP<9T_p$Q#>*-M3D~bictzOrF0N-(2Ed{rGn?EZZTg2l!FD;co5U50??~% zXf&fq5L{f;0p8x9NjF|R3;keDuF&lNv4r{;4B}t!TKJ#*7>QmL;g{JbOpGS-QS#pE z_CkKWer}7>yb~uz#X!PVw}kZoT8jJ@nE?LrE+rsg0Oh#&Zgi6Kdz0RxsY>fkHxECy zYT1CEgSK853uc^yk`SMy{zS(QZ^~%$K6jh})|%C7R$`Ln&77L@d5^3%tDX}eUVJ9z zG6#fdZfIKXg3bjCeH?1BCQfU47@5MwQBJ0}*)B5ZiveZMY+7s8d?j?wDL!h9Cyl%5 zJbJ_XaM3Vr;?XnWM718Eziv)*N_YK3t2f6;T>OtqQ7tjJpErJ2?YA_yhX+_>+eRJ# zCn8SP8x@+(@o=8Y2AQ%4NfyDzAtkehHo+5avXYjWF3Lkb?QI^n9;&pJQtDwIQtx(r z?nY0>w$)i7)vx8tqkNK8u|=vC&H!^oB@t)ABwEQ>Sl*Tiwk~t@ecOe)ylA@d3bpZM z%+L-N)&<#&>h-A7?bH~~a|9J{1KeH`N8@hl^umtdSzO1=S;J2Wjducl-$Y$?SYX?E zj7F*6vHXd39`V|-Qk1;U$GA;i*982e%QlW}JGqSJ|2Tgjti+=1h8f4=EgEL{HSq1bo9E zedgMMBr5&MzO1gTw++IDkw};RWq0(u=Xg3Np5d;=H9_z&1QFsI%J`!%B&E~Z{k8Fw zX~vh{IlF`UVm~CU{ZsqNFMiNv%g}b|m1?^clYn~yV!O0AF1dKG4pyp~?IE>hdQNnb z;ujGmTI%4v9xpI)(PDKj>d)96e z+%Hq`@HUmhv=J`yCkt|tnjJE7hxnNr9Ev1{x^CNUjO?}_UbBZ)Pel~}k(fl(u-D5N zOdSb}zJ(#|=qy00i!}RV$gMCnoghu*shnqh!5p4akfpBG`Y9--TZ8WB`Y*vfcpqc( zb`@kjd)~nfw{HhX(IXdlcABKagfXSmdD0Gq1XeI?HXuT}R5pFy6emqw!4)@gHnL$AKi(_un-)7DkKX?cd!*nKg2i2U7KF~uIg}*G0STgZ5k9XF&{>D)OluXwT$n~GV^vzqhQaq107LYMe{rsDiE-7 zk-?b{ZU7m8X$?@W(1+Ja;Y1`NU7Xl*M!UpJi)P?6!|}B2jy}>)FMYB+bahCdyU9>c z$GjvQ$8N-j8&aUc8B&|y2)CN10PrMFH zWMl{$tqbZmXmX~nG;bYQj%nSthCVP~2yEKV5RbxS`iPKX;O?qBM-Cw2vr!S5R%j+~ z@*IY^QcFcw>rNLu#|q0)giP@j9HM5Qp0+EL?jR}eO?-3h_jz^CZ5&jAd&w%pcW?Vb^3d>CpdlV7T58s zv+~co3a6l36jbJzlDmuMtf4ckI-?`Mgt*pWp$f%mrIxRe$qj|}sEY1mt%S5@pC+SN z4St}eiv=XM)#M+L44+(-#WWjTbn8Fzowda}WlR|d-yP$OI=PXyBTETwR(sBM%&f3v z*bN)?$&YBAOG8^zQrfp)Xb|Wyc zflF&Qu#+D+c&%zivo)X=AIV5BV8N$anFG#eJb+v6!g+Sol9hjIaz*q>J~RP`xbg_O zkfRv>0(7gQ3}N?G4@cM;^Lo?J?qX=~gKrPP-W~y$-V>sfOpC>jL<@axn?XRKdlXa= zbfxfCdYy|A(R#_Rbzk?RPk-9V54L^q^;avgIne^6@MNw15BAC zU@}>6L5liwdji7;3@hjdW9?WiKKE;%!wMYWIYjoOO_*~>dFI`CDMC9q#roIo8kUD3 zZr3diJf+fFi~mdT-uHHO)mg(JX0~>9c*b|1bSk*RDm_u*Uf^THr!}#E;tJuwXQvM} zX()@i@tor-YmHr zjXq~ipvB-Vv}x$PEz*7}Ueq=4v_`2}VSVHol+XTa@RYtN`dUZNq|M#)yf5gN=I6cL z*>UJT`kheJ>jgo$XXC?n(ua`Q>w|Y<%FE8b3!I~i6iyVl-J0VP^ge!O>t4!qT)d7F z`D|UTpqiYo{q1p{8g(YrG(uKw3;7kPrx7mX7FTXxg4u>2W>ezW?>e~ur9beM7%hf& z@{Yoj!tW_87KK_kCK(Vu^?N9=9~Ha)Fa9<*L?J)}|pCbK?>gZ`E=0%Nc9 zRTWywek+O8DhC$Vv1U-T8~0D}A?X3B+CfZ!nnD(X5M!mj(}8_uCAV=5hK(wZlL=qF zN5d53#$Wx8wB1FqjfrZyGe^@Q$xTDYlLt_m8OZ z#!wFRWbtiY8q1p4W?Q4upt~rjV8$?}@}6_otVlcM_=R4)ryiyn{Hy>OvX-E zZF~D?F>CFVgv7}-+|JxBMWSJj`noSAGzXkQ^!bCHoW8qcg%PK^fLzPDSg{GYVp2K^ z=`Xmhwv?mi4Crp&_%v9+ah^*G3g3rcUpZ6Y!$;q6m6?zbCClIml#xNn)C?6|CY7K> zMrH!=_Ag~iEX-T@2>k8nF*tNcOB6aX?rl;*1*l=m zJMa6a?Va~NhGdVTqML}x7+w`?aeomn}Z6%W+5MtWm*s;G4sRqy7PO~wJ^$2Zb}Z|$S+VMEjsB(e*RoyrI%~$pmUy%;XCItNte?23q{uPzH$@?b2VEapE-t!TyToky z2|h^Q6mjxSr^{5Tg758!T^L(5u?LPCeSZVN;}@J}@#Bq)v~@O$544>J)h1r1CnFQANe@w(FMJ=qr$^0)tK)VH@rb z;*#BuA-nWq1zc%Y{B*o5Trc?~->tKU&kzTiqQwHSP#jg`&S5H`WQtO}$9+91Enk&qut& zX1`0)tsBOy)@M7*__Aim9kf}5H4@#YU7)i`@eRu*QB*L+PE{IW)5vweM%<<73bL#? zF}XaFCgLT5l}Y`U+e|*Z2`F z5LlT;d>EcaeDmmQ2*Uk`?`2?vKSjx?ap&2e1D-Jx%9ZKNFm1kQ2fRalJFw}E5P$pC zJC1v_{Ye{EnNUE;B|u-YivPxe&&imwZ_&tO86mtyAnPx z9cNdJIsQn*9_O0CN5hHIS}gn|ZMh{)Bqk!bm{c0OWn6qR93RDo84z3SNdUJby=@N6 z9et4#A~WR=T)ji>ap+Yy=F}=6{3^tpS^+b1wOQes6b6?qFmm6X;oeZ8ejeak{txLV zY{LF`>rtJ}vU=LB2x(DB1|upnQVHK2DO(c{rtB&7ogFQM%}H9o+ILa_ogpEXcP!e7 zL&Aqs=oZ=x7Vk);j&MP$mLSB+J=q)v^i(r2rgaQFy!9`z+N8T!7(qGU6;&&P2W3(< zO0k?apnZ{e=BL(MqdFb3P<{Zb^@2eF2vMX!Q+1m-<>J?c zHum=RNT%`DX!u`$6bJ=B%+VieLFTG^gU@G<$9mC7^&5%2y-0O+-~F5;iS*}&7RVl@_%w`mp2g2caM^5LxIbfAjB;V|B1xlrTmtv>s8BzI6e^9zj z)rm(y8R@OqYp+RK!uM9$P>0u0s?dl(cKZ!1u~U7Hq->? zgF*VWLqmNZWV3NrgHL$GTbodI5vBChN>xg=d6IAElWJZ#ZG9PQ!P=#t8W8`0&@_n_g;Jyd z08(MB;{OD4QEH<)>ufxB@D15<0-Deojn9k1ElgIo1HkDtCLJ6}FH>(EZ0|wbr zxR7rS2kSLhqrm4Ox&ML?1O5SwsC7&jUy*u$B)}grDCz~w zi!Ey&18KoRLNSTYw5VTnaumB!rkU#oKQ^K@GO8X^b-c3C5hr7RIE0HVl&puhgrVdR z;-U}{!dL(`m58bp%pv_S5^xf~62laai+B`{1ugN^PZITh-st>*=w{QFF@Wlab>7GFuDHhc@k9Z55 zz*X5sm(?nMc%ld57M~i?d3drHg>tG=TD>(Yf$+LxW$q;QA22m7rQ~b_EE3m12m9yW zn{$13x*G=BtJ>F}kwmpUl1rAfU`1$Xi1shV_q*I)O)Y-RooaGf8nLBN@I`G+SX`yd zQ{0O1XQg)lxOWu80032z9D4;+yR{m(IX>Gmw-(v+s6T~~qB8XCHS+I0fs`CL3Lw_I zhfJl-q5#&5I~=p2miW+p*EZoStfNraTwom^jrS+a8r|~#PWtrm=f7;N|FzZD`Kb`< znpqW5Gz1Q@PW1dOh~M8?JMQV`0bbl`)o<8M`}8HFyzh53b)bWrj12?$p~i-}i+K&f zR>0u1-&wpIXhBA2h~aX$wBOxJLE<9C{~v&VT(2so8O){2-R-b(q$_q%Q|T{l)BS~b zdqmy`Da|Ocx+U`0Do3j8DXcflcqW+HR@mjuy~xg0$ETsAKkH!qt$!bLzBOuIUH%UM zcm3s;Rq%XQ5Qp_oVM(9m*-O9HHA#fDCsRCg$S&OG3BL%64#@riNEGzTy~e-4#R@IbWBTv@#Qr_VBH`op0oRIF zXsq+wtM4uG1&ib;|KAXUqW|vizX$oBlZIWn|C#CkUoDU4UHevaE4VHFt=cng~nyRLELQve2OK0E&Zl$^Upc?&E zNhmPa3x5cSC)xB}<0_#@KM5J15FEN$(6mpuZU6wJszKG*X_cGn^NoR8NO6!{wKA`Y z_0zN_@^s2HpZ(fly%rRprW*@EnIWn9#0Z0rnS)Ji70YRWF!VJnms&vsCnXwI0pJ2? zVDDjzMxL$%|I@qwzp7RKqisJ5c<>7mi}}-jI+%>|{I)rhzjkyqj>dZg$J_y{T((<& zxlV_@@aozBjs0Ef*iZ@)r$B}6Up08QcCGa3d9dG_rCF5XLttgDV{P33(e=NEYsbTV zK#{x!d`0}=e)yM0gl=7pk6P;OmCmsNF{tNoFpNqf^bKdfp*Zv#wZG(V+^^EvG+!b; zte59xq-KA=d&KyV3%IY0KmIR0HGlI|`WXJFVwh`e!5$3_?XD&^B1-tp59}XO$zA8A zY_2Zj{9AOa?73)TO5p)&_Y7Zn@`n&s*(yhI7!rc*Gu$pH|EfTOT8v$Zt!@|;4wk>e?VAd=MxKjSGPbNf^M;IvK z4=gp-$E+8Xk{4}N{1(%?IHw9v5gy;Sf@**@Nh_Jz9M?#irDnwb(gS&t?kjE=1IF2B?g8;lOG zaU_N4f13O!B=E(Y&JVMYrU>A(*$s|xy9i$eA8{EUvFuDm7M(5Z{M{d{SNKW7A zcrojR26c%_5%IOBM*k#iRFBB9zk8~5@_tKw^RXyoEc>P*op(I6x+JrnWNx1+)0#M% znZ$D3Y+>ENJt-^Mdu#TwD$bQi$&hgLeEJs}HSoA(lW4|TJ(`LCLp<6}>88iuwTh=u z7L6%f=*tv(4^^u*o9)!Q&iJxlt=`F8D!@|QUydYa_Bdqvx*-&8+HLWW<5ZQKog;Q`}a;+;p~hQn=3gYD1jt^E+TnVc8`BikDT1#0Uc z3GvS+`4FI~B>~qw9FDVqV+rzEc2pWx)Ot5aY$glVgr)2sDPf3?Rw7pY%MF;YU& zSWZ-&UvJs47?&)MESDcO5LhHnADfbxTFSGnUp-yhlK9D%vgCzjS_a3tRv{U<(MI8e z_}eSfadVRsXt(TR-uT8qs+$WI3{*m`QCeafbltYD{LQCD&1mKuWBu9E(0P2H#r>H` zmO0V&#)&TeFK2^kyP^BeMG-Tf5oTR$#csrW^rPg@X>Uff`jtD)ZXhki}Ob7 zrISQB&u0L^b&R8TyRv$KYUP{F6*ME^D5H-?QGW8efMn9f!}UuNVa?)r#?^b@_FNYR z_%C*Ty4H;3^dg1=0llvCM_66ry2jZW^|ywwu|-PW(OWbJ&?U~rBu?x0?Of1n=A$6cg_?G)Nfdo)}f3euj2($*G72} zaOBBt>%DPX)aL{{AO8UaZMl~j3wous-q3c=e&6?G#P@Sjh|0(eyn~8FOY(`nB7ZL} z8Xq4rSx+wLR#p6FaX{m=hz+dTtw5YNc+Y*{cbIzWM;dG&>sR5jP2Md^Ikp;V!%L1h zxMzi~-9kkCd`P}4Xl`3AAxm08wry2Of5$Nom*+epltN&Hp>)T&P8C98N@l#fg}vWd zle&s0ws(0e(o?G}OGrh1)Q_tUN}QZ}@GL>+@KD~3|01Tdo_MZ`ff zH&&{BORm-xz*%c#XT!%|jt3dA4_Vb+{IlfRi?K^$pXBvs$1xTF+W+1Bw4T;&U0CLZxugffTD5O59GNfccDXVZZX z^KFwkKEOvJEYtn7&+Pw*O((+qldR4eOnJF z+>$GD4R9Tokm=HxY7b!lXg0|o+wV}Iw%VA46n9B-Em9D^+?`!YZw3v*9?bWr{Sjm+ z?*vXDijAbfS1iy7IRton)$%tutirn?`+k2JpSC{?xi>lC2%?M3-Zq=|6b%{a-F7!C z=U%aM&UAGCG`jM&e+)DXA)VgdW7RY2SB)eN5RSHK=J%}A!pjhcg9_(yn8-aWc)Kby zoLvdhtv*3(1$#ksLWdlrK@_q%BxfC@+Qu)j7(47Op7?V{^V%0vGsbK~`QfJ}hf`R5 zzIYLli&@>d75@M%+$uSQls)@eU*@jH7q&>7a~gI$lLW=AQ_8GFO}52!X>NH99kk_Y zdn#QY+C6M3ij^uoGhecr##kdEJES?0xU&yB63sJ~Pf5NUF;8r=Gl=1#4knMHK!*ke zIjQNxRLN2hsQ^b2zOFMu9bJdQ5!(}!Ej183IhEo~f?z>3j(2(;Ih+TKzYfn$$9+Ac zZ*fD1^7xZy{r&lZ1SAwSF3f4T1PORHq&X>0M`QYmL9rwGReEA9Xse@oW+smK4 zS9^QT87zj&8wYmmEwkp@CJKU`f|~so@v?;IV@U>0tt#a+HXwh2tnLopdf6*us7syJ z*@7iomI_kqqNmgC49Y5Vq8pk?DAeTJAqBtC^vFj8s9ot@0t zJ3lbz_jB;p>Xt`#0^vi_LdM5Z$OTF51hvoSiH$ita!+SDTbCwPftn*kBf)G&aLaWi zd3TKOrWTfM`L;4ymfX!xP(nX{Pi_H>gQ&J?J+O4M;3cqa$V!~;+B+TEaUF=><5s1~ zv5&^&6C0usUpva8k(W^&N3A?L$X++9;lx=`pb$fb6T7$W1T+~23x!*3kSo!gSlec< z9bjw^uYGGrarDNQRr*|a^bIc~jWju3JVE+^J+#2wK6d1gqQtVGYN@L1LjT-8)lX#G z`Nc5axOUrCcc&2lV58sjtU|XSCaExhu07Zoh|OS2Z!Fp@bXkc3IJ!R0bNb5OfI9pQ zv<7Oi-j2A5$)>Mx$*NDj_Dap+P|6;=yK%?dLs%HsrO);)k~#Jll3s|Ue$IEzaN zq@*pp`n`-{kx=9ZJLqCt>sMPpu~Nl;KClzpWUhZOGmz>jY-!K7p<9TieUk3at+h{s ziPA#M*}D3-lOMnC46}Rv|>+S1_!`R4S>=?6RS}ov)-^aA_yB!shZ|19| z)~!BWq${3sYW^(atgyVAn$jQ6;rwB0Y})O&H#com8gt(kT<^N| zLA$rAb_X7nlmk65QE7%zG+SF)O2PisReQz2%wbQj(nK!y?{QbL0Wpca52tr zv>$6+JU44jLGZW8@`y&i$$DDjEHX#Q>UH9x?_cg}Q8PQ! zhv2QID7=I-q2=+g?i3+?Yw~(7c`n79-5a4+yOJEQzxK0FCf4u!?YdQ0xhxa&C%$t^ylSQsmfP~JIOS@T?*3ofa{W0Am^No6cU+4xM+Nl6>|(IxD--YEdT`1 zJ!HF?4E(25DieAW5{@=m6^NZD1d-V*M?}%ZJNSJnXE#h3J&K||t$#7VIc8a5E&m&J z{40jp6%-0Fm(f`)^ngF_H>{#&*cEG9cjbS*#Syp>E}m@ymnKovV)&t-gpv3a16; zmn7`qDDs7f2+#!5L81yQk-uc;aI9U&TK^@RD^+sWAE7H9SJYE^m3`Cme8B@PLH36A zCc=zAZ;b!(nrGgeEi~Lbmh^pTXq@vCjpJDaay%22QO5E5I;!WA+|zxb<@3#$=oGWc zmzj|MD=CdY_~w@p-NEl&s@3Q$hO7hWby+eolC9OMsWze{cmQy4AE2%v{UAVr&S>YK zA9J|FO9AhLvb#!OFDdE%&|%;&^qmrHQ$%ky5`|<~Gn>G9_iZAueBD0D{VT*f`$;dk zR_8lkMx#w1vKboL@0pBoAlRw>WL&0{$DzkfT+KV|q4j3QZEJL!(u+{Af`9BcRZ>}R z`_k#TaOMUykj3gm%t{NY|mMVv}Htv?t zoJv0+g_EG3w;vew#|OBHs07kIF?DD7spXz^3^Z-uL9`4bzCt^mT}PKaS98$|>yf-D zWv5kVZjuUjO*bx992B#E+0>I%cf1g@ADhuq?HD4Cai&keJM*pD3bcIr3eKkKXjtPX z$E5^LWQ)4%nK_@)MrE~QNnLR8$Za8Fl5g)yC9u3(tm_XswNnyb-cL-kod_`I{CcJt zkVa~Bl`gg(t^{z~=qbUCd+p!^?VB2Bly*3s**p=MAlBdv1n}^dy z&Ai8=T)plg8t05!tIp>wtr|sb zSD_^*{D~m%fs~H0Hby6Bax)p%eoOTOuNz4cNRxli`-Yl~&QSA--vwiRnZxRJ+!`;) z;h{--P_5bQ)a8(=2aL3_eJta!W_?Li$aXUE9yVI(*~7?VTv85ZvNkR0mfC$iIkk^+bO5QalNk%TApyWGR-IuqH38IMP) zTbC}Y774KcRa7M+>nL5M5g_t8H4K1?LV*OT?R@^()TqaVh|3d7${vo0h$v(~!le`x z^AF(s<#b8xPNcjYycR+6b^uQafyJrdK&tApk6|R>vU3CgiRci_<(Mw_`DCr2w0BOL zJ6J?4Zej}8|6OF}IWB5*jPYxe=7lhA7-9uAYsycnpTsB{taVPQ)zeILL*R1~X{N-F zvH?sDQL0R;2jWK>m=c3Z9 zX_x?q-Dkg+_oToo3uJV44{J-=SPK9#l!a{?$ss9)#rs$O|7~&n?>zT^<-7lHt*LXY zf0q_!#kK;sksd!2v%*yURBtOLZqU(Zk_4t&pgoqB-;pMY5?zV5CmI6=!Jf?R#{V@C z_5b?20aM%zB^>uO9CuIX2Ja{U_vYsClnN}`F4tInIab1&k1$1_UEE#u)8P(BN3}gN zjK?)rCiW@9?$`%Bb`hbJjTnH772>PnO=wuMJw2et3kU_T@)GJN<9tcfqT7yOqUzFr zJ%wigNHXuAt%&yQFhD#d(cCp%zEl?oJyLq$O4G-Z=;*-EQW-~x7hY3OYif-=>;(=EAm2f|fD&bE1Q3_m+5SGN8n-gL(@_aE540=BFgq5-s$0ch4VgUhi zQgD2+kf0Tq7E$VGTo@hRg08mgF64$Ezf0a@_`GUcIz>9~{`LVQ3z2sWAmPT^{3`_M zX5D%V>Gzt0e{g8uWv6A7>--{Xa=zR+i7ZsfHp8>q>+CX^@LkEm6>Hh*;h^a!O95)5 z(Lap?TVS0D7vdj=CHuF3e^mYZS8Y*q9!`VRhjp{-s{h&be`er+X5jyE2AV$p)&4xF zI!WbWcg}29^D#k>edTblZy&AVXL--d3Z&-!8DI}_vmpqr`E`xy+UI8T*=!%f+Ge&) z-$M&w6^|9Iw$C=oA8)VH6o-Bdy9w@?fJJRG5K)Rx&VJ2wqyotvLgd{u*w~k$V`}|V zEXGh*)dy>07Rdc7+PzNIXBbObjUu&XCp;Ti3U3urbC+67Rm8AY>P-XyyhBUTIL1aq zl#)`W)Q5S>oc?DO(^`b4aI98Vy%$LZGXOOkJd6aN7WTI#k&#xmFO38NtUE@O@^}nn z@w8i1!;~HL*Vu#cTF0EWRpF7nTcoOJ!rW8s?xLww#w)=Lm^KIu*>W99Z8pY8K=JY44Vet?fo?IwTjgNvu!z6O{=Oz6`?{D8Ms_0a@30pc-j zZ#9E9>MvYr{IItq-OYbjD*VSiwV_f_rxb$d{}P!TBH1n_u?Tnt!}KvR@Zy?#h*JK0 zvSHW(r+qMTyXY@8c(>Rh6T0JNbIDKzUJ5UStPPx^aL`m>iXg`&Jn=`&Z+4>!CQW()tm5?!7*pCi6O#p8P$IUP#0M83KT-(sr zcAe$gX1!F?YRhtJFll&i-~44Q_PI6(TK^8z{2hZp>{Aw-JJfqyk3a%HjN>TmFIe~e zOn@YFcF}&qRQ84I9bQV;w99Bh3Admnu>(w#??ETi^MxqMoE7G!h;BQpg{z7Rl>-mR zkVtWb-4wA6erm)`;Zf)oe`M`mHlgbQM0ml)YhZ)NnbS-D0Zfhq;BU{UK76=A4C+|Y zZ^-EL*5d6jJagt_i^0btpVdD$P#x{|A*4BBRcplu&2&4p#l8r*(SI*btrBILqvZ8Q z?SZs{o84SYen2H{`30MHbVQu;gIpUY<`wiP=fJdf**1UG={no%5MA(FpvrvmddfVM z`iLK1qKsPc&Zh<-@k!S6FWF*-)KO*YH;UK1uop(epl3Mdu&_ITRTy~+;9a`Z7)w;; z9!kAdtVhk6LN;A+IogAs^cSQMBWDZhdH{_!8W;de$Wb8*!-RH-DCcl{Qa(+_kM7j% zQYcq=D~J?$HzE@+N|b*-{p@mV7_g+44#4><{kPXAN}O>|@&)D9>D1%L%L>D$+m-z$ z(^;2eBX2b$OBBZ1o-hD`82TF2gLm@-Zx7QFuvY9A!NUE2i zg4prUw5|!KRj2bInvbjJCZ=x>pVda0XahW7UZ)BKCYilgSeOyB;oqN@e!PZP3g4zY zbSN0E^SK{zJkH7OeRdpc)h7aKb=WSA zuJurrk6qy`bnWf!tPW@u1N4)u4<-ZRh+Rw5_|l$cb3lYJvvjI|VXM?=Z$%3ccVJ5ZDvhHjqD&@@Mi&Can3-Eo-=AFfiaE zhDkBtOL2Shb}swy3#iyA0!FVOI4ZSGY93H280j-i83~Wepwt4vC-N8$>`&FAYOWY# zPzk`>^N0UPwTFv`9k3@Qh0-mBsE{no5^r%Djvq?`kP29N8~A)NIUn5gXp-xkI1MMI zN<)D{{euAZ9*B(q1ss9>vB3a^FxcVPw4NIHVd(*&c(ZCWsUdi)bX5x>*t@;jF5^4Y zI}K(Mb+}S^Y>81<(ebem5ob5x--YK$6MF+xfHi?X9{iKvCpviAAwSetlx|__V#J_! z;;~heO{dhP0i8-F7a#vT3e1A!LXf3%*r(jYAYmiY&S|k|v@_p%-PD-pjZ(IrL{fnU z2@oVcq2*bI@$#ZZ={>7im(JLO9|dCBF2GGHEO?mWb`o%>N!0>|`w$fnA#w0G9-e{$ zH#nAQi|t>fx;o4M+fGbwO$Dql$E%x|reoTnQ;MwQ370S#7GqL*!=p?L#jj0)%6vjt z!#yg)xg&%d*yH3eFA;OA@4QS_>>_U8ms(bt5{UjusekN5QIk8|HFsfqZYuDjR=rEx?lJQ zK=Th^UbbJH_Ind`cUC#I2h^0nIJT~5sBdSolWrKYpN6#$o*J9hcA{%2qlr>0_C#!y zcT6cOYw1Ca$EKK&D>x$41foV|A{uABw_t-ygicFeWJ>`skr2=nQeNbk!^2dmQe(r? zv4&#Z5vnN_&R$2lf7=;STQ_%7WFHb7O(srY2ujj}3_MZ{`Q}>ngq;;-X1Xey8)^Ej z6UZOxoF;Y6=vEOo5KFbupf_E9w z1J@AGqu(|#I~cP@NMfGv%oosMz|g_}FmHcDCCo zpNwlmHL?HPU?W#tG!tUp<#%^e7L0adU6xnIBq=`qqD?Mi+pufNihaiD?mhRI6L^Q` zW0GS&Pk3?3Zr0Y95VgCYZ>FNp_SMCs(Zfn}?>W#%WDFuj8~5U7=}3nZ*&{b+SeNwZGAhe-pDg2585)nkShmb~v0t z;tG277;+o5TWoV1^r(Xf=YGS)a1;%oO350#+z0Kmv674CKSkZp@bPy;w|zCr&W@V? zi!0Xfuw+Qf-miov>89b74SQa*(-=N9rKN&uJ-Eqk&+CAyGq92^}Th7cA#3IPQq z9k!0yahIHmorgccAh8Yhf4)gwc~bp~tKv43*$K+?rqZ2SiT>F(4Y9|S-ne7+Ve>yU zNxh7#Yz_O4}to(C@T`*~{QTsMLL0Fv`hRFijE2NdcJ zCcjgR&Gu$BbxgFT7$hkq+%V<#b}DWD0{_Fk`Q7wW=igVwWONq z%T;}1>NaM`4`zLr&=Wd?fiE{A_NumN^iB9aOkE^~lidMV@x#ARtqm_aY8$4T7!{*K z$gSOvwR0#J4;^v;s4b~>RFq=gB|9R^mYTQ%L2L!;L^Vs&E3)D49w~Bhv5~xvytc7s zIop2LiE(G0<2@o%ZrgI52>7<+1pPHhkox^o9@BAwp17F|2r-I4)RES6yj^FKx=iW~ z+1-V*p&@y(8n9#m`RDVmvr#^=!dG84zf$eHTCGm@@KD#}qt<8zo4?6_45qO*$u11- zKp-z)f#e+hjc>%^xKG9W>smESGk$%ntM2&T=`Z{Fj-w2gLPp*9{p34t z2p?B?P|5y0@3TD{5)p*E`?d#l20HTDl86x*$GaK`?|{`5|BGS7<7SiPFf6GQ#|w7RR^EAQXdp4g?Be54&#b zylopZ@#v!9B+cA=$5Jrz@`LA5{r68Ej9g@9Hvw(juKxgl-flNpKAy&b#XO~2tymwd z-2ARfA{5AMSZBoCQgAc#8;u(Lkd6wE><+0}c%C1YfcY*I#;T1+^HKRYu1&}KD=vdQ zBG^Wg!Vz0V&OJo3pd(Q*P-I3hfWJV^xEN&P8eOE8n#sr8rE9~)bhu-JhFa^OXm|`q zxa6~?9Y}LAtCm3z+1LWUU*gEq#rkAbyN!q>5o0kTYQf(&U&R-74PsWU2q;W3tRvaz z%U_`nU^(;7aAQsQWkP%FM{gd3=|M=&IOpQvi-=c#0piWss`S}gNA%1xG1qWCGC~zf z$hQI#As=?mWZf4YL;F`6SPzYHa`gO+eZRQ%DqiQU!>wXyctnzyT*6-TDC9 zc7tiYmgGBGgYv8S8%@3b3Y;EQVb<$SX!-b$~Q5N~{ zS+LRjUCJt`rq0X~DSLHYpOu&2`=mOt`~EI$i{5L=AVar9`z#XHdg?m}*P&xw>!iC~ zVm_`Z&-25vy*6+)x*5A@N?7xt_}3J%?tw$UpmxVOA|D@7W)jDIgO<{AP#%@@$I7Jx za&8QdET?P)xEAsgoH^sEXqUb7Q&Kbra zgB3Wfwj}amrH}f7i|xlP-&UB?6C(XfHW>~MrM!pjRNnMvow9#BgLp^}z5N=N4@hg} zVmO*i>#c(`ItfcjzftwK3f8JpIpx}=-dv^8$TQ?xk`vvC5N1S}0##~wS_I`fQARZK zxEj|Wq;dCHNyc8LBY1^Qo~6fz8|+sX!*?su@}lSzj*N!~8LblP%^8j&W#fvKvyA3b ztZ6aW#f2ZvGV?sT3!>M#M{hpF53gc24N^?x@VXi^E?)?1*9W7O3;K2Cu92G&VXR zxO4Q!O4M*DHJY=aSXnli5^4mk!4+)fz=J$GPa`l`^5 z+dcixuxwIs z_5oH|vR}K2`e!8VD(SBwsj$wMlwCfl74pmYgX4vo zHl<3iHiBinEZCq>Nos0dvE4Cl`_!Sryvwp*AYlA=oSpf>+|~Axhc?Cil5T$I0*ADG zAC`eu8GRziR(-&>q16rWSI_%rSGEG)UA!1HD+13YotZUMt>@BGM|GnIQ?n0Qm`TX; zYB9m--1?LVlfx~(z6|OSAxLMoJRX3RzXJ(iaf+*tcv+e|j0SB^PEQHA@5|(*&e79~ zaPZJ$W_43UYVW#UB#{?+B{lK)RO!1D?N(;5eK(@LybXoZvggv|DTr1&^md+PIDhl% zos}&od_TEjApZPi`MPxwd&wkN+6kDJ(i>5Qk3GSS;Gzc=zWmDGr6;}i-9m#X_6mpgu89O z(pcKQi!yoWk-Hx%OGvaXTkl#u`S0s$Il>r{Ks~u$&c9?|R<2k@(wT6pGb)EY;0*=7r`>fn?Vd83-f1!ChJ%162;ypO>oZ4hWdkDTr* z&j&*}?3$#t#U?4;>I=6@+u5*_HD_yC3TtWN6~!2JZZ7`z+RW&F;V<1wdrJ)AKxw?> z?C&n}KPq!<8m`?+MV$h?{S=*Ag97?#vpp(jFmRwvOB-Bn-?}g+R||R*WA9T-9Ga}R zE(L!a*%`b!MRCpKBn3m2>yC;~q|+xCja?^$2K#8Tb&!t_9ues^{ze!mmUSp?qt4sZCqF!*wYTr%gW@k9a1L@5Q5IqpygIOHJa|7 z7fs!bI~~srBNMz+HC9({ZW(=bJps}8IcT#TzOz%Sf$YU+)SZd+dNaKii_dR_cMu~% z4bkm{MOT|a*C$Axs%tMfEa)c`n3m|U!J1u2T{>&XYXjlvS!u$lg{QkUs<0sfCx zZlYtoYGqda6`ujsjJY*WDA4zgKuh&9k%>90Iy{fB8h0(TN3@iz0fdZIOhp)9JCVyd=(uySyQ+x1YAM;e$xxQucr`J!8 z&p;3G5~(W;9PMN5Nmi!?cs~=X6D=f+Kx<}K{&*jeEL~VeNQYq;U&0IEN^jLU>cRMd z*b(Oo0woYA@&VfCXIw_JG_?~58>6?W4M(#zx{D97*J{C1p&QL&Y{wi&*r> z%X60dnscUmtFc83AqL$dGY9ch_d#P|YT|`=uTO*(fB!0JkNSybf0%N>v|hsj8x-F= zklI~Lk94b(p~Uvj+#xAt?M`dOI>reZP$nW_j`03us-`C~4REk>6aPqNL>404VL9)p zd>N-L&*zd@KiV|RNR&DV+My;fMbG@{sLiuMw1YK}K^T(t$u_ONCwT66{f7}MD*4nt zr$qme>Ed~ojBsM@FE+Xz6%0pP>6h|sZI?t(@X5P-{Ce((o_WX?(@?4hG-j-`>>>Bi zwBviOlnq5h;FR}hTzf<&hN@o3&z?V^hO*IwLdjiSEY{*Q|R#- zakd$d+7vYAVfNbrZy5Gg&S{alD>q}pojhrppq?dUMp$NIvrxJ1+Z~nCq%bE`ROMqw zT`C=#KWVyRKIa-3&Q}=#XGpve=_8CQ9no~R;)Ynb5#0Vb4 z(Ukq#c?7FKiz&%~PmD)`ZUTt`EEx@#+am;rGvijZOlg!{UWMl}YEG`cO#&vi`r|}s zV$M0AQtGv*$6ClQ9m$!^*nTc%YOjAClvm;<%j5d$Sw)ae=}ANgpTlQGPk)H7c(XIe z!_sWCQ-a5Pjw9jmY<+oGpMvix;ku;v=T#Qfr zA%dP!lZef1{ulB0^;UnZ# z174hX5i*eCC6|1};zuS)hKZXDemGn&qj2oDn94V9vC5^G(xa*8Ou|wYZ+oj;NH-IC$$&H z?E1l5SGd5*hF^U!Wh9%?2-eRu2(p%p; z4-Z7g_jW0ww2oN0Eu5(SQ15l%_77lTx#fbo zj^g=$wRe_ZQGV?nA3{Xni^DmrpUflQfVz2wnUTd$t?(6%#KHtK>fQw6IlC}l(Nl4t$_%lpf?)Fal z|3CX*z9r%l_wPTPe)$^OxP6HqAv;u?wQ@zem>R167x3%%k)vR-`Yg$JQ4TiU!7F8a zWgk6pyltg4eN!FAA7};0pEq5fXI@fjZDW+9-QX`JC218Uy3DQGRuv=Hv8Z{N8ROb>HCPAFsc8RvAfAJ(lNBdQAllPx}?vV+v%ur6zFY_6pc5KeA+I zpN2AnJ4C1`-8`lmJu{kCNzgZk3OtGYA0cr7Ia3jD!M9P$ z-{oAgPDmCOo`#Z<+Mm3F*TNb!=td|dCz^a%X+C`Dek+xpsuq?qm*Y{@&`vd4=i{=v zob)8dk#!*#l1xy3udZNUO%gP(`#0= zmb-Nt3C@qBQ+8T%85ZRs$mbN|&kg_9gYWWHw6ByRg9NWDkHoiag~Hu>-I5b_MJ?rJ zekI8J(s|%hOSH9CYTdNDQN^cmpzFMI zOV{V$2dmbq(i57L=TDhF!q1$)vaAki@i>S`)wC(^jnP*XjEPgffLO3wG>n=#F4zWU zeuiTln0IM6AJEnXV{QAI$c3_}W~xA(&;&NQxN{>o#YSIr7?7vVgvdQM1vZ;Ptb9N4 zTTxWhx|GD}vAuDVTos5DJSVAmv}2v|t;6ZoyFjRqp?A_s-20k(F|^=t6Qnc6MkjFo z?6G#8Uh@rV`4_LBTSv3%_bUCqaedurD#h%EMX*YY-p8GBydnxRXX&42KMrZAkLhET zm_O@ki>AhH^89(G(QeT`X3>D~?eLgM{Qe5c*|NAysosWgN@640uzKyXu}_>-ELX8a znc>a*vQ<9QuHB7&%xqYr#|o}|y5#z)@#FP5GK)9&qMg2qBBSr~1uMj+Nu17+z9N3_ zEjAKmQm82mnN6+A6ZbO|(APG)5eFo_R^==l)nxL=MmjI0AcSulf|Kt?j;c-zMyEv% zdk#LK-F3vgy9nGWYU*E0DOV@mZRG)P^HNs{x*d}Sk$u&X)sU6@aD*l+bJi=L&K!)?aWGY z(osRWYvUZ<#;e65%9(;vSPFgV5NzAt{wekQg;(_jmyrwBEWKJ=qEIAcd0uaV^fKmT zTyAR@oJzYvMa=f8ysVl}NYs3!a|T8~ytM4L=;=167%x4zg{jWy@I<$-h4IcD;se>$<(@)c7GvHq zGYSm{-c4y2X9}9ig*~8eT%_E99tyOnRFLE!y;!*f6|}8kJq0jEEE(IhErgH%$sfb0 zB;lyf9Bj&P`{R`BjC5uv+C|^bpt-Ii?LgtCDiZ`Rijs5WCi>h_4X*53EOHke^IT4 zP}QucRv>^t4IwSrwebDOCS$3kbKfXb#Ujs|ZTVt8Ae~8cxL~j}4-osPiD`!?o*=%k z3%6Q4*!TSXCKj-UR?9HEXl?&l`1p-EE+biidrZI_#(l%c7+)Io!pJE{l0uz5i#zX# zyKM5o69PR7+C4HJ4Qy5xfYdSXHLbLzNLXz9QySR^ph&6YyqF9pej1jQVGiC{1MoBx zI4~i)8~_g@szwopY(z$K&8++d5VCAX^%jdTZ?j!TTt8`$yo+Lf@fV;drCZW+FDFZ+ zHkxqAYbCN&l=e~X^7iV*Iq4oI7}h{l|JbRqz}?%XHy!H~c>n6X>_6UXR^d=;!YwPxm94e-jXdl|K1{uU{?j<GOSRIO# z$tG<_%LgcNM0La|j#2Re_!XF6D1ef@=*Q#y))=~OuWw{ujp60H#kZjyb+Cg-X5DOk zY<4*Xh~VuSD=OZ1(Dz_l;+|Qoec6hFeal?znQ{xtu|(MGAkr{5ayQ$7!$;I_)p68yA+WHVLV~#3*~69cT4A|f&M8Uo1Qt*+1Uj3dMG~9QO@6G zt8k*~=wW}gN=?WYg?L!le@-M}UrQQ^#`ePk0isbH)ACZ9S+_VY&{Dar89bC z{O40nEy|(K{tp$ndTh+|yXD4~87Y@@^DVTnJQPx)oO#pD9ZiSIQEXI2WmH!YH$E$O z3`RD0;}x3pJr~SPY8Fc97*sa>Vm6~FiJw02NjoVLyxP}iSc(sxN2Xdc4}m`TxJZLCETOP7P}M@l-CQ$YQ+|%8 ztuP902RLI>8`$~CN&_B#^W;=ysk?PM~?;>#Xa$vpB16)O0yDL zHmOMJs8cq+dA*Re_n0vbDsXAdCv_)3t8Q$~L+AXYTjKDXmsHMa{MvJl-g%`JUdEy|<`xF^0;_5|Mg^vZ zT3HXvI2;`uDw$Q=g5Ly@nzs3sJ%mFiEuJS{yS5jB_L6u~1dSz|%vu`AV}&ZW7Mn!g zp#>qdNFrqfoFnrjCU>AGQA5%YA*Fkwllr;z%?l7;BzDNjmLx1T<>`{b{)1Ah(M(+V z16)R^7?3gU$hDbO7QpnPX*M`zi)#?P1f7a5toKyZcM>mi7(D^*cDDYkFLo@OG+T7k z>QCn?=O>-KhRW1Ob>#Y?+Y8kWYj!jc%>%ZDwSNJf6Yh-Sv-5N6S%&CjAE~ZuueMa7 z7Ec_Oal<6He1AG~8({H>rlLuX`&_5=&!Lvx+oCGhXmkyFVjL+ExLCJ@f1m2yBO?~% zpk7YRC^G$$n&P1cUq)e|4y(zUi{SHyEAW)w;qv#Rm{-&>1?RnWyY609U;DoTl> zvxPDyl?RS~+{&73IVk(<_XN;TyS{$R03cs;-t%hSqHJH=QzxhHkmbjwc(Y-DHH$Gno2Zn6Cx6Aj;S2EOI=K7B#(Y7;asnIWm>AcoLRS{anbb$u-@6 zp?QA2&=M}+HZvIQb&57rLUjA>ie3K~8erf``F+JXSA<;o1qhiqUt#~4q=SEoPS^dV z!TXG)gcHBk8+*9V`t|PhXDWU*dYuFR2O!o-mssC6N52$eT1UpO3i$#?>?dD3J2bME zpL*b@?HrOIyMUj2QjW}QYq~!E45=zCzj!=4jfB)4>U2-8+V~zjCTH-|aIeM@!&uxLH#u8pCdAIR zmFXq1Q^c1<5vL13y=glW)aLrIQQIPg7Ju<3^d_>mxbqc3@ zVMF=8ao1i`wtHUGj|_8($X?r@KHg9HTfQDGtCcRFv|CNS_43I%47pOsu~O4$G|i2W zb9OR)-&#s^Vk7hOD)pMQRZEw3*aql1LcREv?Pz&T70Cy$srzkEmGxCGzkj)Y`d#sd zrGp9LYZP7JQr09@1>{~J^@j0f>cU3KHC?N72ZM4xf9KBY^ls^~b80;IMbqBKr);r! zroP$90SdFmwab-mpQS-cmAuU@x*U%K9ji^Uwb_YsjU$dk@^?rc1tpZL&$B(>_>Pr# z=i^C+>ue12@v5aS`ph5_DVF!i;l0lB)aizHG{1%W`mH&*Jp{=yCChPBKJiZQ7toxm z4%%lEI&8dA(#9y9T`wleY;fkm*ZS~#_O-m*mWr{cBfM&x+gchD()>RL#UNHyc&g;^hV_!8fZ)mu6P(zDCciPa)8{|7Cu?=$fmzU5aRpe2`P3rFx3{wBpu>dA z$c;K#9 zK2jy&+rh);Iy3q6Dj3%M_ytk#%EDV_c`0(uTMA_ilxvpxg)(&ZS?-Bh5KZQ{#=mOB zptZ~L6p&$0B@ZlwGzX3UDnrn(b>Z3)f2$IvjuA>8c_h_|6={;-yhZ)y_qO;v7oLO* zodI8Qp^}jX!^fH$0!v`LTG(ro3}4>2KOjZRl9%S2Y??lr?{-AOv+TkQ^J!UfS`;fR zKQ3o7zHD(x*?#f3xg`20VHaa>_vD+`emcL-Locttn4Y@v(wGL$_^j_K41SG5&gyc0 zE>!vGSgSfEZPlxnuOb(fX}(YB;*eu4VPEet@g8JyRzASB(P%s<%U~fKJ803}zM3`F zO~dd->u3|EJG5BKR5nEGN2~fpqoF*cn4dgy)0vPHlV_eOv}=^_jH4>mVwp1^lXcB( zIb>>I70~Qh2jdW~BHmj&8)Yjnq5y+Plm^BV(KlsLg z$%Q*743Oenw_SfD;l3FFdoWVJ?Uxv1!Z9L*Y}?b%Cv;p0L1=E~i^eJU7ei?>(|tBw zv$wccN5(e9h1?l+Ykxpd06nZ>LP3#CJ|$;CQe+6K#bWIOUB{{pmLze?LXpECQC#O88b zkW(`bm$oxU>DYfYd+)VovNKGF!PyucGPUm>$No6CR!?oZY@E1sU9F*LuhRsjs*Jk! zc2Zfs@zUXZ*g?nFSNHKfc5>m(d~_i-Z3Bh&5ygyizvS5V2AE(tiHanlr4M2(kRHIB zT>hn&3Z|d8r+rS`5po{~+yaYb|4d!)4bI9H-F0|t*<_tqEm_Y)3xQ=C~Ah3_5p#hC**>5?t4$;{e;37VdZlWXkHsT?Q z1RLo{y!L{NTJ{B3T#XvXDV_oAuIu5566Agj8Qb3yTYCj?Uy{x}McDmOAZ#(rFmw@k?6oQn+!RGmdWHe>N)qc@x zniLmt!OszJd)@Rt81}R50%_UQlyKO1;%Dm3E>t~hBi3QTdoGfwU2ay1MK9V`1)PGv zFw8^`C%r_gA#&&0msUEyIyQ;btTaDkDy~Jepf^kx_rNJaDm}|xTb_^dXkD5 zLJKA7^V>Rrvno5sucuBfa92kvEuX96&m%{f!_K1Y{*c5G`t3yHz-k8UKnL@esRA6+ zUT{Ce`D3t(kRD(1aQHw~jLLwA9AUyLmr!F->FtAnY>9VF4V1-dkxO~LaT0rkf>`45 zDWxk7&tg>j`rhxcq(9TgDj!TXE%XjsF6r{TJAH({&6}ga zIn6RC-v=mM5BbvKr33vvV-cWjCoab&%7#UnNnuNNRXdi^uFJ*yl&A}ycbd?*n&H=O z2o)t3aLd}*lO19x?AT%C@A~C$T&(8!n^D=iijNyLy=XQ*YQ+vh%$=3z4hXq98<%jK z@NG&ebVEd5PyQi8O1|Ln#M@C>tlN@Z%iDA2Z*H{=!@YkK0RMVx3gZtl^nVO$i;j$n zPl1@Qhv+@7uQbnhc_ZvLJA9NpSgBWQy4FdhGu{r`q%OmYYAADq-bj3ya%Ot4QGexV zUusu?NJ`T-@nV#OG|*QPHTKliF6r$F*8QMl(rU?$^lz5;5Q%f+l*h9j|2Du$u+Agp zbPA1+XL(3ibSf5OOeq1tI$i2$f~7Z@?CswYz=*h+hJXth z=w_CQz$Q1Ou*0i0Ce;pbRGH|k|2!xy0+%~AzU-MACGx`l+{zkjM?Sp92MD1T0}aan z07XVPS5sS@;+*8bm-K8_(S1>wa|i=Be8|ivsh~yjT{RP8CVQAnP=pHpx$Tof?8xJ$ ze`4vVevIZ`K3O2z7#>vdqLD1$paUntk?F*3~i=m3Ifk3uABSz&QHkZ&ij9_;b9 zk@19-Dp{ph>kaDN*V3@10syu7LXngNFr9){-&I7>cBH@r4%~0|NkrhhxTAum#yH? zGg6@$jmndQe-Dhn<4%JFlhaYr(_$3Mco+*d3kx1lL^&82!y~S~kEouhSkrVuT5b@o9TnEL(jL#F-QC?P0PZ81gb$PrO;2@A$&HfT>9*YHQQH znh@I(s7WDIN`nJ+5@|<)iZcg=qN74U#DNnD1Se7u4fs(|1ivr?9ayP|B3iYCD$mfQ zCQ{S1n2)}^yxe#1J=_0pt-a1UPwQ^Z*?X_`Uu*sM+8<}X+baE^a`3seUF}?bEaiMO zrD`Qrd5@qw^epHZ>Df|p-qKBUEB%*?!m0{PHC6j|RplEgR~PkM5a^}N)Sfwi>W;Uz zdhwo_4HXBU%kRl^w@&7iKPx$e-n9%#IU!&oMI~iNsw0n19qSX;dS>I`G_G=WdcN9r z;_Rtv9XC<7kbL+HHxJ782T~pg05t)tf^>2vNJqfYt{YmqQDoBxkv+ra*BxxhcuK2v zm5%@Y)biQz)R8O%e=o%n${;ojY;EUP>`Qj6Cq)7GHm)C%2%^+hI;Z4T#a|oKIvshv z5H%!I+|I4PEXaXj04%ybsVolr%vhKnW7AEhC?eP!o1{y;8m2R#;}{6VZPc!+)ou0C zVWz$|1#2(|L5z%EYRxOzP+uLB>qYGuajX-<#^u;Kw&2uh&93)h>nHaFA%{&2PW=Nn zr?*a;gk3xvRhQIRa1de-!r(ss&?tRmZ=L2FMkhxI3lK6Jn<>5c*ID|@KU#^MCIo6> zpFA{|R(4fsBwHIW z9v!7G|7enadv4}~*8q_h%tD^j$7=PCnn0=dR0GKA(fgb9`2IRg6ksBIo+Gdw#|-3eSe=3tmDe zIqVN)tScM`0W#Z>2wc>~2Uv=3L)~D4gXqZtPQ8rifbYJqwkG>bv}95G7+};9Br?hF zWSa3b)X}z#79W9kukM%6-b_54WDJm~Ub=gsrJ0lz-8&lrQ7zfK1qzuZQkZvcE3|~S zZWmk0ETaNIHnMALn>akuvHLf5c4`y%!f+u>ZGp%@q_;T!`76_snc_?K;Wx%YpF;5K zw^F+BCYUPy`fpRif@5O@Im5cf?evD$>KlAgX;D0*HiO0`Yg3j;R4jT(9h(L_TsY6yxk*@ZBe%+dMqY=cB5oGs{D$QwOFbH)G$iVf<3Olcd7^#fr- zM{!ILWt#coT)s9ySkwDCPHv0oww8g8K%Yr{aR}msELVX(}JQr%F4Q8=KKn*OjSO*uSp;JK%GwhRF_K??vGC$ZqmJX z@+}8sQ)9Z}3*DiWl+L_7OXn_^{SW~2&C*b^;%IP!j$lkre7H&bMR1}7aTT*G8P}|G zHM1)hZDe{r_E3{{Y=d}}_PxJO_w4MaE4)$<<3JwzPdwPzfNemK(-X;{UCzmVr0zu5 zEnT}fzx)oVd!*W77`1Ig`DFcZ6TkPaI$hO1+`cGb$({ukz&{p4Ic-Xnwrg-KEkDqW zW3l$7Q`V$!1T(=QL1jgjIachdr75>-8>1A^h+;rTrD^nnwf?bw(Rang!*16Odj$Pn z@)JN5&5w~}ae6d};oa|&G>sT!)ixE#5;QW(u(=bqYHXcOflE%@t4A?n5fTUm0F~8_ zwpoz9rrU`@G=vsNjDRY(CrF(jIjqg8bd|CP02>eFag7T?u;C^ir+Z7YKmBYw;%%XdT2T}a$X4yR7EI;zaof3a)5Z;`OwVi%D?gbkBj!{;z2tOBSFk&E1DeiZXD**uvNqL}+|pO{ ztO$}2NMRit2ddU?)7Prq&*&H3X>&=E{-+j4iUz zrvL;?0$^@lyl=LHz9G^$SJV6ID__@7z->Bh>Vm=6AK&5bP%@heveHja5F@agGgUsY z@L@W2+^*NVoId0!kS~4XkWb%y;f}XBf>S+NIw9aHK;vN+4mJ|em)_QjIVfb2$;bwv zDKmoq6AThgKydS6Hs+UpKPWq|UA}s=UOEBZNM3oNT5qTAabY)X>L6jxfGDuu7&GD_ z=@@m?sJ-o2GS}&hNRW}-zHkr>o4&138@a8IC-FjSBxzjx?(*3@YmdmWGAd%0QvXzS zJ53JpX%Fp!=>v&`Hd7F@+Atw2vx9%^2M-APg0Jd|ePsRn3*B$#9Z5hCou4fo7W#SN z#}-@-N=##yQDh26pNzr9f*Q88krhI5@DHcf{dU-~PLSs}MvI4s1i|<=qxD~9`7>*~ znlw5lr$_6mTG4XbBNF_79BzvZ!TeIP)exdk3)kSHjYdW1P10ZJ_NCJSlrCuIU#gqw f88(SSw!Z%ZUzhC#9QlKF00000NkvXXu0mjfG$}gK literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/README.md b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/README.md new file mode 100644 index 0000000..fcc64cb --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/README.md @@ -0,0 +1,75 @@ +# ArkTS同步方式动态加载native模块 + +### 介绍 + +本工程主要展示了使用loadNativeModule接口能力进行同步方式加载native模块。该工程中展示的代码详细描述可查如下链接部分。 + +- [同步方式动态加载native模块](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/arkts-utils/js-apis-load-native-module.md) + +### 效果预览 + +| 首页 | 点击HAP加载系统库模块按钮后 | 点击HAP加载Native库按钮后 | +| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| | | | + +### 使用说明 + +1. 运行Index主界面。 +2. 页面中Text组件文本呈现LoadNativeModule效果并有两个按钮,分别点击之后第两个个按钮Text文本变化如上图并在工作台打印日志。 +3. 运行测试用例JsApisLoadNativeModule.test.ets文件对页面代码进行测试可以全部通过。 + +### 工程目录 + +``` +entry/src/ + ├── main + │ ├── cpp + │ │ ├── types + │ │ │ ├── libentry + │ │ │ │ ├── index.d.ts + │ │ │ ├── CMakeList.txt + │ │ │ ├── napi_init.cpp + │ ├── ets + │ │ ├── entryability + │ │ ├── entrybackupability + │ │ ├── pages + │ │ ├── Index.ets // 同步方式动态加载native模块 + │ ├── module.json5 + │ └── resources + ├── ohosTest + │ ├── ets + │ │ └── test + │ │ ├── Ability.test.ets + │ │ ├── JsApisLoadNativeModule.test.ets // 自动化测试代码 + │ │ └── List.test +``` + +### 相关权限 + +不涉及。 + +### 依赖 + +不涉及。 + +### 约束与限制 + +1. 本示例仅支持标准系统上运行,支持设备:华为手机。 + +2. HarmonyOS系统:HarmonyOS 6.0.0及以上。 + +3. DevEco Studio版本:DevEco Studio 6.0.0及以上。 + +4. HarmonyOS SDK版本:HarmonyOS 6.0.0及以上。 + +### 下载 + +如需单独下载本工程,执行如下命令: + +``` +git init +git config core.sparsecheckout true +echo ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule > .git/info/sparse-checkout +git remote add origin https://gitee.com/harmonyos_samples/guide-snippets.git +git pull origin master +``` diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/build-profile.json5 new file mode 100644 index 0000000..15bb241 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/build-profile.json5 @@ -0,0 +1,57 @@ +/* + * 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": "6.0.0(20)", + "targetSdkVersion": "6.0.0(20)", + "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/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/code-linter.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/code-linter.json5 new file mode 100644 index 0000000..4bacc9e --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/code-linter.json5 @@ -0,0 +1,35 @@ +/* + * 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. + */ + +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/.gitignore new file mode 100644 index 0000000..e2713a2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/build-profile.json5 new file mode 100644 index 0000000..a5986ed --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/build-profile.json5 @@ -0,0 +1,69 @@ +/* + * 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", + // [Start hap_load_native_dependence_01] + "buildOption": { + "arkOptions": { + "runtimeOnly": { + "packages": [ + "libentry.so" + ] + } + }, + // [StartExclude hap_load_native_dependence_01] + "externalNativeOptions": { + "path": "./src/main/cpp/CMakeLists.txt", + "arguments": "", + "cppFlags": "", + "abiFilters": [ + "arm64-v8a", + "x86_64" + ] + }, + // [EndExclude hap_load_native_dependence_01] + }, + // [End hap_load_native_dependence_01] + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + }, + "nativeLib": { + "debugSymbol": { + "strip": true, + "exclude": [] + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/hvigorfile.ts new file mode 100644 index 0000000..e4f43d5 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/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/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/oh-package.json5 new file mode 100644 index 0000000..118460b --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/oh-package.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. + */ + +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + // [Start hap_load_native_dependence] + "dependencies": { + "libentry.so": "file:./src/main/cpp/types/libentry" + }, + // [End hap_load_native_dependence] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/CMakeLists.txt b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/CMakeLists.txt new file mode 100644 index 0000000..c8b20f5 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/CMakeLists.txt @@ -0,0 +1,15 @@ +# the minimum version of CMake. +cmake_minimum_required(VERSION 3.5.0) +project(syncNative) + +set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}) + +if(DEFINED PACKAGE_FIND_FILE) + include(${PACKAGE_FIND_FILE}) +endif() + +include_directories(${NATIVERENDER_ROOT_PATH} + ${NATIVERENDER_ROOT_PATH}/include) + +add_library(entry SHARED napi_init.cpp) +target_link_libraries(entry PUBLIC libace_napi.z.so) \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/napi_init.cpp b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/napi_init.cpp new file mode 100644 index 0000000..0fd6bae --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/napi_init.cpp @@ -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. + */ + +#include "napi/native_api.h" + +static napi_value Add(napi_env env, napi_callback_info info) +{ + size_t argc = 2; + napi_value args[2] = {nullptr}; + + napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); + + napi_valuetype valuetype0; + napi_typeof(env, args[0], &valuetype0); + + napi_valuetype valuetype1; + napi_typeof(env, args[1], &valuetype1); + + double value0; + napi_get_value_double(env, args[0], &value0); + + double value1; + napi_get_value_double(env, args[1], &value1); + + napi_value sum; + napi_create_double(env, value0 + value1, &sum); + + return sum; +} + +EXTERN_C_START +static napi_value Init(napi_env env, napi_value exports) +{ + napi_property_descriptor desc[] = {{"add", nullptr, Add, nullptr, nullptr, nullptr, napi_default, nullptr}}; + napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc); + return exports; +} +EXTERN_C_END + +static napi_module demoModule = { + .nm_version = 1, + .nm_flags = 0, + .nm_filename = nullptr, + .nm_register_func = Init, + .nm_modname = "entry", + .nm_priv = ((void *)0), + .reserved = {0}, +}; + +extern "C" __attribute__((constructor)) void RegisterEntryModule(void) { napi_module_register(&demoModule); } diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/types/libentry/index.d.ts b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/types/libentry/index.d.ts new file mode 100644 index 0000000..3604285 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/types/libentry/index.d.ts @@ -0,0 +1,18 @@ +/* + * 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. + */ + +// [Start hap_load_native] +export const add: (a: number, b: number) => number; +// [End hap_load_native] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/types/libentry/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/types/libentry/oh-package.json5 new file mode 100644 index 0000000..1033f70 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/cpp/types/libentry/oh-package.json5 @@ -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. + */ + +{ + "name": "libentry.so", + "types": "./index.d.ts", + "version": "1.0.0", + "description": "Please describe the basic information." +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/ets/entryability/EntryAbility.ets b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 0000000..0f2f8b9 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/ets/entryability/EntryAbility.ets @@ -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. + */ + +import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy(): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 0000000..b1e2129 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,27 @@ +/* + * 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 { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(0x0000, 'testTag', 'onBackup ok'); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/ets/pages/Index.ets b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/ets/pages/Index.ets new file mode 100644 index 0000000..169d519 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,52 @@ +/* + * 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. + */ + +@Entry +@Component +struct Index { + @State message: string = 'LoadNativeModule'; + + build() { + Column() { + Button('LoadSystemModule') + .width('50%') + .margin({ bottom: 3 }) + .onClick(() => { + // [Start hap_load_system_module] + //HAP加载系统库模块 + let hilog: ESObject = loadNativeModule('@ohos.hilog'); + hilog.info(0, 'testTag', 'loadNativeModule ohos.hilog success'); + // [End hap_load_system_module] + this.message = 'loadNativeModule ohos.hilog success' + }) + + Button('LoadNativeModule') + .width('50%') + .margin({ bottom: 3 }) + .onClick(() => { + // [Start load_native_module_libentry] + //HAP加载Native库 + let module: ESObject = loadNativeModule('libentry.so'); + let sum: number = module.add(1, 2); + // [End load_native_module_libentry] + this.message = 'loadNativeModule libentry.so success result: ' + sum.toString(); + }) + Text(this.message) + .id('HelloWorld1') + .fontSize(20) + .margin({ bottom: 3 }) + }.width('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/module.json5 new file mode 100644 index 0000000..9f7f873 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/module.json5 @@ -0,0 +1,66 @@ +/* + * 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": [ + "default", + "tablet" + ], + "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": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/element/color.json b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/element/color.json new file mode 100644 index 0000000..3c71296 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/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/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..83a5a5d --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/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": "JsApisLoadNativeModule" + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/media/background.png b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..f939c9fa8cc8914832e602198745f592a0dfa34d GIT binary patch literal 57364 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 A4*&oF literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/media/foreground.png b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/media/foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..4483ddad1f079e1089d685bd204ee1cfe1d01902 GIT binary patch literal 12430 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 cSLciz6AsI{U0tD9;7S&f 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/profile/backup_config.json b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 0000000..78f40ae --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/profile/main_pages.json b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 0000000..1898d94 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/Index" + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/en_US/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/en_US/element/string.json new file mode 100644 index 0000000..83a5a5d --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/en_US/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "JsApisLoadNativeModule" + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/zh_CN/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/zh_CN/element/string.json new file mode 100644 index 0000000..0bc3bc9 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "模块描述" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "JsApisLoadNativeModule" + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/mock/mock-config.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/mock/mock-config.json5 new file mode 100644 index 0000000..a99e1d7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/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/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/ets/test/Ability.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 0000000..0f8ce9a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/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/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/ets/test/JsApisLoadNativeModule.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/ets/test/JsApisLoadNativeModule.test.ets new file mode 100644 index 0000000..9926c94 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/ets/test/JsApisLoadNativeModule.test.ets @@ -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. + */ + +import { describe, it, expect } from '@ohos/hypium'; +// 导入测试依赖kit +import { abilityDelegatorRegistry, Driver, ON } from '@kit.TestKit'; +import { UIAbility, Want } from '@kit.AbilityKit'; + +const delegator: abilityDelegatorRegistry.AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); +const bundleName = abilityDelegatorRegistry.getArguments().bundleName; + +export default function JsApisLoadNativeModuleTest() { + describe('jsApisLoadNativeModuleTest', () => { + + it('testJsApisLoadNativeModule001', 0, async () => { + console.info('uitest: testJsApisLoadNativeModule001 begin'); + const want: Want = { + bundleName: bundleName, + abilityName: 'EntryAbility' + } + await delegator.startAbility(want); + const driver = Driver.create(); + await driver.delayMs(1000); + + const ability: UIAbility = await delegator.getCurrentTopAbility(); + console.info('get top ability'); + expect(ability.context.abilityInfo.name).assertEqual('EntryAbility'); + await driver.delayMs(1000); + + const button1 = await driver.findComponent(ON.text('LoadSystemModule')); + const button2 = await driver.findComponent(ON.text('LoadNativeModule')); + await driver.delayMs(1000); + await button1.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('loadNativeModule ohos.hilog success')); + + await driver.delayMs(1000); + await button2.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('loadNativeModule libentry.so success result: 3')); + console.info('uitest: testJsApisLoadNativeModule001 end'); + }) + }) +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/ets/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 0000000..d6ba51e --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,22 @@ +/* + * 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'; +import JsApisLoadNativeModuleTest from './JsApisLoadNativeModule.test'; + +export default function testsuite() { + abilityTest(); + JsApisLoadNativeModuleTest(); +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/module.json5 new file mode 100644 index 0000000..f11cb9f --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * 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": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/test/List.test.ets new file mode 100644 index 0000000..f1186b1 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/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/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/test/LocalUnit.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/entry/src/test/LocalUnit.test.ets new file mode 100644 index 0000000..7fc57c7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/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/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/hvigor/hvigor-config.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/hvigor/hvigor-config.json5 new file mode 100644 index 0000000..9090461 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/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.5", + "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/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/hvigorfile.ts new file mode 100644 index 0000000..2a5e543 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/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/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/oh-package.json5 new file mode 100644 index 0000000..42251ad --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/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.5", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.19", + "@ohos/hamock": "1.0.0" + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/ohosTest.md b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/ohosTest.md new file mode 100644 index 0000000..338b5a2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/ohosTest.md @@ -0,0 +1,9 @@ +# 同步方式动态加载Native模块测试用例归档 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 测试结果 | +| ------------ | ------------ | ------------------------- | ------------ | -------- | +| 拉起应用 | 设备正常运行 | | 成功拉起应用 | Pass | +| 主页按钮点击 | 位于主页 | 点击HAP加载系统库模块按钮 | 页面文本变化 | Pass | +| 主页按钮点击 | 位于主页 | 点击HAP加载Native库按钮 | 页面文本变化 | Pass | \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/screenshots/JsApisLoadNativeModule1.png b/ArkTS/ArkTSRuntime/ArkTSModule/JsApisLoadNativeModule/screenshots/JsApisLoadNativeModule1.png new file mode 100644 index 0000000000000000000000000000000000000000..05533e1f1b756982c06b657b069dab9cf4c59bad GIT binary patch literal 21246 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 literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/README.md b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/README.md new file mode 100644 index 0000000..5c1d895 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/README.md @@ -0,0 +1,86 @@ +# ArkTS延迟加载(lazy import) + +### 介绍 + +本工程主要对比了延迟加载与普通加载的区别,并展示延迟加载的错误使用方法。该工程中展示的代码详细描述可查如下链接部分。 + +- [延迟加载](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/arkts-utils/arkts-lazy-import.md) + +### 效果预览 + +| 首页 | 依次点击按钮后结果图 | +| ------------------------------------------------------------- | ------------------------------------------------------------- | +| | | + +### 使用说明 + +1. 运行Index主界面。 +2. 页面中Text组件呈现LazyImport效果,依次点击五个button,Text依次现实显示‘Call a success result: a = mod1 a executed’,‘‘Call b success result: b = mod1 b executed’, ‘‘Call c success result: c = mod2 c executed’, ‘Not advisable to use one error: ReferenceError’, ‘Not advisable to use two error: ReferenceError’。 +3. 运行测试用例LazyImport.test.ets文件对页面代码进行测试可以全部通过。 + +### 工程目录 + +``` +entry/ +└── src/ + ├── main/ + │ ├── ets/ + │ │ ├── entryability/ + │ │ ├── entrybackupability/ + │ │ ├── pages/ + │ │ │ ├── 1.ets + │ │ │ ├── A.ets + │ │ │ ├── A_ns.ets + │ │ │ ├── B.ets + │ │ │ ├── C.ets + │ │ │ ├── fail_example.ets + │ │ │ ├── index.ets + │ │ │ ├── innerinner.ets + │ │ │ ├── main.ets + │ │ │ ├── middle.ets + │ │ │ ├── mod1.ets + │ │ │ ├── mod2.ets + │ │ │ └── outter.ets + │ │ ├── util/ + │ │ ├── resources/ + │ │ └── module.json5 + │ └── mock/ + └── ohosTest/ + ├── ets/ + │ └── test/ + │ ├── Ability.test.ets + │ ├── LazyImport.test.ets + │ └── List.test.ets + ├── module.json5 + └── test/ +``` + +### 相关权限 + +不涉及。 + +### 依赖 + +不涉及。 + +### 约束与限制 + +1. 本示例仅支持标准系统上运行,支持设备:华为手机。 + +2. HarmonyOS系统:HarmonyOS 6.0.0及以上。 + +3. DevEco Studio版本:DevEco Studio 6.0.0及以上。 + +4. HarmonyOS SDK版本:HarmonyOS 6.0.0及以上。 + +### 下载 + +如需单独下载本工程,执行如下命令: + +``` +git init +git config core.sparsecheckout true +echo ArkTS/ArkTSRuntime/ArkTSModule/LazyImport > .git/info/sparse-checkout +git remote add origin https://gitee.com/harmonyos_samples/guide-snippets.git +git pull origin master +``` diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/build-profile.json5 new file mode 100644 index 0000000..3e0490a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/build-profile.json5 @@ -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. + */ + +{ + "app": { + "signingConfigs": [], + "products": [ + { + "name": "default", + "signingConfig": "default", + "compatibleSdkVersion": "6.0.0(20)", + "targetSdkVersion": "6.0.0(20)", + "runtimeOS": "HarmonyOS", + "buildOption": { + "arkOptions": { + "reExportCheckMode": "compatible" + }, + "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/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/code-linter.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/code-linter.json5 new file mode 100644 index 0000000..4bacc9e --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/code-linter.json5 @@ -0,0 +1,35 @@ +/* + * 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. + */ + +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/.gitignore new file mode 100644 index 0000000..e2713a2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/build-profile.json5 new file mode 100644 index 0000000..88b78d1 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/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/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/hvigorfile.ts new file mode 100644 index 0000000..e4f43d5 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/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/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/oh-package.json5 new file mode 100644 index 0000000..dbacc30 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/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/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/entryability/EntryAbility.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 0000000..cd39a56 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,57 @@ +/* + * 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'; + +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(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy(): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/main', (err) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 0000000..b1e2129 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,27 @@ +/* + * 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 { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(0x0000, 'testTag', 'onBackup ok'); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/1.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/1.ets new file mode 100644 index 0000000..cceb991 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/1.ets @@ -0,0 +1,19 @@ +/* + * 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. + */ + +// [Start export_variable_001] +export let a = 10; +export let b = 100; +// [End export_variable_001] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/2.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/2.ets new file mode 100644 index 0000000..ef250ca --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/2.ets @@ -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. + */ + +// [Start unused_file_no_lazy] +import { a } from './under1' // 加载under1文件的变量 +export function myFunc() { + return a; // a未被使用 +} +// [End unused_file_no_lazy] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/3.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/3.ets new file mode 100644 index 0000000..4b40bd4 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/3.ets @@ -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. + */ + +// [Start unused_file_with_lazy] +import lazy { a } from './under1' // 不在此处触发under1文件的加载 +export function myFunc() { + return a; // 此时触发under1文件的加载 +} +// [End unused_file_with_lazy] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/A.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/A.ets new file mode 100644 index 0000000..65c0d6a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/A.ets @@ -0,0 +1,23 @@ +/* + * 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. + */ + +// [Start import_variable_c] +import { c } from './B'; +console.info(c); +// [End import_variable_c] + +// [Start export_variable_a] +export let a = 10; +// [End export_variable_a] diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/A_ns.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/A_ns.ets new file mode 100644 index 0000000..fb687b3 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/A_ns.ets @@ -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. + */ + +// [Start a_ns] +import * as ns from './B'; +console.info(ns.c); +// [End a_ns] + +export { ns }; \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/B.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/B.ets new file mode 100644 index 0000000..24c8222 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/B.ets @@ -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. + */ + +// [Start import_export_variable_c] +import lazy { c } from './C'; // 从'C'内获取c对象,标记为延迟加载 +export { c }; +// [End import_export_variable_c] + +// [Start export_func] +export function func() { + return 20; +} +// [End export_func] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/C.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/C.ets new file mode 100644 index 0000000..5db0183 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/C.ets @@ -0,0 +1,19 @@ +/* + * 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. + */ + +// [Start export_variable_c] +let c = 'c'; +export { c }; +// [End export_variable_c] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/fail_example.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/fail_example.ets new file mode 100644 index 0000000..18d920f --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/fail_example.ets @@ -0,0 +1,34 @@ +/* + * 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. + */ + +/* +// [Start wrong_example] +export lazy var v; // 编译器提示报错:应用编译报错 +export lazy default function f(){}; // 编译器提示报错:应用编译报错 +export lazy default function(){}; // 编译器提示报错:应用编译报错 +export lazy default 42; // 编译器提示报错:应用编译报错 +export lazy { x }; // 编译器提示报错:应用编译报错 +export lazy { x as v }; // 编译器提示报错:应用编译报错 +export lazy { x } from 'mod'; // 编译器提示报错:应用编译报错 +export lazy { x as v } from 'mod'; // 编译器提示报错:应用编译报错 +export lazy * from 'mod'; // 编译器提示报错:应用编译报错 + +import lazy v from 'mod'; // 编译器提示报错:应用编译报错 +import lazy * as ns from 'mod'; // 编译器提示报错:应用编译报错 + +import lazy type { obj } from './mod'; // 不支持,编译器、应用编译报错 +import type lazy { obj } from './mod'; // 不支持,编译器、应用编译报错 +// [End wrong_example] +* */ diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/index.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/index.ets new file mode 100644 index 0000000..5d5dde1 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/index.ets @@ -0,0 +1,23 @@ +/* + * 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. + */ + +// [Start testing_principle01] +import { a } from './A'; +import { func } from './B'; +func(); // 使用B文件变量 +export function myFunc() { + return a; // a变量未被使用 +} +// [End testing_principle01] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/innerinner.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/innerinner.ets new file mode 100644 index 0000000..5ab2da5 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/innerinner.ets @@ -0,0 +1,19 @@ +/* + * 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. + */ + +// [Start scenario_2] +import { a } from './1' // innerinner文件从1文件中加载了a变量 +console.log('example ', a); // a变量在innerinner文件执行时就被使用 +// [End scenario_2] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/main.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/main.ets new file mode 100644 index 0000000..200e844 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/main.ets @@ -0,0 +1,99 @@ +/* + * 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. + */ + +// [Start import_module] +// [Start import_lazy_module] +import lazy { a } from './mod1'; // 'mod1' 未执行 +// [StartExclude import_lazy_module] +import { c } from './mod2'; // 'mod2' 执行 +// [EndExclude import_lazy_module] +import { b } from './mod1'; // 'mod1' 执行 +import { hilog } from '@kit.PerformanceAnalysisKit'; +// [End import_lazy_module] +// [End import_module] + + +// [Start main_running_info] +console.info('main executed'); +while (false) { + let xx = a; + // [StartExclude main_running_info] + let xy = b; + let xz = c; + // [EndExclude main_running_info] +} +// [End main_running_info] + +@Entry +@Component +struct Index { + @State message: string = 'LazyImport'; + + build() { + Column() { + Button('Call a') + .width('50%') + .margin({ bottom: 3 }) + .onClick(() => { + this.message = 'Call a success result: a = ' + a; + console.info(a); + }) + Button('Call b') + .width('50%') + .margin({ bottom: 3 }) + .onClick(() => { + this.message = 'Call b success result: b = ' + b; + console.info(b); + }) + Button('Call c') + .width('50%') + .margin({ bottom: 3 }) + .onClick(() => { + this.message = 'Call c success result: c = ' + c; + console.info(c); + }) + Button('Not advisable to use one') + .width('50%') + .margin({ bottom: 3 }) + .onClick(() => { + import('./middle').then((res: ESObject) => { + console.info(res.c); + }).catch((e: Error) => { + hilog.error(0x0000, '[Sample_LazyImport]', 'Test Assert error: %{public}s', e.toString()); + this.message = 'Not advisable to use one error: ' + e.name; + }) + }) + Button('Not advisable to use two') + .width('50%') + .margin({ bottom: 3 }) + .onClick(() => { + import('./middle').then((res: ESObject) => { + console.info(res.ns.c); + }).catch((e: Error) => { + hilog.error(0x0000, '[Sample_LazyImport]', 'Test Assert error: %{public}s', e.toString()); + this.message = 'Not advisable to use two error: ' + e.name; + }) + }) + Text(this.message) + .fontSize(20) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }) + } + .height('100%') + .width('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/middle.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/middle.ets new file mode 100644 index 0000000..46f76d6 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/middle.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 { a } from './A'; // 不推荐用法 +import { ns } from './A_ns'; // 不推荐用法 + + +export { a, ns }; \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/mod1.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/mod1.ets new file mode 100644 index 0000000..5c1c3f4 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/mod1.ets @@ -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. + */ + +// [Start export_module_variable_01] +export let a = 'mod1 a executed'; +console.info(a); +export let b = 'mod1 b executed'; +console.info(b); +// [End export_module_variable_01] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/mod2.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/mod2.ets new file mode 100644 index 0000000..7ba1e1c --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/mod2.ets @@ -0,0 +1,19 @@ +/* + * 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. + */ + +// [Start export_module_variable_02] +export let c = 'mod2 c executed'; +console.info(c); +// [End export_module_variable_02] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/outter1.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/outter1.ets new file mode 100644 index 0000000..cf619db --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/outter1.ets @@ -0,0 +1,19 @@ +/* + * 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. + */ + +// [Start scenario_1] +import { a } from './1' // outter文件从1文件中加载了a变量 +console.log('example ', a); // a变量在outter文件执行时就被使用 +// [End scenario_1] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/outter2.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/outter2.ets new file mode 100644 index 0000000..d9d0424 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/outter2.ets @@ -0,0 +1,22 @@ +/* + * 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. + */ + +// [Start scenario_3] +import { a , b } from './1' // 加载1文件的多个变量 +console.info('example', a); // a被使用 +export function myFunc() { + return b; // b未被使用 +} +// [End scenario_3] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/outter3.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/outter3.ets new file mode 100644 index 0000000..2ce0d42 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/outter3.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. + */ + +// [Start scenario_4] +import('./1').then((ns:ESObject) => { + console.info('import file 1 success'); +}); +// [Start scenario_4] diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/under1.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/under1.ets new file mode 100644 index 0000000..8973bd5 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/pages/under1.ets @@ -0,0 +1,16 @@ +/* + * 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. + */ + +export let a =1; \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/util/CommonButton.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/util/CommonButton.ets new file mode 100644 index 0000000..6f452be --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/util/CommonButton.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. + */ + +// [StartExclude button_component] +import router from '@ohos.router'; + +@Component +export struct CommonButton { + @State buttonName: string = ''; + @State buttonUrl: string = ''; + @State data: string = ''; + + build() { + Text(this.buttonName) + .id(this.buttonName) + .padding(px2vp(5)) + .fontSize(px2fp(25)) + .width('45%') + .height(36) + .backgroundColor('#04a4fc') + .fontColor(Color.White) + .textAlign(TextAlign.Center) + .borderRadius(15) + .margin(px2vp(5)) + .onClick(() => { + router.pushUrl({ + url: this.buttonUrl, + params: { + text: this.data, + buttonName: this.buttonName + } + }); + }) + } +} +// [EndExclude button_component] diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/util/resource.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/util/resource.ets new file mode 100644 index 0000000..40f1ea9 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/ets/util/resource.ets @@ -0,0 +1,27 @@ +/* + * 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. + */ + +// [StartExclude p2p_manager_resource] +export class P2PManager { + public resourceToString(resource: Resource):string { + return getContext(this).resourceManager.getStringSync(resource); + } +} + +// 默认导出let +let p2pManager = new P2PManager(); + +export default p2pManager as P2PManager; +// [EndExclude p2p_manager_resource] diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/module.json5 new file mode 100644 index 0000000..9f7f873 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/module.json5 @@ -0,0 +1,66 @@ +/* + * 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": [ + "default", + "tablet" + ], + "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": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/element/color.json b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/element/color.json new file mode 100644 index 0000000..3c71296 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/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/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..0104ff0 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/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": "LazyImport" + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/media/background.png b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..f939c9fa8cc8914832e602198745f592a0dfa34d GIT binary patch literal 57364 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 A4*&oF literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/media/foreground.png b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/media/foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..4483ddad1f079e1089d685bd204ee1cfe1d01902 GIT binary patch literal 12430 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 cSLciz6AsI{U0tD9;7S&f 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/profile/backup_config.json b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 0000000..78f40ae --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/profile/main_pages.json b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 0000000..b5c20d2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/main" + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/dark/element/color.json b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/dark/element/color.json new file mode 100644 index 0000000..79b11c2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/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/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/en_US/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/en_US/element/string.json new file mode 100644 index 0000000..0104ff0 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/en_US/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "LazyImport" + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/zh_CN/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/zh_CN/element/string.json new file mode 100644 index 0000000..088552e --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "模块描述" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "LazyImport" + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/mock/mock-config.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/mock/mock-config.json5 new file mode 100644 index 0000000..a99e1d7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/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/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/ets/test/Ability.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 0000000..0f8ce9a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/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/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/ets/test/LazyImport.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/ets/test/LazyImport.test.ets new file mode 100644 index 0000000..ed73cfc --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/ets/test/LazyImport.test.ets @@ -0,0 +1,71 @@ +/* + * 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, it, expect } from '@ohos/hypium'; +import { abilityDelegatorRegistry, Driver, ON } from '@kit.TestKit'; +import { UIAbility, Want } from '@kit.AbilityKit'; + +const delegator: abilityDelegatorRegistry.AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); +const bundleName = abilityDelegatorRegistry.getArguments().bundleName; + +export default function lazyImportTest() { + describe('lazyImportTest', () => { + + it('testLazyImport001', 0, async (done: Function) => { + console.info('uitest: testLazyImport001 begin'); + const want: Want = { + bundleName: bundleName, + abilityName: 'EntryAbility' + } + await delegator.startAbility(want); + const driver = Driver.create(); + await driver.delayMs(1000); + + const ability: UIAbility = await delegator.getCurrentTopAbility(); + console.info('get top ability'); + expect(ability.context.abilityInfo.name).assertEqual('EntryAbility'); + await driver.delayMs(1000); + + await driver.assertComponentExist(ON.text('LazyImport')); + const button1 = await driver.findComponent(ON.text('Call a')); + const button2 = await driver.findComponent(ON.text('Call b')); + const button3 = await driver.findComponent(ON.text('Call c')); + const button4 = await driver.findComponent(ON.text('Not advisable to use one')); + const button5 = await driver.findComponent(ON.text('Not advisable to use two')); + + await button1.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Call a success result: a = mod1 a executed')); + + await button2.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Call b success result: b = mod1 b executed')); + + await button3.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Call c success result: c = mod2 c executed')); + + await button4.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Not advisable to use one error: ReferenceError')); + + await button5.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Not advisable to use two error: ReferenceError')); + console.info('uitest: testLazyImport001 end'); + done(); + }) + }) +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/ets/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 0000000..ac5afec --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,22 @@ +/* + * 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'; +import lazyImportTest from './LazyImport.test'; + +export default function testsuite() { + abilityTest(); + lazyImportTest(); +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/module.json5 new file mode 100644 index 0000000..f11cb9f --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * 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": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/test/List.test.ets new file mode 100644 index 0000000..0ce5a4e --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/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/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/test/LocalUnit.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/entry/src/test/LocalUnit.test.ets new file mode 100644 index 0000000..b7b035e --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/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/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/hvigor/hvigor-config.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/hvigor/hvigor-config.json5 new file mode 100644 index 0000000..a30df2a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/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.1.0", + "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*/ + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/hvigorfile.ts new file mode 100644 index 0000000..2a5e543 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/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/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/oh-package.json5 new file mode 100644 index 0000000..c552936 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/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.1.0", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.19", + "@ohos/hamock": "1.0.0" + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/ohosTest.md b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/ohosTest.md new file mode 100644 index 0000000..b7d8554 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/ohosTest.md @@ -0,0 +1,12 @@ +# 延迟加载测试用例归档 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 测试结果 | +| ------------ | ------------ | ------------------- | ------------ | -------- | +| 拉起应用 | 设备正常运行 | | 成功拉起应用 | Pass | +| 主页按钮点击 | 位于主页 | 点击触发a按钮 | Call a success result: a = mod1 a executed | Pass | +| 主页按钮点击 | 位于主页 | 点击触发b按钮 | Call b success result: b = mod1 b executed | Pass | +| 主页按钮点击 | 位于主页 | 点击触发c按钮 | Call c success result: c = mod2 c executed | Pass | +| 主页按钮点击 | 位于主页 | 点击不推荐用法1按钮 | Not advisable to use one error: ReferenceError | Pass | +| 主页按钮点击 | 位于主页 | 点击不推荐用法2按钮 | Not advisable to use two error: ReferenceError | Pass | \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/screenshots/LazyImport1.png b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/screenshots/LazyImport1.png new file mode 100644 index 0000000000000000000000000000000000000000..a3fdc7e3da94458b1c322301a47e6e0dbd2af9d1 GIT binary patch literal 51034 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 DXzC!1 literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/screenshots/LazyImport2.png b/ArkTS/ArkTSRuntime/ArkTSModule/LazyImport/screenshots/LazyImport2.png new file mode 100644 index 0000000000000000000000000000000000000000..f12428b5481565cffc87b0bb98b8a485dd9f43fb GIT binary patch literal 57751 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 Dc}f@h literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/.gitignore new file mode 100644 index 0000000..d2ff201 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/.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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/AppScope/app.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/AppScope/app.json5 new file mode 100644 index 0000000..2bb30c7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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.moduleloadingsideeffects", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name" + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/AppScope/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/AppScope/resources/base/element/string.json new file mode 100644 index 0000000..d9d56cd --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "ModuleLoadingSideEffects" + } + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/AppScope/resources/base/media/app_icon.png b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/README.md b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/README.md new file mode 100644 index 0000000..26a2833 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/README.md @@ -0,0 +1,79 @@ +# ArkTS模块加载副作用及优化 + +### 介绍 + +当使用ArkTS模块化时,模块的加载和执行可能会引发副作用。副作用是指在模块导入过程中,除了导出功能或对象之外,还产生了额外的行为或状态变化。这些行为可能影响程序别的部分,并导致非预期的顶层代码执行、全局状态变化、原型链修改、导入内容未定义等问题。 + +本项目展现了模块加载副作用及优化,包括模块执行顶层代码、修改全局对象、修改应用级ArkUI组件的状态变量信息、修改内置全局变量或原型链、循环依赖和延迟加载改变模块执行顺序等场景,对比产生副作用的场景和优化后场景。代码详细描述可查如下链接。 + +- [模块加载副作用及优化](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/arkts-utils/arkts-module-side-effects.md) + +### 效果预览 + +| 首页 | +| -------------------------------------------------------------------------- | +| | + +### 使用说明 + +1. 运行Index主界面。 +2. 页面中呈现五个按钮分别对应介绍中五个场景,分别点击按钮可以跳转到各个场景的页面,页面中有副作用以及优化后结果进行对比,并在工作台打印日志。 +3. 运行测试用例ModuleLoadingSideEffects.test.ets文件对页面代码进行测试可以全部通过。 + +### 工程目录 + +``` +entry/src/ + ├── main + │ ├── ets + │ │ ├── entryability + │ │ ├── entrybackupability + │ │ ├── pages + │ │ | ├── LazyImportChangeExecutionOrder // 延迟加载改变模块执行顺序 + │ │ | ├── ModifyGlobalObject // 修改全局对象 + │ │ | ├── ModifyingGlobalVariables // 修改内置全局变量或原型链 + │ │ | ├── ModifyTheApplicationLevelArkUI // 修改应用级ArkUI组件的状态变量信息 + │ │ | ├── TopCodeModification // 模块执行顶层代码 + │ │ | └── Index.ets // 首页 + │ │ ├── util + │ │ ├── CommonButton.ets + │ │ └── resource.ets + │ ├── module.json5 + │ └── resources + ├── ohosTest + │ ├── ets + │ │ └── test + │ │ ├── Ability.test.ets + │ │ ├── ModuleLoadingSideEffects.test.ets // 自动化测试代码 + │ │ └── List.test +``` + +### 相关权限 + +不涉及。 + +### 依赖 + +不涉及。 + +### 约束与限制 + +1. 本示例仅支持标准系统上运行,支持设备:华为手机。 + +2. HarmonyOS系统:HarmonyOS 6.0.0及以上。 + +3. DevEco Studio版本:DevEco Studio 6.0.0及以上。 + +4. HarmonyOS SDK版本:HarmonyOS 6.0.0及以上。 + +### 下载 + +如需单独下载本工程,执行如下命令: + +``` +git init +git config core.sparsecheckout true +echo ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects > .git/info/sparse-checkout +git remote add origin https://gitee.com/harmonyos_samples/guide-snippets.git +git pull origin master +``` diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/build-profile.json5 new file mode 100644 index 0000000..15bb241 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/build-profile.json5 @@ -0,0 +1,57 @@ +/* + * 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": "6.0.0(20)", + "targetSdkVersion": "6.0.0(20)", + "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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/code-linter.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/code-linter.json5 new file mode 100644 index 0000000..2858646 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/code-linter.json5 @@ -0,0 +1,35 @@ +/* + * 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. + */ + +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/.gitignore new file mode 100644 index 0000000..e2713a2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/build-profile.json5 new file mode 100644 index 0000000..e7569e3 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/hvigorfile.ts new file mode 100644 index 0000000..e4f43d5 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/oh-package.json5 new file mode 100644 index 0000000..c9cb6c8 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/entryability/EntryAbility.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 0000000..edc2839 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,57 @@ +/* + * 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'; + +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(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy(): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 0000000..b1e2129 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,27 @@ +/* + * 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 { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(0x0000, 'testTag', 'onBackup ok'); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/Index.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/Index.ets new file mode 100644 index 0000000..24de357 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,42 @@ +/* + * 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 { CommonButton } from '../util/CommonButton'; + +@Entry +@Component +struct Index { + @State message: string = 'ModuleLoadingSideEffects'; + + build() { + Column() { + Text(this.message) + .id('HelloWorld') + .fontSize(26) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }) + CommonButton({ buttonName: 'LazyImport', buttonUrl: 'pages/LazyImportChangeExecutionOrder/moduleUseGlobalVar' }); + CommonButton({ buttonName: 'ModifyGlobalObject', buttonUrl: 'pages/ModifyGlobalObject/main' }); + CommonButton({ buttonName: 'ModifyingGlobalVariables', buttonUrl: 'pages/ModifyingGlobalVariables/main' }); + CommonButton({ buttonName: 'ModifyTheApplicationLevelArkUI', buttonUrl: 'pages/ModifyTheApplicationLevelArkUI/Index' }); + CommonButton({ buttonName: 'TopCodeModification', buttonUrl: 'pages/TopCodeModification/main' }); + } + .height('100%') + .width('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/LazyImportChangeExecutionOrder/module.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/LazyImportChangeExecutionOrder/module.ets new file mode 100644 index 0000000..6be7578 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/LazyImportChangeExecutionOrder/module.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. + */ + +// [Start import_global_module_data] +export let data = 'data from module'; + +globalThis.someGlobalVar = 100; +// [End import_global_module_data] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/LazyImportChangeExecutionOrder/moduleOptimize.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/LazyImportChangeExecutionOrder/moduleOptimize.ets new file mode 100644 index 0000000..44c8c0b --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/LazyImportChangeExecutionOrder/moduleOptimize.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. + */ + +export let dataOptimize = 'data from module'; + +export function initialize() { + globalThis.someGlobalVar = 100; // 延迟到函数调用时执行 +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/LazyImportChangeExecutionOrder/moduleUseGlobalVar.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/LazyImportChangeExecutionOrder/moduleUseGlobalVar.ets new file mode 100644 index 0000000..a3b18a7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/LazyImportChangeExecutionOrder/moduleUseGlobalVar.ets @@ -0,0 +1,73 @@ +/* + * 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. + */ + +// [Start lazy_import_global_module_data] +import lazy { data } from './module'; +import lazy { dataOptimize, initialize } from './moduleOptimize'; + +@Entry +@Component +struct moduleUseGlobalVar { + @State message1: string = 'SideEffect'; + @State message2: string = 'Optimize'; + + build() { + Column() { + Row() { + // [StartExclude lazy_import_global_module_data] + Button('LazyImportSideEffect') + .width('40%') + .height(30) + .onClick(() => { + console.log(globalThis.someGlobalVar); // 此时由于lazy特性,module模块还未执行,someGlobalVar的值为undefined + this.message1 = 'SideEffect: ' + globalThis.someGlobalVar; + console.log(data); // 使用到module模块的变量,此时module模块执行,someGlobalVar的值变为100 + }) + // [EndExclude lazy_import_global_module_data] + Divider() + .vertical(true) + .margin({ left: 8, right: 8 }) + .strokeWidth(3) + .height(30) + Button('LazyImportOptimize') + .width('40%') + .height(30) + .onClick(() => { + initialize(); // 执行初始化函数,初始化someGlobalVar + console.log(globalThis.someGlobalVar); // 此时someGlobalVar一定为预期的值 + this.message2 = 'Optimize: ' + globalThis.someGlobalVar.toString(); + console.log(dataOptimize); + }) + } + + Row() { + Text(this.message1) + .fontSize(20) + .height(30) + Divider() + .vertical(true) + .margin({ left: 8, right: 8 }) + .strokeWidth(3) + .height(30) + Text(this.message2) + .fontSize(20) + .height(30) + } + } + .height('100%') + .width('100%') + } +} +// [End lazy_import_global_module_data] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/main.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/main.ets new file mode 100644 index 0000000..e000c0c --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/main.ets @@ -0,0 +1,74 @@ +/* + * 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. + */ + +// [Start import_change_global_var] +import { data1 } from './module'; // 将全局变量someGlobalVar的值改为100 +import { data2 } from './sideEffectModule'; // 又将全局变量someGlobalVar的值改为200 +import { useGlobalVar } from './moduleUseGlobalVar'; +import { dataOptimize1 } from './moduleOptimize'; +import { dataOptimize2 } from './sideEffectModuleOptimize'; +import { useGlobalVarOptimize } from './moduleUseGlobalVarOptimize'; + +function maybeNotCalledAtAll() { + console.log(data1); + console.log(data2); +} +// [End import_change_global_var] + +function maybeNotCalledAtAllOptimize() { + console.log(dataOptimize1); + console.log(dataOptimize2); +} + +@Entry +@Component +struct main { + @State message1: string = 'sideEffect'; + @State message2: string = 'optimize'; + + build() { + Column() { + Button('SideEffect') + .width('50%') + .margin({ bottom: 3 }) + .onClick(() => { + useGlobalVar(); + this.message1 = 'sideEffect result: ' + globalThis.someGlobalVar; + }) + Button('Optimize') + .width('50%') + .margin({ bottom: 3 }) + .onClick(() => { + useGlobalVarOptimize(); + this.message2 = 'optimize result: ' + globalThis.someGlobalVar; + }) + Row() { + Text(this.message1) + .height(30) + .fontSize(20) + Divider() + .vertical(true) + .height(30) + .margin({ left: 8, right: 8 }) + .strokeWidth(2) + Text(this.message2) + .height(30) + .fontSize(20) + } + } + .height('50%') + .width('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/module.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/module.ets new file mode 100644 index 0000000..138e8b5 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/module.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. + */ + +// [Start export_change_global_data_100] +export let data1 = 'data from module'; + +globalThis.someGlobalVar = 100; // 改变了全局状态 +// [End export_change_global_data_100] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/moduleOptimize.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/moduleOptimize.ets new file mode 100644 index 0000000..dbe9638 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/moduleOptimize.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. + */ + +export let dataOptimize1 = 'data from module'; + +export function changeGlobalVar() { + globalThis.someGlobalVar = 100; +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/moduleUseGlobalVar.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/moduleUseGlobalVar.ets new file mode 100644 index 0000000..4bb2bf0 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/moduleUseGlobalVar.ets @@ -0,0 +1,23 @@ +/* + * 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. + */ + +// [Start export_change_some_global_var] +import { data1 } from './module'; // 此时可能预期全局变量someGlobalVar的值为100 + +export function useGlobalVar() { + console.log(data1); + console.log(globalThis.someGlobalVar); // 此时由于main.ets中加载了sideEffectModule模块,someGlobalVar的值已经被改为200 +} +// [End export_change_some_global_var] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/moduleUseGlobalVarOptimize.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/moduleUseGlobalVarOptimize.ets new file mode 100644 index 0000000..bb5ed7f --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/moduleUseGlobalVarOptimize.ets @@ -0,0 +1,22 @@ +/* + * 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 { dataOptimize1, changeGlobalVar } from './moduleOptimize'; + +export function useGlobalVarOptimize() { + console.log(dataOptimize1); + changeGlobalVar(); // 在需要的时候执行代码,而不是模块加载时执行。 + console.log(globalThis.someGlobalVar); +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/sideEffectModule.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/sideEffectModule.ets new file mode 100644 index 0000000..dc3c50c --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/sideEffectModule.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. + */ + +// [Start export_change_global_data_200] +export let data2 = 'data from side effect module'; + +globalThis.someGlobalVar = 200; // 也变了全局状态 +// [End export_change_global_data_200] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/sideEffectModuleOptimize.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/sideEffectModuleOptimize.ets new file mode 100644 index 0000000..8e7b8b4 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyGlobalObject/sideEffectModuleOptimize.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. + */ + +export let dataOptimize2 = 'data from side effect module'; + +export function changeGlobalVar() { + globalThis.someGlobalVar = 200; +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyTheApplicationLevelArkUI/Index.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyTheApplicationLevelArkUI/Index.ets new file mode 100644 index 0000000..bd12a8a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyTheApplicationLevelArkUI/Index.ets @@ -0,0 +1,67 @@ +/* + * 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 { data } from './module'; // 将AppStorage中的SomeAppStorageVar改为200 +import { dataOptimize } from './moduleOptimize'; + +// [Start set_app_storage_var_200] +@Entry +@Component +struct Index { + // 开发者可能预期该值为100,但是由于module模块导入,该值已经被修改为200,但开发者可能并不知道值已经被修改 + @StorageLink('SomeAppStorageVar1') message1: number = 100; + @StorageLink('SomeAppStorageVar2') message2: number = 100; + + build() { + Column() { + Row() { + Text($r('app.string.side_effect')) + .fontSize(30) + .height(30) + Divider() + .vertical(true) + .height(30) + .margin({ left: 8, right: 8 }) + .strokeWidth(2) + Text($r('app.string.optimize')) + .fontSize(30) + .height(30) + } + + Row() { + Text('test' + this.message1) + .fontSize(30) + .height(30) + Divider() + .vertical(true) + .height(30) + .margin({ left: 8, right: 8 }) + .strokeWidth(2) + Text('test' + this.message2) + .fontSize(30) + .height(30) + } + }.width('100%') + } +} + +function maybeNotCalledAtAll() { + console.log(data); +} +// [End set_app_storage_var_200] + +function maybeNotCalledAtAllOptimize() { + console.log(dataOptimize); +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyTheApplicationLevelArkUI/module.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyTheApplicationLevelArkUI/module.ets new file mode 100644 index 0000000..4f22295 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyTheApplicationLevelArkUI/module.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. + */ + +// [Start set_app_storage_var] +export let data = 'data from module'; + +AppStorage.setOrCreate('SomeAppStorageVar1', 200); // 修改应用全局的UI状态 +// [End set_app_storage_var] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyTheApplicationLevelArkUI/moduleOptimize.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyTheApplicationLevelArkUI/moduleOptimize.ets new file mode 100644 index 0000000..3f3eb44 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyTheApplicationLevelArkUI/moduleOptimize.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. + */ + +export let dataOptimize = 'data from module'; + +export function initialize() { + AppStorage.setOrCreate('SomeAppStorageVar2', 200); +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/a.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/a.ets new file mode 100644 index 0000000..f6f29f1 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/a.ets @@ -0,0 +1,22 @@ +/* + * 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. + */ + +// [Start module_cycle_dependence_a] +import { b } from './b'; + +console.log('Module A: ', b); + +export const a = 'A'; +// [End module_cycle_dependence_a] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/b.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/b.ets new file mode 100644 index 0000000..429b760 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/b.ets @@ -0,0 +1,22 @@ +/* + * 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. + */ + +// [Start module_cycle_dependence_b] +import { a } from './a'; + +console.log('Module B: ', a); + +export const b = 'B'; +// [End module_cycle_dependence_b] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/main.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/main.ets new file mode 100644 index 0000000..5a06290 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/main.ets @@ -0,0 +1,75 @@ +/* + * 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. + */ + +// [Start call_modify_array_prototype_include] +import { hilog } from '@kit.PerformanceAnalysisKit'; + +function resourceToString(resource: Resource) { + return getContext().resourceManager.getStringSync(resource); +} + +@Entry +@Component +struct main { + @State message1: ResourceStr = $r('app.string.circular_dependency'); + @State message2: ResourceStr = 'modifyPrototype'; + + build() { + Column() { + Button($r('app.string.circular_dependency')) + .onClick(() => { + import('./a').then((ns: ESObject) => { + hilog.info(0, '[Sample_ModifyingGlobalVariables]', '%{public}s', ns.b); + }).catch((e: Error) => { + hilog.error(0x0000, 'testTag', 'Test Assert error: %{public}s', e.toString()); + this.message1 = resourceToString($r('app.string.circular_dependency')) + 'error: ' + e.toString(); + }) + }) + Row() { + Button('Not Call modifyPrototype') + .width('40%') + .margin({ bottom: 3 }) + .onClick(() => { + let arr = [1, 2, 3, 4]; + console.log(arr.includes(1).toString()); + this.message2 = 'SideEffect: ' + arr.includes(1).toString(); + }) + Divider() + .vertical(true) + .height(30) + .margin({ left: 8, right: 8 }) + .strokeWidth(2) + Button('Call modifyPrototype') + .width('40%') + .margin({ bottom: 3 }) + .onClick(() => { + import('./modifyPrototype').then((es: ESObject) => { + let arr = [1, 2, 3, 4]; + console.log(arr.includes(1).toString()); // 此时调用的是modifyPrototype.ts中的Array.prototype.includes方法 + this.message2 = 'Optimize: ' + arr.includes(1).toString(); + }) // 此时修改了Array的原型链 + }) + } + + Text(this.message1) + .fontSize(20) + Text(this.message2) + .fontSize(20) + } + .height('100%') + .width('100%') + } +} +// [End call_modify_array_prototype_include] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/modifyPrototype.ts b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/modifyPrototype.ts new file mode 100644 index 0000000..fcd1cf7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/ModifyingGlobalVariables/modifyPrototype.ts @@ -0,0 +1,22 @@ +/* + * 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. + */ + +// [Start array_prototype_include] +export let data = 'data from modifyPrototype'; + +Array.prototype.includes = function (value) { + return this.indexOf(value) == -1; +}; +// [End array_prototype_include] \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/main.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/main.ets new file mode 100644 index 0000000..d327b4e --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/main.ets @@ -0,0 +1,67 @@ +/* + * 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. + */ + +// [Start import_put_console_log] +import { data } from './topCodeModule'; // 导入时,module.ets中的console.log会执行,产生输出。 +import { dataOptimizeOne } from './topCodeModuleOptimize'; +import { dataOptimizeTwo } from './module'; +// [End import_put_console_log] + +@Entry +@Component +struct main { + @State message1: string = 'sideEffect'; + @State message2: string = 'optimize one'; + @State message3: string = 'optimize two'; + + build() { + Column() { + Button('Call top code') + .width('50%') + .margin({ bottom: 3 }) + .onClick(() => { + console.log(data.toString()); + this.message1 = 'sideEffect: Module loaded!' + data.toString(); + console.log(dataOptimizeOne.toString()); + this.message2 = 'optimize one: ' + dataOptimizeOne.toString(); + console.log(dataOptimizeTwo.toString()); + this.message3 = 'optimize two: ' + dataOptimizeTwo.toString(); + }) + Row() { + Text(this.message1) + .height(22) + .fontSize(15) + Divider() + .vertical(true) + .height(22) + .margin({ left: 8, right: 8 }) + .strokeWidth(2) + Text(this.message2) + .height(22) + .fontSize(15) + Divider() + .vertical(true) + .height(22) + .margin({ left: 8, right: 8 }) + .strokeWidth(2) + Text(this.message3) + .height(22) + .fontSize(15) + } + } + .height('50%') + .width('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/module.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/module.ets new file mode 100644 index 0000000..78a1749 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/module.ets @@ -0,0 +1,24 @@ +/* + * 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. + */ + +// [Start module_load_directly] +export function initialize() { + console.log('Module loaded!'); +} +// [End module_load_directly] + +// [Start module_load_optimize] +export const dataOptimizeTwo = 1; +// [End module_load_optimize] diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/topCodeModule.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/topCodeModule.ets new file mode 100644 index 0000000..0881065 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/topCodeModule.ets @@ -0,0 +1,18 @@ +/* + * 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. + */ + +console.log('Module loaded!'); // 这段代码在导入时会立即执行,可能会导致副作用。 + +export const data = 1; \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/topCodeModuleOptimize.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/topCodeModuleOptimize.ets new file mode 100644 index 0000000..5a8ab7a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/pages/TopCodeModification/topCodeModuleOptimize.ets @@ -0,0 +1,16 @@ +/* + * 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. + */ + +export const dataOptimizeOne = 1; \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/util/CommonButton.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/util/CommonButton.ets new file mode 100644 index 0000000..610231c --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/util/CommonButton.ets @@ -0,0 +1,46 @@ +/* + * 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 router from '@ohos.router'; + +@Component +export struct CommonButton { + @State buttonName: string = ''; + @State buttonUrl: string = ''; + @State data: string = ''; + + build() { + Text(this.buttonName) + .id(this.buttonName) + .padding(px2vp(5)) + .fontSize(px2fp(25)) + .width('70%') + .height(40) + .backgroundColor('#04a4fc') + .fontColor(Color.White) + .textAlign(TextAlign.Center) + .borderRadius(18) + .margin(px2vp(5)) + .onClick(() => { + router.pushUrl({ + url: this.buttonUrl, + params: { + text: this.data, + buttonName: this.buttonName + } + }) + }) + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/util/resource.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/util/resource.ets new file mode 100644 index 0000000..a0f1755 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/ets/util/resource.ets @@ -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. + */ + +export class P2PManager { + public resourceToString(resource: Resource):string { + return getContext(this).resourceManager.getStringSync(resource); + } +} + +// 默认导出let +let p2pManager = new P2PManager(); + +export default p2pManager as P2PManager; \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/module.json5 new file mode 100644 index 0000000..4144486 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/module.json5 @@ -0,0 +1,66 @@ +/* + * 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": [ + "default", + "tablet" + ], + "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": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/element/color.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/element/color.json new file mode 100644 index 0000000..3c71296 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..eba8375 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/element/string.json @@ -0,0 +1,28 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ModuleLoadingSideEffects" + }, + { + "name": "circular_dependency", + "value": "循环依赖" + }, + { + "name": "side_effect", + "value": "副作用结果" + }, + { + "name": "optimize", + "value": "优化后结果" + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/media/background.png b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..f939c9fa8cc8914832e602198745f592a0dfa34d GIT binary patch literal 57364 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 A4*&oF literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/media/foreground.png b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/media/foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..4483ddad1f079e1089d685bd204ee1cfe1d01902 GIT binary patch literal 12430 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 cSLciz6AsI{U0tD9;7S&f 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/profile/backup_config.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 0000000..78f40ae --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/profile/main_pages.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 0000000..eacf84a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,10 @@ +{ + "src": [ + "pages/Index", + "pages/LazyImportChangeExecutionOrder/moduleUseGlobalVar", + "pages/ModifyGlobalObject/main", + "pages/ModifyingGlobalVariables/main", + "pages/ModifyTheApplicationLevelArkUI/Index", + "pages/TopCodeModification/main" + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/dark/element/color.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/main/resources/dark/element/color.json new file mode 100644 index 0000000..79b11c2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/mock/mock-config.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/mock/mock-config.json5 new file mode 100644 index 0000000..b9a78e2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/ets/test/Ability.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 0000000..0f8ce9a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/ets/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 0000000..0306b57 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,22 @@ +/* + * 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'; +import moduleLoadingSideEffectsTest from './ModuleLoadingSideEffects.test'; + +export default function testsuite() { + abilityTest(); + moduleLoadingSideEffectsTest(); +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/ets/test/ModuleLoadingSideEffects.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/ets/test/ModuleLoadingSideEffects.test.ets new file mode 100644 index 0000000..883d68e --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/ets/test/ModuleLoadingSideEffects.test.ets @@ -0,0 +1,156 @@ +/* + * 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, it, expect, beforeAll } from '@ohos/hypium'; +// 导入测试依赖kit +import { abilityDelegatorRegistry, Driver, ON } from '@kit.TestKit'; +import { UIAbility, Want } from '@kit.AbilityKit'; + +const delegator: abilityDelegatorRegistry.AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); +const bundleName = abilityDelegatorRegistry.getArguments().bundleName; +let want: Want; + +function resourceToString(resource: Resource) { + return getContext().resourceManager.getStringSync(resource); +} + +export default function moduleLoadingSideEffectsTest() { + describe('moduleLoadingSideEffectsTest', () => { + + beforeAll(async () => { + want = { + bundleName: bundleName, + abilityName: 'EntryAbility' + }; + await delegator.startAbility(want); + const driver = Driver.create(); + await driver.delayMs(1000); + const ability: UIAbility = await delegator.getCurrentTopAbility(); + console.info('get top ability'); + await driver.delayMs(1000); + expect(ability.context.abilityInfo.name).assertEqual('EntryAbility'); + }) + + it('testModuleLoadingSideEffects001', 0, async () => { + console.info('uitest: testModuleLoadingSideEffects001 begin'); + const driver = Driver.create(); + const button1 = await driver.findComponent(ON.text('LazyImport')); + await driver.delayMs(1000); + await button1.click(); + await driver.delayMs(1000); + const button2 = await driver.findComponent(ON.text('LazyImportSideEffect')); + const button3 = await driver.findComponent(ON.text('LazyImportOptimize')); + await driver.delayMs(1000); + await button2.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('SideEffect: undefined')); + await driver.delayMs(1000); + await button3.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Optimize: 100')); + console.info('uitest: testModuleLoadingSideEffects001 end'); + await driver.pressBack(); + }) + + it('testModuleLoadingSideEffects002', 0, async () => { + console.info('uitest: testModuleLoadingSideEffects002 begin'); + const driver = Driver.create(); + const button1 = await driver.findComponent(ON.text('ModifyGlobalObject')); + await driver.delayMs(1000); + await button1.click(); + + const button2 = await driver.findComponent(ON.text('SideEffect').type('Button')); + const button3 = await driver.findComponent(ON.text('Optimize').type('Button')); + await driver.delayMs(1000); + + await button2.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('sideEffect result: 200')); + await driver.delayMs(1000); + + await button3.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('optimize result: 100')); + console.info('uitest: testModuleLoadingSideEffects002 end'); + await driver.pressBack(); + }) + + it('testModuleLoadingSideEffects003', 0, async () => { + console.info('uitest: testModuleLoadingSideEffects003 begin'); + const driver = Driver.create(); + await driver.delayMs(1000); + const button1 = await driver.findComponent(ON.text('ModifyingGlobalVariables')); + await driver.delayMs(1000); + await button1.click(); + + const button2 = await driver.findComponent(ON.text(resourceToString($r('app.string.circular_dependency')))); + const button3 = await driver.findComponent(ON.text('Not Call modifyPrototype')); + const button4 = await driver.findComponent(ON.text('Call modifyPrototype')); + await driver.delayMs(1000); + + await button2.click(); + await button3.click(); + await driver.delayMs(1000); + + await driver.assertComponentExist(ON.text(resourceToString($r( + 'app.string.circular_dependency')) + 'error: ReferenceError: a is not initialized')); + await driver.assertComponentExist(ON.text('SideEffect: true')); + + await driver.delayMs(1000); + await button4.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Optimize: false')); + console.info('uitest: testModuleLoadingSideEffects003 end'); + await driver.pressBack(); + }) + + it('testModuleLoadingSideEffects004', 0, async () => { + console.info('uitest: testModuleLoadingSideEffects004 begin'); + const driver = Driver.create(); + await driver.delayMs(1000); + const button = await driver.findComponent(ON.text('ModifyTheApplicationLevelArkUI')); + await driver.delayMs(1000); + await button.click(); + + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('test100')); + await driver.assertComponentExist(ON.text('test200')); + console.info('uitest: testModuleLoadingSideEffects004 end'); + await driver.pressBack(); + }) + + it('testModuleLoadingSideEffects005', 0, async () => { + console.info('uitest: testModuleLoadingSideEffects005 begin'); + const driver = Driver.create(); + await driver.delayMs(1000); + const button1 = await driver.findComponent(ON.text('TopCodeModification')); + await driver.delayMs(1000); + await button1.click(); + + await driver.delayMs(1000); + + const button2 = await driver.findComponent(ON.text('Call top code')); + await driver.delayMs(1000); + + await button2.click(); + await driver.delayMs(1000); + + await driver.assertComponentExist(ON.text('sideEffect: Module loaded!1')); + await driver.assertComponentExist(ON.text('optimize one: 1')); + await driver.assertComponentExist(ON.text('optimize two: 1')); + console.info('uitest: testModuleLoadingSideEffects005 end'); + }) + }) +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/module.json5 new file mode 100644 index 0000000..c3fd9dd --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * 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": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/test/List.test.ets new file mode 100644 index 0000000..f1186b1 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/test/LocalUnit.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/entry/src/test/LocalUnit.test.ets new file mode 100644 index 0000000..7fc57c7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/hvigor/hvigor-config.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/hvigor/hvigor-config.json5 new file mode 100644 index 0000000..4dc0238 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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.5", + "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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/hvigorfile.ts new file mode 100644 index 0000000..2a5e543 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/oh-package.json5 new file mode 100644 index 0000000..8648e08 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/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.5", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.19", + "@ohos/hamock": "1.0.0" + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/ohosTest.md b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/ohosTest.md new file mode 100644 index 0000000..7673093 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/ohosTest.md @@ -0,0 +1,12 @@ +# 模块加载副作用及优化测试用例归档 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 是否自动化 | 测试结果 | +| ------------------------------ | ---------------- | -------------------------------------- | ------------ | ---------- | -------- | +| 拉起应用 | 设备正常运行 | | 成功拉起应用 | 是 | Pass | +| 主页按钮点击跳转按钮后按钮点击 | 跳转按钮位于主页 | 点击LazyImport按钮 | 页面文本变化 | 是 | Pass | +| 主页按钮点击跳转按钮后按钮点击 | 跳转按钮位于主页 | 点击ModifyGlobalObject按钮 | 页面文本变化 | 是 | Pass | +| 主页按钮点击跳转按钮后按钮点击 | 跳转按钮位于主页 | 点击ModifyingGlobalVariables按钮 | 页面文本变化 | 是 | Pass | +| 主页按钮点击跳转按钮后文本显示 | 跳转按钮位于主页 | 点击ModifyTheApplicationLevelArkUI按钮 | 页面文本变化 | 是 | Pass | +| 主页按钮点击跳转按钮后按钮点击 | 跳转按钮位于主页 | 点击TopCodeModification按钮 | 页面文本变化 | 是 | Pass | \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/screenshots/ModuleLoadingSideEffects.png b/ArkTS/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects/screenshots/ModuleLoadingSideEffects.png new file mode 100644 index 0000000000000000000000000000000000000000..be2696156083ba26274a49d56a1e9c71f87eb03e GIT binary patch literal 54330 zcmb@tbyQrz(l0s$3y?q{xVua6;K7~2-QC?aK>`FH+=C8Ia2cH77Th7Y4K}zx&OPUR z-}&xZZ@u-_y?g%Ivv%$Jbyao!dUtpA%ficFzy~=gSt$S<8~_0K`UAWy1H@nd{hwX` zQ1XAK;q~p8E&%4+H@R?G@NkrXH<)nnm~bz@0c5X@eDmfF{68A}uL}hg`7PWVcmyOw zv{wP`4*&qt8#p)wcr+w5gttg=h=6}QL_|Wye2aob!TwQH1seySlF!6DA+=#1SHlG~ zIfX~Sp{k~?^(`^)j8m*;j*5nkn^)Sj8&xtqf8(5*R@};U_Ej_KE9R@(|3LmAA%uRJF~_EfZ^IdBmmEG*c$&xMaGeIbDN68!tH?PpHa(H%S0M5dgsO1s~1qinoB9c64?r+#CwE zdba>6a~~el`mxqdOWn5A|MASU6E#QWw>o_K$q4^~y;K5wc#(X@s7$3?z})S47)7nv z3|J;fmOGt(N-B73a4_Qb@8HAA&8?Al3kM|y4I> z*cA@p+c6d7V!jq0&K4c)E_^@K_?-gm*+EkSd(Rm}gtyqR&<3W)Kh_S+sz`UFv6HwpkBL>yX9I_LZ|Bku|{@7 za-gKKh0c%dbh#4_t|V?glo_)IO=IB45@* zzjDaHFL~lLeG$?$;%2aMo=T<$1@s6jMBkmB`BRTE2xBF3fua)+L_nLLk2qARq7BIUBzb=fmloco7-45-M@$&Wqh!E0X>GSC2JSa#AD zyRFJZm&6Lf(rm@DOfKJpxxpbEsxpt>+k-8_d~6~o*OAH$)b!X1@nYZKQn{l08hea= zA^$3hKpILMaw5dk{N5{lmNv5T5D8pV`XEjg)9K{WGg5lxRs&5;STGC2n(OwgA*Giu z52PfYT9S2Z;hg3eC1CQ-q=xCelcS_8bpI zg)DfC)*lSwyY|k)_y{HCs{Z`;xeKD$%D0Gbq$=={cxl86^?-D2Df=oQD129)y+$5E zwk3Fl{~B6CH9A}~4Qdw0vMmZ2% zHzOiB790SCg#K1|6GL1*j5-UEI68>>85BOR86;btBNLU2p+j(H#2a}RV9Li!W@lw(8McTrvn){d zuM7Y%smm zEafH9ayLt=W#gHN@O$yYIX&N-zGUQ&0YI{dVcD{0wlF4gB!>{&l7JQ}&< zG%YGC~G^UXl@T4cv(LjoZt2h;nC{fCXfk|k@}M% zci-QNm_(3Ao13Ls@GVn)9-L6guH_kDwSFt~R$$9)J$h?B7+olwdjW}Z6*8^vepGer zIle#6aCOq0m!O4v!~(g|EoaJw)I}+(u7reO*=@U3(nr6^EoqtT+{%IW zaL5)^1Q^zyV$vrPvFIc)wHXSnIDs}~g%u+Gy>O)@B#J2O8#lXEKQw%sDPmM6g~7e~ zS&2fAIrC)1hx28$^NUL zr+(EGGVNgk-R{qbK+1wuX5IX@D-BzQkjT62puA-Lq<8}FQ-f-|vvaO{CAFaT7TH1C* zZKj=RD3M!Oo)H$fg*-LjK&699Fdpr9ZB%d&PLc z{aJOO>q!A|3LjwRB3X6kA|4CBod~|d%#D9cC%{3Fmr)0uGEy1n@N6~AVlkW4*$5S@ zHVAIhqYI|HX4M6Xiyw13n=B9v&c+}(K%z{#8-`K;Y(SN2T<9_*s|J-F7RlE z?(k?P(y&0)R8-g()LCy(uFb9Xi#!2vTt5Mb^Z+X;}WdlfED?uN>X}5K43PhU+*NU$2 zs0|473={&H`3QcDkxz7@BOlB!2lpLYNr6-nHMpY#vP6uZRkVv6qK(i}Y}aC^17sWP zI;N|J1W%D?Gs!r*xl{Uw>Fl$XKX$|H7rn3rps9#rU%@XKMG`!?g$-S|K^CowPaNS2$iQ(GL~uuJ;9`_)d8sp42}^jLkv zfKoSoNkbGRU+JO?)^6+U3Ho#vQ65^(5JP*0ALzzGDB9dWXy)YJx~|9ueAQt`*|nqF zk|J5;rrXZZNd)mCi%eoN7wadiQP=ZpvW0Hyskg*e_3f>>F*6Jho1h&Nzx`sN$c3$} zv?x}a7;CD||3=BazKKZu{ntZftX<8*4}864#9)8_JP?M#y+^6RVQ=Fy&b$z{dwHv` z-JI(6^XieKirT(`f%{l_bWeL(UHO0;BeWdmJj*k;hda(v{!8X|jCjz^)&9F4SVgeB z3@raaZ)u>@Pt@~0Sfcf&`XucW3r<2!JHZ(DiB4Iqwb!kqj$zX|<7fz3CMMrnuV*z) z|F(!4qnx=>=UB`$t@4joAFpyUe+6? z>hBPq3R9U#jdu}ar6fPnyVT>ihF5-q(^2F^KWlxG>0b75AGRgYD?<}++aK0r*b&v% zMmLZB8FDwi*tG`EB|5sXTJ`L(YR{QsC&sDN`C**~k;65f=0o1ujshPzFVl1-!A`Z} zvTX!F@(%R2k);UBn1kDdPmHM-zU%dDHui>dq~!ua4$f_F(5t30=o?8z(zQ4fz(Ng; z=~31Yi{2Jr#m8t5k9|Ko1FqmOadfSMs`6bR4d<%L&D=BhELf_&nrk(WFtJD|eb%sG zsnr&@cF?*(QDb#YR?>-xEKZugL)?279cU9JxZK>&ERHUx`FjNFz z!9FJip?O-(L(zLk?YC!b4;PcXNpSF?`kdepjfg#*$=_lKFfmw^4&eTHyR`2z>xxLx zR%0k>!M5p0pYeYmvUq zed6$ni~Z~hxD4W602t41Xm;H#rTx6m%S!@yCC47c zM)~~<28I?{TZ`CHp7e(mj)oQ$#R<)GdtL~B9wuF@}0f>XbB8v%oBkf0z z81q|PUh8Mc>G9S`g3K%s0$p(@;k8CEqg{m@i_o`H%YM#i&yt8D?352ZScf4oh(+%! zz=ByTi~XPY+@?#`s_PpXmWyOn+)Einw`mxKGR@$To6#>`06+TQ9>*T5C4(`l2D1US zRQnpd=(?`Ec8=MDmA?IQ{ajC5iI{1XGaQkJzMP9{zK)XbBzTUG; z7NupM1g{VmAEp!ap1o8iL~m$f1A_FTjhBQ`x&tjLzi-JC;AliSA2HiGxyTFHE_;8D z!P()etshC?abyA}i6%J=EPd1alkq@}R;T77)VTiJ${ps{@~N0j8d6nZ!OC^iw=)Qi ztIh;H^RjBN?J#8ucjB5%nLecwWrgGcPd)nnV5spEfk{V>W!bc$&z1bz2kp2_hfT8X zcXuW{4=iIG3g^*B%5f%6-7fkOntM5*5Pfz4Jz_&*=4n%7g#Z%d@mB9XiO9S;6$TREBW!4 zLpPoy()ql==F8ZMc|XrnfZ^yYUrOwt#kw7Igd_}IF|;JYQ_~=;ft_vsOIxy$4;rOB zi{gMI{jsfya7uAb`<6lFQ+|N{aeJr9;_9Sk;|dA8&AZWaBKuzR9gIyr%brC2Ci4+1 z?3U(F zXvs^MvBalAs()xhG?(f9;%(gx1dXQC^BT8l1Qz{++IJ8iadwozBDMg3h#>k=f4J5m zeEHH2%XI%{=}CJd{bZqG;hxCGb}(gj!6WN2rK6nit521AbP)CLnzG2G z+ucvcznQ;#aynEO_YB%|xQ`d)8U*3u&KOQgqKJB>u*=(Oi}|$7k*Z3`D0L%z1sXOl zeH)0fp-U%cv7sR^r*?IPz8zrSca{;j)$F`BfwoqE!*l$;GVEa~kUl$_jmKX<#P(tl(!Weu@^oM+lB__ZR~#$PMl$y#wevZ7&~|Dihh9Nj7Vo#f zV+JZ;Pt#jyXdTKw4f?2N{{A&8O%*#9>Y$vd(Ct=aF*j+ct)wtIwMA~wFH57z3mi@6 zagQYIoNSUO(LXu~gE%`IwEw)$He6g>JBW-@*Ru29lyIm{{B<%O<;ST+we~T{WUG#q znMz37><6y{u7O3Re##0hHCKZ-Z)UO z-ySK+-2y>P&fsM}D{=f{b7w_G7o|QVEw;jaqvyOl==aO#Dy+1Dr&LxBl)R0dPl(RD zOdx|0dPNoRwOmI2Cv|8glY~D=EoSDvmNTbdU&ycAzXYP~Cwe)rwaR5P4)GP5yZ2J} z@JOo*KRig|0n$;A)f~*HBMFGAk1Kkvxy75g?V71^tmtHoXDA|3IG5nDt*LkMQViq; z(O$_f70vby=;xD`RnzD5)rVZGO5a&z+>`jJM|Kod zr8>DJ30_?Tt*D5q@+u`cPVM~zYWYJPp;aXh6dWuLrPrFhd2<0ebpbU_&VqP!BZr^f z`S`(qQ7{zGocLLuONO0qiNoDCz*4RCroFlTIxZ_w0kfat1@2zqiOC zYW7rV)o>Dv<;We%q_?t%Hf)9?v@+PpeaV$hQ>pgn)Q;I8xbzC857w%mAt?9o9mY7Y z!5i`C$6v7?y*>67T|M1kJtlNgB~zKM_t9p{ogSKX6dmR`C0~!M(&(JSxPl82PIHqA zI;5MHbrOpWr*rD~n-9xN#=l-XF@#<=)So$~@JKXO=1o8bVfq68^U}TS+UYb7ZN$M7 zWDWC@c3BOnTRGSBz--pM);K@5TIvcYtr(lM8vmDlv1)tw-evg3r;I>ddzNH>XWz&n z?wak%yv-sld0h|u6nocF*uF+`igGoF6c27(dq)#QVE;LxH_ia@?XprZYz^EL?x1CO zcbtQ)H$AV)*C}}yJ?i&yMA^qcsua>xd{BjyWoJrDX*&4pS4mNFnBoK@X$aCLVlS_T zCbly)U#>JR)uHw1Si7r!y!QaP5`EYqWX>|c!YCki?pPrRr+v5~#|@cY0?b&v!)(Xm zl>CLYJTePtVDHbO=TZUMiaMyLI!h%xsaS@E=_e1O=Ee@?l*5Pa=-=D7O1(zG9oW=OeJ%1hc z%^xuTBQhf;nq@IcN7K>WSPZoDP1D{Pht$veuty z)Qm&i_vrY`8ljc9``sj-_&qZ6s)33_G-|nVCoomXx6@z)-*;opFC$O645lEnF=5+@ z-`bK&d&)Rqd){VCBas;A=ru-J`_3!el1}?xqz3qQ>YC6=V8O4N`xvfxO-nabaZ3wg zM>l^PU5WPV6OzG@sj&*%7Nxu!lO45zwx$5>_huL)J_oa$>kdr|;nAM_mH1S+HBc#_ zgdYRUd|C<>=E*6ZT@Kf=TbTC}Kuy`f&)y||-1okc6xw;@Z}~i%tq_5W$v)z%O+fQL zgdhY5y8UT9fFw&=Ll@d}58K{GG~b5G5NT{t{Q35MCMz$#h$jE7 zEaM(|unf7E)4cEes$VOA!LrEXmsR-QBO)>NeUiOuuGrN+R+}2T&Y&~>@z}t;!ywwc z@lTMCHEnUH>T@jSTdqf&JL$R`>sy}VgEc05x%tH_igC+ubGWC6oc=aB;{hM1cdf$Q zSMAua#(AVwh~O#|>Y^K2VrB&z?hlENLn@fI@+CV&JhT)ZAxzCFn16Al?f8Q`)MYUK zJ{i9N^s-ew=P!lklveh^j_x;wd51BO@J+Oifm)(;{6_YVDyJpqEH{dmy51TYTlB*h z(Nhjmd{GwGd9|6EZ63E8yfkJQ)Tsq}7%!HK`Nk{tJH9U)Kz$(}jB4RXK4a zUyll@SNr8u5>rm~&aiy}UutHCf8J*E{cwVC4z7tt!&Omhg-iOho^9Ww=WgxhyZwY? zUCC_0K5Z2_*WR_p6Xq+wqUZL9cZ;(Ie70k8i+e$74*lHMg>!c&=BJ7oy1VF-waWwS zD|Xa_+Xlczd;Nv^rR~6zdf$zEP$o_K+ob0A@;>Z%4VmGEV^NP%0@djAB)LrnpB;rd zYdj3ysESv$ylQR&EnKv;YMl}1EHppwWYlI&;516HXu=$S%@-{U4s5AZ1(drd77q{D zya3F;TvuJ4=hd^OP8~rdk3{I6-*WRb&Y=#f>9mxJ&}VghT2lB@IjI?&!je_VWaKl+ z{Q=L$6e=m)s3F|j94a6u=7&>MUxL02_eM-d^@|vX#xO262TFgC@RjzU3!)rCX~Ae! zw-VK9*Ran_FwaramJp||+fu379QV4Nm5lB^29WUkJ!@Ta(xVh)bVhX`=4a+q>X7nBxN~6jniZKm8i*WdH(}(V$lVjyq zoj3YoP9@iCEGLD*Qm0(o>q2=!2^~oM=$V@Qiw0#v8g{E8C9PNoTg9xo6sK8BDk_#*;(-V`GY&wI^%oB$5d10(dA6ccO{YP&0cqT}y%0lk+ zOpqB9lK&JJo70VtGs~PE%R`?>&KxKGl$xvWc}Dz1eT`N>&mwAe&*;J&Ey#@RvX;W% z<@FdZ&uSgn&?Jk%uPg*;%*eNB@Z8o;#&6&DJ-Ej)kv3>*9H9Mtr&a2h?R!)<@W5;3 z=^?$EG3Qw^MWE?cbKUU0d+29>u5|M6n4F`wd;Mj?GHn4)ggz%rbCsGU$rZCxI zKRe|}=g+F~cW8EV)sqaARa?}f6TjbBBFXnOsC!~IKlgQ-O@`zWl`gpO%g(3X1?XKt z(6sBH7cFs$$C^qPIS*|(Osf+UD(5!0)iJYcs!DvRC5p{8F^uoU4)^L`0QsvF<*jeR z7i}7^S=VM;{L%twC$f%L96tJl=vcyFk)UF$na>x^?-03x4i@4XX(`>0X;toJFumJE zXgSm+eet0o(dbI6qIG2-uU<|4axu;6K87K>J=}iPqHJr$ia?Sky9ef>T}LWJD!_lJ zVRqS4ER9voB1OF;q1XE31rYdiR>)0%B{SyQK}J>n)1PFDwXxsH405sqR^#%ai1cQe z_R$G7d5p|IlVx^M?U?{u{%#3>`L`B3I}iEGkIjyZilAzRLR4v&clqaQt*szK6*l^c z(TiQ%R-gIgPn?i8FD&tN1^wHfN_B(QX{EJU+fTVjtwmSFJWm%bO%*>ar5{9i2lOHK z*Ztgcd-7@HF+#&-VsENhiZ@l}kQE0v>iTq^~%ok_D24724y)R9(Jv7^}> zBcv|wi=>1qi}0Ej9TWeNve4?R{@is=!{7t4y!eGo>X=SVmns}F$yYL zXYDVKem3odB`!AdKMLk|&s8#&z}_}AU22@UG-0aQIbN{{3eMhPpGw`pgt>9=J^2@% z#<1HyEtjb5?l7pPs8@Ui;UsMc^?jyt&uOk~DCPJhphc)fsjQBUCH65f8^)ouhYV@0 z=m)^ZR7t(AsQ+sfKKi*o7u57Kw?L`sp@>oe!RngpF}WS#iO{2Sl>y86-(mm^$$^w$ zt^U1MDNBD$yx>e=?n8&Ihz<$>1R$V;IOeQ7FBdCqz4@7i9r9>FLw@{Ky)cjO@o-3} z>!U#qPr{mRB*RHM%xYsdQ1HR8KhRLhY5*xP2rc25#U`xs?PwzsPGsc{p{^6%u=T$B zT{<3VBt+nCF-#%4g9F9lnDg&#u<+#gltMqcLHs@mVh|gF8DTa@rt#jDWs2k8a&36t zf*F3>^ImarxCZ%(Wb!swo$GO%k*JoL5fbAHBv_9K<@$nJM|VM?z9y|fh_&AzybA;! z<*>3!ETXx}k2AjjmRJVVi*kRAP9z+oWBU-;8hDw!PMZ`Tt@rWhk4NhDCY|tz>LcP1 zDqB?bTorgWe%+%I+aLn@>lrAlt)U`9pQm>o3U7l-iw_iWif5}Vb*Wit<_@oBHJ6z< z(*$cNy3{a>g}4XD-^@g!%Da1Tg;!Uk zA|PG<@&aH5SBtT6pZz#E>V00hd;#=vaJ{-j3GZAXD){woo)mc?Je-siKFkAidbs7( ziG{yPzBS-DE{u#}D;6U&2z-EIa*V}$1g?_L15r>A%RYodq9 zHg|)~FMwqizd^dQrlue)p;-}voS%24^$ycFKwbzL$n*3*V4-dD6=KM(A2wYyL400w zmcJLr>fLm{H47!iQ+^V}#Kb+HE|jGP$utV%N=SfC3M1NYVAQvmKA7GlMSyK+PvZ(nEjCjPTvE$)=ker+ck= zx?a32;rv!V5urVB+{lEvNnpWt=Ur#Xqx?dkuvzdS6F8q!#Ysp|P6d-N%G|_19WR04 z;dCg$H{vmjAb>ES`~`qBv5xU?^SgZB=)S@Uxdyo`DcMXgosnmZfR+-{?Ob;W1oSP7pH0pR zZ;K?yx^EM16Ydi3@C)c(tqa<0dDz&WJ~q0o3cQU|W)k-4H23=+(22BZMdWp_ClDBz z1MT2c6cc$=vwi`z?A`{-p4}fujrmjh`uvT$b)9a*BMw>;#yb?2e*t8k{|%&pieL`( zP=RxgM}TCowreTeppj=4?-d`i>g6MB%YSz+XKPXKj1f6>mSn`C2$jF5VDcY_u zT9>-u*Ggo!-_X@xgDfGJ%dFBWn0X>9*Lr|9DY4DF24XSR@2GMCzR2%80!6kmVDYh*Kg^1uO4cA zszZT5$pNAXARckLOYNuHbI$FF=bNkC$j4`4le5T!{n6-~oE%OnPO4|DPaQI&&74#> z>p2Q-?;c0n5D8@Sg}pDs2Yd|C`2!K83OH}qWGOjCR50ECN^Zs$ z9-lf&1;A87FurHfVCc4iGd-Vh$|7j7@z;;)-QQ;6AVHU135$)5Za=gL{lmS2!5ufN^-d5OPli26?T0dEm&=&@(c z_)zO`AAj_rw9km6;oO?fbAQjqc%4bKlf8CcW6hri=px%BYVn!)O|xPu)lw-2Mc z+~HE|j~02>{ChuE@3jp77GdB&5`*rqe(saYUN@%O1>P@}xJjzlmfpq&p6yM7mpae& zpU#Zpxl3(#jj&GS=!mj;@r>C+m{IAz`&^E+M_m$C~f! z^XdUz@0RV+k$><_ZhHE|>87P2QedZc0o(tc{21f{Uk-jpMO<$w_7P#Bi-fhe&{aJ= zaNLe@V~i;lIGqZvU*=W;zrT|FYafpaUi0;i7>pRXmFc5!?LV93b>>&chP?dJGT7auj!)R_r5j z$?aM7-9F9ot9^w=IqJz2Jy};9+h=b&1BTDr8#=xA>czWLA>lwIquYeAJF@hkwP)#W zSHqft9wu-##)I4R8Y$unzy{waoYd%XMJ4s$5&k!>bO{aE?16g4tpnIS*pAMDeB9J2 ze3H#^J9>ruYU%S{=Efae?@=Qg?^)Er#e@6wtFq5lFMw-d)BCUYKMtTHA#1+=BO@WN z^-sjk76VVGP)@c#mWEQM(K)X%eGpk{d3XWr?S6g*Y}pxj&Pr`?LP z>K+6KbTS3}lg#;_`*@;bUjU&Of+Ezn0iJ!k6D2u0(ao=eNOa5I|AM$!+k3vbIQ4g$ z-r7Z+(E_4uzW~DD^KM%VLH(JVWiN(YwGg|#bA_uvZmT4|8oQTDc5LwU0uad^b=#lP z_pa_59DJh6f*DFr_~it(0ZV8KqXUPuDAu3HB^QqGv~SFqK`+0sKoWQ|GgUtFd6uijACoP=> zS5l#59i!-~V>^@?S7_f9DS+K&D_B(A++v5SlvEY*_hc`bksQI1QH#8=*3f>i6(Ny_NrMfI&Q5E&iJ8Yf=d=3qsMKaF zqyO7c$i%Ri!eI1kF(byHD~}5HI&;1gU3zAFCC7u9>SA_UXgtQ=Nx^K(qeE7r^Athu?ejqM*qM z4|AK>8sRosEmXE>gH0+94o*suHz(2)W6wcHi}yZc63mqRy7p4%Q}}sOMOc zHecf7NNW5bO|Aro-*2~5E0&`+fj81#wyIZky>j59#3G$7kJj_!N6(LMWHh$A5oo$U zS^#jq75`Dt3qaLEg^5s|UEQYMzvful@TE45MoQ{LBj?l}uSc|frN;O9-(s7^rAwnn zgv*WB)g$(sjJ8EJZ19Dj%WVBrK#N0k1%eF})_q9&38{kKK4(_XlAC5`9+vVI)V7ML z<=3=2KHr7n_wEaLikr%Ms4XYg&EDrPb2TQP{*G}{DkgIooocvN-%iFXDkA@5<06$U zqN|ka&>)?SSXy=0e$v%a(%2VhUuTDB{e2rjd#vptrtCvJ$@_Y(#W2_w!rWdyxme4} zZg&pEk3P|KMzJgKh$iC0w9h5+sd%Ac(iY~j|4K4OEqWUf8a-?5Xj#Wc{ezWt8=RMIl1cUKu4X-jazEo$|_6>4X)V>PPF0I%`GdxuJ2+6?TO+^dtbecvwPV_-frIz1rTx);w`c@>YJ`THpZ=t=3i(K?WDG>b^QQfVD2;R+tbbepxjs^OAG=E$U*R|U@KT0^XwMlG z5BnCgsQlbX*y)e6aziP*RoM-w>{yxP*;P z%C{ro#Yr{eMcu!U`6e`A;E;aK%5JPXH!^r(W7ixR^IG`kn0zS4)!6UG(B-^qy*1Ll zsPTdA*Nj*bIQPwFqeo1PpIg9X4Etd-d){ziv*nU{OJ$u*+0AM$` z^xt=8zv z6`c90ZKLHw)#&O^S=D3`{MP>Xjmjzkh1DtyYFo7TV3pe6kbi#ncj{!m*XZyLbS(Y0wj}M% z9rJ&FnolS#aJ$by2Y=NkM@TeE09_O--5?IQ3Oqu-hRHYF&)lL(n#zCph*$>Jhh0!3 z1u%@}EqszWm4l~`1EW9YXYovv5-)9+hyYj7e4BwJZJnF49DX*BMh+b^-%r`Tb)xI1gV z*K*fK$pnvPE<+l1jOi@HUZq^7C0*tCeYlN^hE9S&f>uvn+EXFjmXT~{bplCQlj&Hw zWay%mDukEBu8&D~>vtk4+BB^Y=j4gRl$Mp?@dEuUs^uIDbalHeSzoViafdM|3)fh( zwNw?bBYu_a@F$B7Qp2-@Wxs!RJo&f9#nQ35p+{8x$Tw)ZNxsFtqwXlegq`$!G3>NIKjHnpRi%;G5G=`_05 zsaA5M{pOm z{W#=au*-67BvqDqDE>Jo<-*h2MG-o%9iKk-yA!Qm+cR~Rm2j)h-gh(NNFfq#PUmmo zLC42sXz?cN$;$RXL;a%+)M$h2>fWrRCY^OSc(u`N$phDm74P-5#7KY}D?=041zht9 z$77s$i36V9^mEs*9;KmUDh=5?4w(!amGd-C_ay>{E!y71o{_c{pY zuA9%6u(5AVzlh?gGc!$?b10lC#hII%JgC~pP`IVtn_AHRoj8DeBE3#csA;2O93m{F z{{ncRd;zRjlIEN*3pV*3w0Y(;!S;0Rp#-5^y>cE7^;sz`2OO)^uGW!AoJwO^caPd< z1s(StOji936`4(ZMckZT68)bHr*F&^6{^0BBw!+52`z;gGrSd5VO$C35$rOv`!n3k zTgesD*dU|Wmo0DR`eq9UFEhd;7b z7bY3ye?FyKGSbfa>rNuN-duP={m>1F!&FuqyZ?qisJtupLq-6*IyG6mojUfuoXq-0 z)WkuxlT1=i$t$?E!&RzI`2sx9-3qTb(>n}WeEkxdTXf|ENLn4=&*4Ur% z0vPe}EFBFua41D%^if_nVQ`SwGCws>`l*)NVb~X#{{k@fidv|iF*=FT0vA3HTe#ZB z6(tT3yRLHuv_qU;lT+JjTg zqbP?!ztZ^?!Lt!WX&^^V-+&H0I3_kK zlkbSQ9VcVu^W%_o@7qq;ByGz~bX3 zVeNPbT@RQo)hzzcM*okDz$qUAO0ihG=<{!Kqy(elmV30=%EAMRsK3ZP>brLr%iaY@P1NKB?fz!L4>%P1|b zMY7vfZZD23qFQ7YxAySW9rkY7LD=JVXZ z3t-rv5xzvu(M|QMx~Oijgmb*U3Zo_xN8T_N;Qy1MGXI;QJ{~m`^1J}1$Emym(VL#x zu1`N+QDH>g==mRH7M2Z`M*f-IVrmn2z`D5{NE$JdsWXTk-CTfYn*o=yL|aPar!UH`(GoKyFlLr zg4~m2fT7W|u*?5sQkOGjC|E8kVoAs5>`Z9GVsE1ER*X{E|MSK9EBRAP554jnXY^wU z?qzJ`#PCI*S#=%BbGORtAP~@bB_AgJnXG48?W;3it!epZp)RMK0)ny(8C^v~9(C~tTP6jp6U z3`R!}j!xN9QnJdlZ0KWxd^m;qIQPa^Tw!gkcA3OuBt`C*V@!6f^(%TiJqI)mYZelW z!%Cg5v!_0NIm1ms{M+MI^kt1s# zmMxma>tXm+hCuU@A~=`jcRamJd@i=i*cL?v%~JYUf*-e@56HrW>9)FWQw1-eY;Y&& zZwDWv!>NAv0%*t)Lchi%e?b;C%KvFr%1Bq1W;zv3H8M%!-Xlx@$b&SdX`=-X?;o0RlV z+Gg~Oj3vbk6GD#KmRU`T$UInO2H2wnG~+D|CBP{sCKSMN z&~GW_d@NjO_>u|At^hS?gNh0n0V@Ia{r$KfF2w#JDJ+T8DdKTH1({tQGhwNt!|-|R zXA}C?smr=@*#GOI+K@d16k$MI6P)>O} zKJ0Px?om;yO5u?y{;{u0ADo*=tC~zH5eZ~f0Iz$G4HzcUOx(+2k+{g|O|+b^dC0j0 z5lHdJtv=(NrOG*1D~i@GvYfZwO2)GBhJ9Kubesl#HJ44Kx0I%EE@j_BZd($dc;C3F ztoGxsehZJVp_+i(p;!5ksiN0OziBL|E1k`kam0~v$CQ}a}kn$?L^i{Q1*b< zpz?Ge>z=S+$=x-fpa?KLJg)pY+_}B{e)0i13E9fiY~Z4D)2}sWzG{7^adt+iVEsa! zcR&6sVAvTzud;w%Buy7k*A&%kIQwM%^lgRB_PIW=dj|j=m<4(V8EiZo4kME;AD6#= z?xe1cJZXi`L;C(H)OCW_5Tq+&4EyS7b_i}0sXBWBuvx&zIb6@)1dW{RJeT(#t#1BH z$O~<$vy$wWkMz2&y(&a-sdWOW(bL|yZNzvZtuphfcv73&D8XDK8Efq;IDg!xWpp6r zaIA9VvoUQ3nxgY0vcAW89P}BRC~`x`cWVmcHtn znNUO)zQ+ATR<(S+E&l4y=@b#8$thC{E_=E*h<%=tqI{o;BX#F$LunAI?S1~I9V`BI zMa2hR_rLJ@*ab>xq;qqn7AK@!9J;5kRJWTF%rz4hjB}i5`ZQ2IX&mBc{~y-gIxOy{ zSraCnpg|Knc(4Hm7#tGZ32p-f*TG$r;O=e-?#?iHa2Z?%*Fl0i!L#$c&wIXo&hEG8 z+H+m|&-^vN?yBm$x~sdZ?xrEKGgnT_`KmUx_mXAwdVi*%`TXF1JZP_8T%WkqDcwff z!`CNeT}w~iEVZu6Ujc8DZg9)!9I!aw=TC29)sGIo#;gXZ&;Yp1^%TSL!*rN*kaRq* zZz1>mhyvBqM5-X;h2>Q2CkiqSwvHUU@Prijw>5caw(KY92OV|Y^AY@$$1me3>V_SD zHKj?$JF^GF+jB1JNOTa|bV&Fh9%~`icKAm!=hqm-|)S8#(MegMb`__`1 zg?oSQDOA2i{lU?hyh-&hHCNC3UffjKp&EGutiF?;A>APa^$f$nAyf6bUgyI3RHS50 zOmk7@wM*M>*i^9Auoq8(2KzaW20|oO6i&T!zz_qj&^Ha8Ua#};{W*w1R-5i6e19RP zC}33lDpHldVt{K}MFAeJ9hRf&M3~GO(j-dP%Uz_mHkeK;WnhkOjpxrY=tx4{a$@DN zX?Z>pa%L^9$*BZVA;_m<>hSMsH3TkE?|vQ$#TLl2O{SM{iKRBeeb-8ucwLf?UA6Hl zQaCwj+_e7?x+)jhl2ljtH=g~orBEAv)D@g>M+>=}^He!_aMkc?nx)8dqVP>(wznGw06g1zgtAr%rT96`(PBKBL&1G@Mnk4X%ITjgJ?@VjJ9!w*U zS~k4}il9xZo8qhWdklxyw?v_8p&alx>*NBEvTf4Hcw^Y6*Trus6NCVI7hRX7qu|(X zLczY=OVqy3x<97O7;&)hjbChMDRy4NQfx)ub z3$tP;K+HHf4u=1DUR$EJElxJ4$7O_Bx(6U82RGyhhnqhQvM1Yy`{Va!ExC?QF%NB9 z2zy!WNRp&|CJPSJ2 zL4=dgnOVka1uQIQ?P^EMx5nJ56xzXS2&lFbDC6Cuwv0(RH3&MZHeksw zG^Q08${+|$?9%ffGA(&qt)Iu|8Hx=lSN_~|Lto28-nN=2rDFWFM4UH172KPlDr0Kl zK(qZ;_2gkq5nVIg72$gU}?IN<@?I5@9o>2)v3k z#uiMX3tQTA`l(pi=-_hf2g=&Z!bluWErC{owLyi&)r$f)4T2O_f8L1iamX;H+#yK3Y;j zEhz@NepOC?Pv4^%ZPg8=Px5VcnV8wCz%Hq8H!=lEp>o`gr%g}IcpST?=8;RJ0 zw6(k8HT>wMjg2ImGQB$x>mSr5h#JnLS>?Hz4_9~-sUXoUn17J58|Ls3cSOYHh^<`g zItNE>QQ1IET52OTAR|#*HQ0y)Tr5tQWoeA<$wuapt+=K&Q*#0L!{hQ9S)$k`IkUsf zR4t0r&j`AIi&Wl_*|&91sN`}lU@i}u9uhFi{-ENIp{~AJaGN2OhnN;d$09QIN8v*BmLTFZyHWg`qAo zU2(m4?{RKs?BYi`c(eU^ZLoO^GL^ zvJxjcR9F`dYRFHfvkIps@zzZmw_QaZmY3#jeHZuUAh&JaIuvYEc@Ut7Td590zLSHf z>{kp%JrG)xZmUIyVA7c4*Abu;y^6Ql+=;_xtvse#`&@uuSco0eaM<(|6@t^ z-ur{LfA0@pI*g^H^*)vKJ~c7%KK30A%R80oi>8m39!&KaTUPm!m#=I4Xif=9>J0z> z+vS}bq~2nW4O&m7SjLFHsRfrxlwo|vhZQ5u*dg@lkbD{NAG5{3GpeXuFh%t$V;BeI{tfr6qB{HeM`DVyC*9+BzTKQ`!qpJCmB zH4UHQT{%Y@2`>lan>uH8%lXVkMzF_-eI$4oR3X8JoDJ1CF52o#Ro$|)0*|ApwSLa;E1sgd}=qeLZizC*m}l zm>>u1llq!PL(#BsS?gC9r7m>dHcF1977@|L zrHpN9an4Y-L2X@ODG$T%DTc-ahoMR(Jdrq3O{NFnc^ zU40DN67e|VUH_DKD|d1U^Ur-;nR%rd7zk{ldZ z0cV@K#d%u^c^a>>y<&*C7{ATSrRKr9W|Z| zDNCG>+GbfJr>N8TUkrLXchGsC%{oun3*mAIgxhwsCej?6l(q<#egqItg9qi_F6k~y zaHo%DS+y<{C5qTZyCKY1#eHc_2i$K3?{Kz`Dcf53*NHOLHIkuLdVIoy1*W|g@UY~x zvr?PoVPU7|*5p6HZnJKgWEGF*-_dOiraCkbp7C`bzO`y2u(~aXod(T)+W44qrc4im z=a3^_Y8Zom$h^nu52s6{@;->~U(;oNCM_0js#Nnfv0L-)`fsuxtIsN;RWdEniK zU&?Z5Z+AWeBy2o`jBG!LpX}lf8vovR0=HMn#6M}?3Vel1FF5FbqF|FY7?HXT&STrA zx$AbqLH&xmyWc)UlVqv?LE|te?dt2+On4DK@#ZY{!EguTy8jOv`xfPh)K$pw$?tm# zu1$k8!kZRBZwU`c$;ng&Gn|HceQQ^{L;z(CyG_C3dYvQf?excZ_4(NZ_YLUqb`-5t zWPuDSe09^Mqn+;W&5CKyh(058gJ*g5UwU4hU0k`}inQG4;;j*;M-azQXkiYAQ*pAKo!@hKBd|D;rWA7IVeFugQRv z>g>IYCLp;PNIAc%98}}O(G$y9@&Ykt;)plj{XuKX9+NcvgZB8sk&oeJ2)xCAI~sqx zb!}ghEY?f91!r`$+d`GsAYb2Cu>Za5FhA3hPpWHhj)XUu!uQEuWAlP!BKdW|LW)K5 zIt&%pF^kUh=N(nM=a-T|elJuhjtVpEt=_d}9Qz7CH{Dx> zk@VlT6H^j2=l5k(iUemzf4x52@TGW*dnHz2EMUtj*YpxP{nL}K)oHZ^!|}URbrn5- zzydDa?>q)2-Ig7CS#6b;HF;2Hma--zLqt=BiC4TM&4ON{ihZ72Rsm|Z#{JF*;_^mxgu`f(l)I{f=VMMVvx);{Tu=Zr1V{=(Mh^CyC?gtx9@ zmAlmoL(uVUS#=jDUZHv#k9}f|Qd<(U^=b;$h#I9Euy|A*-_x==Pi?C}%Y(;3tu@&e=GR_zN-QI zxExK7THyAz#4;NmP*_IXbngLqitJ0rvM*UQ?{~Qt7YjF>yd-^OWcHy ztYy5FsXIgiwqMRcjvi`ZSYKKlv+um*7w%>!Rki5;%XRf0b=q3Q76i8Vw!;197q%|# z&ad&=&6wfPUbCf*;y}1yE#Rn0EV?RGF7}S6XxObhcP9f|e{$B#kL)K1De%aHHJ@%+ zLYOM7r^AMW|Be}>@8Fb_RPBaQRj(%b7inH`L}E1&nf8`k!U%sC2%4QqBf5Q^e`y$P zn#nsoHtj3%X+74KdcSD4;Ahh)M`1DW1rUArP9Geaw5bfVc+K0?(lpA=KNhC@4ZgE7 z?E#wM8mM8~tV4n|&6$qUH<>r|<{b=KFB@rA+c-`oR{a*ij`_bEH!V(%fz-%zhmJR7 zp0Lwx7L~d*A-Ut$tddSMuA~3lGTz!|8#u=YHTU040WmzjeJ)9?`$ct|kPSIU z9;L*#vIng=b%!l3yd;SEr4=jbIti|;u2GXrD-#kuN)|kwqkO9W>XiE8+9TDSq&>k` zSeX84Uh-|f2!*$Yh=FhoaCLMj1cvPDcT})1RICanHiL|(#6Ko(>6GZCMjEUa90;GL zB#WNEFyV!B0-W#?#a*8qb$j#!DII~Gx=4!k<@^|JUx_w2y$#wMW0>@p3$^iyLxfBTiNJJuq2ufa@wqYgu@U z5WFSmjJ_t`DNcXhga=3-K?=q) zeU+Y-t5Aj#51i8J(1^>uRJ(RCfc40O3U8<}u?H82xWoeaH|aO(N6b7|oO76m1&FDh z82k6$4!xhu7fyQuXtzmoAUWVlj_eci?>{~M1 ze8wF(2fQFhDm~n^&&z$S(ZuKHT4sIZ^hT5o5^@nx z;s&;Z5vE7F6^x!kSsE6U<9iD3txdQKVZcIJ*7UNg>l8w3Nze)F;e?PkR0xc+%l! z)90+V2x4AwUbwpxKSYb*WCZwU1~WwgKj^$77b+peJoNGBeoIp#D^-WA=*9|N+|W!g z17tbCF`K)u=wLp-1tgJ` z*Q1XAHWCO|Gdu^>S9qT*7c~nh;J&0dOSS6O@?&bOD$*8_|M6) zP0@=}j_)f8mFXf)gLNfz-*6qw_q?w?!wAA0Z~@`%ZpxIF7N;a=ap3v*pRIQ#{?dw` z%y3wT1P6IOzISLG30p$A)Hq{2t7@9q1lz{t@(!srkg?UNndv)V%lR-eM)fo4zYNLDJ!f$ixnGha#b(df$VYY~IWtd|}y z*2F&Nzx?=0T2v(=AnwDfx4Rz({-7OkpMQ&u$atFgx#&sk@RwIBEl7r6r08g96(#@O z!d10RJh?<@UMz8JYMOL-l%ThK3l54X_SpNivB=fY;@7HOw|9_biI4AGj_*xqed`}x z?;+v>ns-tioTP*A280By7W;mEcd9e3SAiXbJbc6LdDbHlGN7KwPXVj zyMw*!2&X|`m(08!4bCm$HY_EXWRAW(!EM1eJ~Mg_;&G}`OH4!tEz@qpuFu)Z%j16Od$WybUh<#lkexkbV^m3zv!b@K2?AfWZl2 zp^hT>46+r7t(0wdpObyOk;1-aDaPK+;gSh2%db~1(E_S#Q-0}+H@o!cL@ z60oy3`zoK1{26_Jz z0(H4>s1jB!RFkXlzHc-lkA-DqS0hHdqvty8&3yHRM{#9N6%aCen>5{it;~H~r_xgN zio&lqkTl;%9`4k#Sq@&-23#}S=OKxOA$DjcdDuoa@6Z&V%RHeCt9R?bscE>0%Dr{& z7r_-<4W84zmr}lOGNBB~DIrUK>MLBknvi=85cw@~c(VO<;V(&)-0yrHPw;nB%W9*w z0o3sgQuGRA6m(k3GKk9Rc z#j+1Y5F(b|cembG$Y_eEg#&Cl@68b+p-*1e=L(@eH7?OC!uxIy1U^?04H|r&udkg( zi2mLnt`c1(FXMF);^Z4g##YyL=uVsz_^Z{?KXDoS&vB4YgRy1riOln7Kb6{E+vTQ= zo-#kXHz*82X>3e<8nZ5Zdw+hG;rIv5-A%Y-D&q@hhKgVv7X?r-5vKN`*8vZ`I>VT^ ziVUlP0WzYX)Bew4{qaw&mDL`kuh}T1uU4lj4T67(Wcv$?^xxuod5ee+J+$Hce6Ryv z9KZ8mux9zO)~8qg=^i-$R64BaID&i+=@ZJAGCCu+FJ4JM&8&ZZ``DgG;Gk_Po0au3XEt3FflXZQZ-ujqt_C^2N z=#HjcGSBerKY6#BkU_kGA{2_HBTQf4%lJb#q@HO#C}OL zrrpmd*hR@8!c0u~UyiQ#HFA3Nw(p^(#n-MfitiFPdw3beEgpRv4ex_z(Fx0V4rSml zV$+(CeNIJ^3pEAUcqrcE=m%R~jEosGpj?X-O=+5XV&`e{9q$5;>>Cf|3cJHirO1f8oQtQ`>Khj#097HAd>E1-(N6(Y@F2u&hM{NApvxd01?@GDBHWF1n_`RR^UpRg;z^NVc z@~>V%eS=vd=?7CZbM1+lPn7)sx(3;s z(TnT@Ji)k&td%ygko%S1%&YcgN}RKkt{Jh9eiFU}ZhrJ%*REge{LUuRY4|^TfI0wU z`)2eq_}SUL`RxY}x;>$G?_k{9_DF#fzZPN2ZDepo(6@)MyZ46=3QxLDaVC$1dF$=| z>8(;mJ1=Trce2m(w!2$+3O4loJ?H#_J7T)4l-;bU1uI%)>5;DN0K0c$pDYO6nIdaJT)q>3-*TMpF zer`n|tVuF{XEaZqyw?$n@{83p{L3~+jTPf-PSOHB<#Kw634-ViVxN_f;gfhcS6oa3 zUcqS7iW7u78C?aVbqPY7@cRK60#kan!p$gYy2tI9E9}83f-Abn!#{K}y>FBJWYF#e z<0?!PxnK-E+cm?5uItfffL|a>#L#tKH_)`y_qoR&dSFV2-33Jr3#H$Gck&E@+$%#z zo{)M*{m>w6sMZbF!}&ZZ&P7nn7%-?4Ny=Cu7AXKRc=R%qiHUapWAGzfmhW9>FDL|4 zE-r%`M9P+@9j`*IBIj~8?Hh?jZ|y7v0|CXMz=8sa*0>jzRH3g_(GB3y{edk)ej78J zU%Oa6+#|o^=9IUvwk+ux{8-abe$^`CnczPJI}jpzR^1D*mL01H>aF1Mtk2d-72>(3Up4nM$y?QASU9sVJaovj}iiL*8WbxnP z1^352Y=KI)Pu?mC8|J8G(CBZadcEhSe16FpslCW0OT8&6>&Rdq`ZV9sQg|meo7mov zBBy$wF)Lun-9WDZR_sz4-zR+xnQOa}kv(&Gtv_mZ~Lxx|W>L+gIWNkA-&|*Tliew0xA} zxRd0VRVf{HRc|c|@Wx)*RYA~d5@>Dkf~I0(_}@irmwVR_IEq!an6g@X3!i3hzrr{R zCZqdJ@m|(r#lho%OkXXBb1Low8k>3;ijEy7LUaGb_{MAkhBzH?8ZxID!Vdr>Yb|ZS zHuoFWd-4?ZBZBe!9743YQa`cyJm=#drGcdLVL~UXRSGuwce<=}arQ#5Da%X`6w*Ge z6Y3TaqUtGYGkF{WK6$0FH7Oq*1ey9TR;ffXOMMUd^uA230bv%W4VwF*pAce2vQs*F zW9G&02~N=rUTmnw1A|bRyr1q77%KVD$zm0al&Wc}otLyul5#&ESE%q{JwJ#NE^d&X ziZvRkm6GVWwl{0p!!;)=SDhijuc#4SP%93N8gdCJP14CtG<;;Jt*PqV$3R!KLUc=^ z9`$-Tuk+H`Dy=Y$SEEsKveSWi=*OZCu3|KMMqpHDZZaEt%z~Ye!44x;g%=(GSs}?? zva<~V8)0s#&rV5|(vHgw?Cp^aoM@$Hj&SI!s0+{+{G`{f&(Iy~m6xdiAlicD#lq3m z@?b?L*$yp*%2N*#iSt8V);eUUDn$C_>2v1dN;%s({cX>~K7zoQji-S(%<^#vzn1D6 za8^fGvM`;Vb8%a05$nnM6=GwGy@pl2bz9#I_mU!aCPjmaQmya1T1cwCR3-aXH3=#2 z_4uM>piB^$?Cl#qHDd1FCN*SRG+sqVX~=2XZegXMcFk~Of4r@c^_ecTnF6b34s>A} z$i%`IJ6ql9${b5qXBSnom^w2jqbA4bQ70QwAV7@miqsIsT0Xd(9W(C_+yX3-!~>8{ z!Dg+Bp#U|$=NIXDc zqKtKu=HZxgAJn)=B6vEI2Ho;VG@Wflgj9BLSbO78bSZn51xAqEjF{?+NqH`9NV}*5 ztq%lJS;b3|Swrpjg^&WoMAex}YpbMZ2FAAMi{TOrCuK)BUuy;lDe9GO-rfQQa8C;M zmKk62+|vx@?SC3z4=HPDyQX`8n2qn!?4Yp+d?1dt|8fI4?2g2vi`p0>b>2GgmIS*Z z2OS;f+Xo#*ohLw>U}uZX7opcX9obmOZ`_N< zo{!ltP__k!6VPk9sqk)AI62a@hs2{#oiiZr$~dcCBvnTAqAS7;x^r@8e~%)Y4zu5m zGPy=d6? zk>QH;dAT~vp~~mk5>}prJHL2rjYh<3ENwXCNXP=__>4JF*<|tAqDoU`1&yivE<>ZZ z6X~4vgC(p{!r2XFbDsD#uAIVa!LZX`(D^ME$r&N=Jn+28S(ivndK<(HtS6{V{WZxi z&a9Ny{kx4)wc=Rbb@*0__2hti8XL=|PLqF4B*vEi7V405UhDyo38quYEt!`o8YHbT zP#xrnTir;X0*i{~%^$p8UyO=K2Mq7fr)2|$*4-z6haxtIL@T1@7!BL~BlOZd<=~Ec z00U#HN4Nv)>iIC+A0&Hj83+00hS);OLdABvtVcRVoPN-GGbuw>og9hBtI&GPX0-y= z1FmpyX}fmvo~8>UIp0j^g|J+pQFt$n&YX?7jQ$%Q;(=;#B}tot*Pz+<;+!v!n`Ky? z`?lK>ADm;V2Gi730VFiK$wU)?SXgQt(t7fUPMEb_%i0rO!G<{%* z3e)mKDe)42J9ZECvQZ4!p(yF{JTPq01jIce^ToP6ke{n?-mFu63;1e94ppH zqY+?n&!EzX(4=aK#!asz9m`)rqtG|D+%zP zoFwDzS(sPn^*CWZ1_ zb+XBssMp_=-z^5fY@}~&jtZM)bagqpFI=2n^*OL8>1=4aHtMTK8>^vMrZ$ss!gc*- z_#}0$Wn}c5t@kX;CVs|p7pn?XNPQWq3A*i~Qr^FpD|S%$p6S#G8u=KuUxv@$Q^F;` zXl6=gl@4AZb_}CK-RAeoZ_&6Oa*(CIzf73AJKP^u$;u#`t) zNWP$}yY&V_v;^L)FDj9XuNTk>+ufUB7#^=K7;;jQ^S5YXQYhiCu;av@HR+65-z=D_ zuUm*v$74yuc7EKmzL`hdEE7-6`e71h&Sq@hmVo^8MGZAKrlp&Jbz4f-W(nDVTauwt zQ0&{$M?I*sk_gTMvYM?zALHLC$ctMBZNz6Hm)LzrCMH2wI$JUC&T_lL4TMH4$E&wz zS2ZI(rnkw(`5rjEz63i!$`JVM*p2sm`PQ$WHeQGse@da-0BHts~y~yrS(OjZI`DK0s+M-#ViOy}l?>*#`^Qy|98*6#bnK45D zpmju9UaLH)#vAXWPKHUyN?$qpJY)5#YnP&C(-r3x&nCa}xc~^{TfcYFlwVFzR70V%d3)o!pIMgHj{g8fa+_~7_Qa)s`Dl7uX|veM60^C^94)5;PTDa4 z)MR3bjVBvw5w-mND{;}X`&4SkGzgjpMr>a0uHBK3T^rVL{)HRkev8B1eG5*^K=!g9 zH;pc&kYTz;y7eCb1~yx8#J)xhejdGqSMo$o7C^Q%}ZJ=t6)l z*&7!wuka(P>zM(f@QVj)%eWO7BN$PlA21;if6^z@5uSJfmEeBaoK-%3dN=z zc=QDKgjTeupFH5fFlfQd{edGvO9HhFn7SvbH`Rpk?-9--fEtLD19eLQL*nUl+`O84 zA8R45?W>C%DjQ4}n-W*tq)q$xCquV7jmbRElb_ZMzuN#2R4&cVe(V+MdRk^8=UZP` zwwIdFL$aZCE+h1+J_hf@#J>5Ln(;|A^1dU9G#Sv?4Y zm9VWzPE(&L;e{q{zBHor`K>2zrSUc)k%M5g)fH5@-a5GA6je%+^Kz^*%+is?&7y&^ zd|}lxasC}wp*e6tQ)*M8nVVYPR56m#UZd2*K_kCQAU1UP zbct!sPOo>fXtr5V2l>&x;>qiE9Wzcmo$teeB%9D8Dj= zYVF@uqY|>U;+$SM@b_(s)eai1TDK|MJ_u=@Gmgl?j6!EwBmw~*Z7_$WIBhqf9Vt!; zSMnI^A)n%@-%TQV`)=<>;3pQ1Li>BHK6=S!P#^5BCCAu-2xsc+TI+q`|`umzNTHzL~fq8jk2!NLPE- zdI3VsLWylF+;yWCZ-zo3QVNI6qw_lWi*e|4gQ=s?Uv0Rx7D1CYaWtnD5n8H(rK)oR zUZPs5Boc#XcKhpsm=fHK$CsIDG|Snq(CQtQ!%f{~`HKAS-%I-(w6KR$4L^4iy;(07&XOh39A+yxXj%Rgp*-Z9 z-^kn@E~IdCCQrvpye4IO#J2fy-?-n83O#!zSAqksAu7Y{rd0;~ZGFJr8t{`pzLR5C z=QnBEd6BZgP6O?vb|4Za%$F|KeahF|Kr>&jF|-c$tKB?R>l2!vfwbLERQR5>Qj z{$|giYJajYpMJXB_Sh}&($ccNCyP=qcGCH*(u&(TwBh<25bo`Hq$E}V+Rd-+;)a>OHs>|7JZGwW-@>h z!G>+UN1#hvJb4jbx!6o>%L>C_leZLNB5wwAdc*C&A+~KPphQiVBdO|Oiq5A^w_$ux zZX)}F&V=ri)4f93D5R}B-?HpPb_%hvo55#3?Ea=Y1R<-ckt6jdE*r@bbwU$3OzT3N zEN4EP%+aUhButY#cKW3Qp!zMrE=gwN>tsAh;qgG^Q-7egKF_ppr~76qlRK zb};=F1IJJelHP#pARxLMJLHNzW9&uPvuv31YypgQz2FzkCS{cy`Bb#5;)k(;CTPr7 zV>K1*7X`7tQ^&86q^Ar2%m~=GqsaUi63p2dq8<)>w2fE$xmylTs zQY+hC*%?DaL(%a7rS6F9jlLEk4K;(;qj8*oBlOh>)M@U)MvMFLu`nOi0ZvweV*+j7 z20>n+T_Uz}Ala?t73$t~X3B!BodJ#D3;M^W3}|Q>QLAWAetJ25KqH*`H?4)F-~ZLC zu`hDY-g}@!OcHTpV`GzPO>(%Hw*jXLG9u}56vyb&d@@fl$?swPngc?E=(4ivZ7+9L z)QYJ-1ky3dpg&_GevwM|^tCIa3PD~mLlL+7;rN3;FjFFPlQdh~c;c`gTiX(Fy3R^Q zC*!B5JL)i(^l2N>1(`8k$B|bXn0Ae&Ngzq!bpc7~5wQwD9a!QwP&JSJLsuISEfM`! zXEaK*X7My!Y3@J{zt9l5vX+I&AH4``*@<--X%)=y7C9QFUN*MytqS+;{@$1wy5aAfKdloaLl+NLv-L{Vic5E~x>_%<6=jwiOku9kCK? zkdl$JRXA@hs0dkw3|a7$GM^AS#lA`iO0n9ujnhG~kc&RCgn@1)wyssq6#3(J+u30| z8?P`vSqTJ{tu2?=>_{hv0tV9yFYqX>X3&jG0R87`SCKHSklPBz^AGXla**j3XdYu+ zl5SxNhE`!t8(g3Fcd3?7v#B>~EHB75lvU2oWM2HNg?tx7&) zXy2jVvifmb<22Y*p3n+E^GRw?s}Ej)YF@=L%=n4ltvE2BE41Isty~BQ|2MyC^ z`WM#NKG|J=iS+K;&LZo9@`UBHf2?JL$?K0#&DJHm-TWsDZc)eGkzyv>Wj)$oyz{?jWS(J>n?)q zRwVc@>uE=CmVc*yR=|UG719az7{CrHgF>67Rtzj|51)eZi1sQ7S*<@YDc`OuDj39W zJnPn$g{bi6cm9@B;3luxygb~E>3T<%6reC^SJ&nOcoUlPOWg zzVKU@My_hkSzrGPyMCe66D@VT?!^``wxC5(@Z~4ye8y(bNO4464PTn=$Mlh)W02y{ z&le1+s{bbrR7E45c43R0w)hn&^PjO!xMs!kYA`eGB-c4MYr$ zj~oFiow$`0pw(yptgM+i)2O<29YlRB_D@x)_F8j%?O^dY^eb!Eax3TVQ{D#rx7z}N zLMuT4ead)mMWOYQl*b6a$8B(fVV$mn1?D>$oUaC^m0RV8mj{Utw80e*q1SEeO25+m zg8W{&*`2#ju3yir@GUYP-f=h{-=(iR91*JhB&z*SUilYb{y$&)54Akaul^Qet^O|z zpJjGt{o6wsC{EPnA6bi_ImZSOB9phQV!d|HBdfugnk3wBcfmL>Y&Uyge2 zga03X=9|*!Zhmanexa_4rZbANfQ_%Z4vG)v=3grOXZ!r^>ZraXZL z1ps~GJJO?j_5aPByA@%#tT16Fm)I-!R6FlVcpr)f7pS`-u@Sq_01Q&chhPcAmkBO7go#J5pR-? zk$|G$-U!T_YZAg0Sl*YZiB&UcsXNkCM+HUXu9k7n*^T*r^w;a#6>*pl5pzuIOGTsv zrZXFD@?*0_`(`=l=Q8i z$%W;rdFNF3H)d`~g#z$RMwHF@Z?<^y=$hhqFN?Sf+hj%K#z{asaSt-~;(C+E0NxAt zH(wpa#q~$Lai+vZ1)WY?Gb>qYoz3E^!CXDijZW>BML?W!$r<2DJ{8>Q_4--P3h^lc zT^q6n95?81$pTf2-?d{Y-)8+e2HHPdflL_o?9ki~k zI?=(y+|bRAdz&KF+72Lo%V-NTvjP{_EPAR1V@AXk>U;E5Mycg)xYJ9=3WFPKO@sh8 zGt2Qn-6Pg(JQLyFWuNUlUMrVv3J+_SKB9ca83Nm)VJmLRVEDaX<;7X_(lWtuw%l>4 zyzV~K+SyM8SDPojIijvKZ~{5^y+58_HU_+Zt8da9HXqk*_VX3GN?7UEc0`L6LeOM- zM&V--pjMtx)`Lin*^ww+J!?LhC}o^VLPqqpz`JBhkM3rwYYYc#=e&GI5hyhgd7Wv&pKln_owgz6j{ufMa z?BwTB0dixIcDU)aQwkUVutU7bbR%%8Lw$N>W}vhpUqdq4cwn1UZ9#*g$tAEimVzX7 zYqL)kkJw;(7dvVHG+m(`$3nWggJk;cGCZuPK!Gsua=go)rJ1L)i+PjG!)1cRw)u5K zYfC!*BzxF<`QAvX!b&TE`j2Jz$lNl#%9x6{yLpZ5Q0q*-ME0!l{uwuA3X(P2B4YCf z2WYmOwwfvLxH}aau#o4L66+!=C%mv={>P82rZm%uXN^dXI;uvH{d@tnXTtY)c|W=V zoN;`liGdB|avp`clDWr!xdJbnp^rExfOT?tWyrxjHApCo+EhKkzh$y48?hstUVHxo@=cdWa3MufENxn) zC~xy^4>qb;sIMXP4YS4@F-tpqx`C)9nmAeKFcQmOk&NgO$z-wUp4#xtN-l*a!a?We z`^Y>U3b6Kpr|fKDN?MXZObYX>1YP-=w1}Iuhz6D2aKH~4*?EWe-3=)61u%GPezkit zxktd=68M=_WAB@;C$UG$mi=u;^A@D(?3M10r8KaO9`$8VW=ein|qow*H&j%dJ za){n7@efW?^#9NrU*+KNHlV9bk2Ff0J?zO}sM@cr-eOF2AOR>uqKE}b-^6--x+(Q4 z=U+gu))M-Q{6ULaCTtIxm)vwW>+eoVPuu4)Bk1>>9W^6O1(F!E#`D6}3N`IAPIb*V zi>(CB$>X5FFBPJGnDvp+-mUMxOv#V%bpo<^Y}Zd00g|ZO8?jLTtw>4h(bcN_{)Em& zUsY-WyM~cncD85xY(@TmsVrv4-fCKis|_m!nNh)V%yl@iVq?sdt26T}Q3cjc80MdE zwtAC_vsdBtuGQ=tW?8=&FruVK zmy$S-wv8uetfyDcap{*SUSYiJ-#67W!2rE4G1i*Re+eofu?#p1sd#VcO2?WWVVM*X z(pYbKK0Gv+Qp=P5R5%RDjn+%#HlZ#ln-jFvrna07ZxLhZ5nK2i2(1WA-pt%TXto}g zIuMCR=njYl*)T*x7T)A{m&9e$0#Z=u*zm#3T!U;A=mPo#9u}+@BR*#V`L=*nRo}Er z1YP(m7dwD&p!Dv4D%ufh;ZvBQWmcc?c3$Sdj<00sQenE4f?GFaARaVP-@sOO$}9^b z9O}(f=1v`LrCA(TCs&Yj6sWb1`@PFC>5KH^sO`||%82(-j_e*Tz}JK!>(M*S7gVRj zhp0BH%a{9DPE=BT&`=NS={DkFd73H3oI$2_g(%LNkm6NmC)raV5UqqEUOxNXY=jU6 zXIXE|!YJ42*gB~$K2^&%)kGe~MB3N6;aI;SEp};G%lZ5q@aX|7xKj%Nx=?%_M^!+t znP&QRZdBbqF@*KKkGKHwR<8y;R1)JKlkX+@)nPgVN)TdRtPO(S}+}lZsij zT_E!FvW9nEOeH1%qrJC`YO~wgg{c=xq0knJ7YQCHf#T8@_u>+yc#+_)HCzHg0u*VB zOK?K40!2fx;%*60++BL|JloFR;~Vey?sLvKW1KPe4}K8Bz1F?vT-TC0=XI@BP;*8a zP>D~+=pY=0Viu7k)6EwdHjLHg6RP7ciZiF{z&#Y?!l7A4DNG>8*B7(gd?M=waZai^ ze5Zrx*Qr(nJ}ex3x;`Rgj4!L%$?sbig{C(1QMEWG;cB($Kg{IhvWa*o_k@hWnZ9ul zLOMp_V0{l$TOyz4DF{NbCG8(}oHHImj#hR#@#U`Z{etagWvNz2=QcOnmScn1LpC<7 zS%@>RfR8aVs%Yk?Gue@{R^|uz4PdkYM6fz<4ZP|lu9nq@G&+4$g+$%gyPF*^IPGXPvUkn7&7@ z7CnYurl{~^$xUS5Q+~32CecR)z=Dd&lzTty4Nm@8RcQZsQJNc4FP15(s;`7TVs&GS zb{m378|&d^pazNR%pp zU#La65?4O9cyOR6{75O1yL0B0giFgvIgvkG@;1M>}A`qX}8Lu$Rr`O=LEW~?E47WxmQ zwS4M+?xHZd^|9ic+Sl)+sjwPri~ORR+={{`*^M*z(Uc9OR2_Nv%<8S{V-e z_Kptjj{z;+d*=Xx;v3;y3TyhVkk`iVfqM6TSS2ToevaL2;e0QsO$b4Ug!F{5#-;;z^H_gxhQVpAXru zE2a~dmHd2=E^oc#j9lP0dLz|6nNT*|h09B6%Z+|JV}8&tFO*lB8~89eFeZZ~8_oi{ zp28jcm9C1T_y|L2Q60*7ZPq%h81Ro*8|Q{=^kV$JbH*@=8m0gBU;GQ!*Rr z{GoO^zSa6_I?5@x=e&HmoMSXw`atd32GZD020A%Qji)sHvD1)LGB`Nuqv}LBRmMik zQW@gVx$EF3W|v!>Y+FlIq$UPS7mLhr1>o6Ltl6LQnM@1DeduT!tgr@usn`XN+2?c& zIU3TKjSre2W$eIv4}p0`QDHoUWLdIF*nB$`G#^$#8(VM(<`r63p0CHT79D~ROx6qE zKy>OSwb>44hE37i0&*FQj)+BIfR@qm zLP)DZFQ@USSUgurUU;&32@crb>cOM+8B5`|TF8R{&TA@{=Y_44PRIn)kJ9A)N4kzt zN5!12b$evk)WAngmeJ%j03rHSa{ZW@+K!npRB5Hupn6x#Bye4M&O?mOC0)A%MvmHu z84nhqsG1cQ81343J}fknH`SRIZ5v&B6*$Y?+v)nMB)Z!yQ$BR?OofrU(8}k+!KHtW&IbXwvA%yKaTF5)wbR@Uax8P`oAjfk3_M zW&!9n!Q00>`vN&zw=>@tSSD#X)Cv!2Xr}<2IMk&AVqz=-01gF{^bEyKQZ!!}+T~?~ z-(NlSlWA7-Rnu#-ee79K*9mQO6k}u9t2^GO9Ct2?^jA#xM{2MPBTc~pay047smptk z^6#utZc_$OS+47%dW-9PI^G%@DbWSegb86k7rdH_WF%)oztSE~-m1!B+4wnup1j7N zKbpN3P|Cwh;~7yj$9axI+dUG$ii1U^fPUU0f+ULoTyq5KMbC~jh_p>E6NGp4p{%r` zHB@BhLG}0}9jO`d=HQhrq@*rla3YvHxFf}&d{;M{CScZbcnZv~9&od3paN8$Q&AaG zvKGL2ULf;P363w(Vel5oL#2P)=JcGSN>{b7!DN~>3SdlyB@&EPXc;fq`RiN!a4pkssu= zS_3Q~ne|Cpe1$ojmo;rWa|zK zJ7og#+-*SZ%tykQnD=&=aa}!^C3Jn_oyUD3U%$ChL6h(c36pd z+uxi=Ig>;k!%18N#4~Kz&=pg~vEr4ZO1P6O0cg^4_ww9-MJMhg3eG!81MFg}An7 zC_*}1)4psTUwd*H2(?+IC6CM?Z9O=-ma0B#Y7qFdX^$86!1GM7>tcT1@2I2(!15_S z;UXI^<$UKE%ht7Vr_D~awH{wL!R#OR9C9~sWY)em{4E8SH;BAvzBj?;4sOqFApqn| z@p^27YK946mu!pU*^7=LLjD*?0vh*yT3_uENH-Zb9ZIdnCm4EJ&CKRwO7jlbp6@QRG_ zCxxv*FHMXx!_Q7YNB7CMTYDvZQ{2-fZ&X;#=o1s#YcZbN8Groc)!QhWcMmX5%E8N> zn4$Y4_WBRECPU%4g5uW*-E%9n2IJ(cG$v#)`>xlEk(r`mccWCuXj{@`!nnSzG+lgY zHf}H5$&;bh1M*p!1*%Hx8X`7XDCjQ*j1)OPI&4+@l1_w8j8O@#UELRv3Rm;4D?5Lj;^jc=8Jx zFR19QH1<>>c`hxu5&(ZNU}F~D0X`>;8Aqjeb>_Nkag-nW(ZdXhJd*ykX6p9S?9?6M!xTNP z2&r_H*@wm$d_6m9QO+BA>y)Ur=nKMGeI==1Ba)eIX5z=Brdx7kq|nc-ex znBlCgqINE&SUbf_;;1H0IJBiL2Uk;3E;>;3Py3WzRdXAJbR|O@dz*r6L5B2OK@`214XwnpML0-7k@?_lE3XB?e^7&+UWx zIBY8x**acLDqC!WSW*3)?0mh4L}xPX1{=oOQJTRW7WEu8+aom|A(c0X+Z};8N_><#(9#OqPkXvMFBdRE zMhT_OglC4*8wGjQEQ6*k-}5A5Py8&9oWNe@uEHGx63ztBt~(xGz# z7-&Uu!D@Wd$0pcz;$+fdKHn`3DxhnxDX+gMm09?lQgoqir9Ub@&>(nCNc{8wy9}DC0KDw{QaO1#V=ylm}O5DIc=<#*)H$39-@fVC* zmd|e$eHw)e2)XRrYNkg_Bbh|;^(>XZEVq-#Iy&+cn9B;|L*|W(fT5i0a4gZ!Urj%oBOX)NNDts7u4?9KaLu z!DhO>2_2k>fG*F(IJ~0tt#3t1>(zzjVVF(%RA)M$6(&w)wOX>yv_Piu_-P;Um(}GZ zGRyOZYNd{SL`B?F?}5LQ=*OW#%73zy?K1`=Lg zo2gL<3W0r}ALQH9WD9L<7(}x| zW`nHES-7brV*t(YJo+zg(cSHCTy3V3ELXummP#=Vq&6A zfrsAP;ZX?d&$ySN3(eHKdDzJP`8Pqf=0oCk z?NXJH+>q&r1M)A1&!U`@v`R7r>>L14p-Pc!++lK)D9wg}DGi8foZz9TO`$oK=V$Nz zc0yH*;iH^FQ%5oBI^PxU)$^MrJ+=j|c>E8V?0UN-JxN3P5(_3`RS%Z$NVj3`D4%}F z9v3Iw0W|6wz6_>|&eACXk1!!~kFfNSWPw|kjpa3m6f=_9PfHoA+6;OGxA;*WGf_Pn z7}h=M4(F&Ln)ryR=B$KJzA36fkoVq#ewwX2f+J-hY2VIM^mdrDoDp?nt`Wm~256jH z3t46+t?$Xs4qbw!t&(D(oPQk5n+e+-c8a_3SBLT1gnJW(5&~6c7@F?oT&`Edlc_4Z zOnIdtaU4kS2i?%#>K|E*=PXv7Vu;$?qAaS`#0s_v*V$>`G!}M^rsI3rn-cHNbe+19 zF(-G$seUSgMoW)P3?Of}&u8mXDi9B7>(D;cdNhbRZ%=~Es8=yedh1-hv=6nIn7Wj} zxu>-GTU*tc&8%)}9uc}ICj5K>YtKF-TS9a8zJS&{Pm4!gHVe%z2w~BM3F~{!S-*a{e8bDrJu?I z^0Km&8bhq(HK=yGp&xiip=mu05_laPoab|@V?PWIC3#A9LbhXRJjbB-K81lcvy9m} zNUg({sdX&xNlh0L^ZvdoV@?R0p_bJKTTTZyoXAy~+H>kY4lxXRt&PNj&SS)_@vJH` zZT&pecI1xS(+g^;NtUOrN9W&ouUxKG`*dPrrp_X;e4)Dfsg@Kpo)&Sj$-idL0(uL0 z%ac*o$_Zfe4aHw;q4Fw?(D2?aiS`uD!+Uq^Xdq*9f%gX2^rCcxr~w~Xs(vbXAi-~9 zCkLC9bsT_-c~YNB=WLFzGRZ;syBTWbOk8GYC?{zCGF!&q zCypWRtWDwvm)K9o0hx7-=TuelF`?j=y>cqB^Pzzx|X?xH8kQ3Z6gdto#9ipPnpAH4MxmIQdAUF*T-msaBtH=ZDhzo<1E!C$=HhJ$sO75V zcd{Fg)bhF)k<}LMVhB;PmhslbD`}EZ5l@G9-Z!Ow;i4|<@>OtwV{}$$W{gF?w#B&7 z^O)^3Y@0;7hE=9k5IJ3&;*yd0+}w+$Ceq*4Y(y8ImkBhykfmOZgdd zkBc~so_r@?HwS)MUn?(kMFaCWU2Ms|a&)g1uG-fmWr^0`rnw-L(9N?lKQDbS^G@mb5a__FXkYBf?N0qqWZ@*JGnEj8`iQix`Ay z?C&PT@AG3nFloTU}f5D*V)$NTpEVv`N!UP_69}8>X+VALkdO ze~}h~ul~@q60HpSIjqNNitBCrRnBE!Y3!eJ^o%Q4qc;w^m;!#HIMr-V?|Jh=w|cZ_ z4q;6n0T-v_RLqY$k@Pvqwf6V%_Bo}zwHR25^W1io-;KvEo6u5b(&9zaNQbb^2qT6e zHPK<{l(l8~o6sD?*q&iVyGk%ta#{v>?c0D$fjXa?^!sapu{Gea-U;{sjyamTHrGmK zsY)S~OKbYjt=v-D#UZkB;%Ee@_}YV)g7TW?CZ|)Cf^kVe2kZ4&vr*3yN8_TyjQZ*^ z(Q{Dkc)VL<C7NZ*7?ad?*X46CdEvv# zTF)14Vx=5Kea94|z4^m?`EIK58CKd6iF7VjJa~O2&YJ3XwR~xKt-uv#Ri#Gq;hbZ| zdz#>FuiO03@#Lo86HelGU`qat{&AGy4C0iuWP$N?#0^(c;^!(+7ycJPmu^=U7G=MZ zlkC5h+QHpX#88wEiykt42yCSl_8P*{UK0^g0J&uUi{5_RuM* z%0P>J1X3yI%O49w9$9|P2et|^eG;g(kK?fOSsxjdE(~<|mV*(0pCB+O@16;`itGuy zXf&~i8;%C7^ASRagS@64Sciw>fkT-%xB~u4$VQSYcT~asOWn4mSD($B1m(z zQW}C(Iw)zts#Fa12`h5lKQcU^N?aJ@6OEp(;=zvHAL)rMF2i`zL0$A`ifxLPmyTVC z(XRn&g>kHpRk_;|P-O^!Qh6kivQ8Y*YFESNKE=N_I)cNK1~5GwThJS9+SuwT6<(%f%E z{CfV^keI$%$OIzr@J zu3oXCP^E}vz*us&30m?2Kc?@??W5ux>Ye0p1}A+0;b=9T$A;4`MPetb)+0rpBoYE$ z079p}_u$WdMj;(K?U#t)rG{hei*<0gs{;_wP{D$j5aicA7@Ia!2)B2Am9R?5!(lCF zF`f2kPh;`<6^2r$dvyQAihh%dv>9s0FS}={C!#yFA5Xnx@5sedrMb>6zP_g&97=&v z)GzIwW0wNbKN|PAnNE2pG%1i9U7_p==rG=W7W{#(J(hf5a7heOTd0L7PBKjx0zU7X zoKy*ocm|X!2@~V(?~XS*3A*yY1RakT{w5grI3YbUy|NsWa;&vkd{U?=5bP6|`QABT z3C|Z*3fn!p46MXvzM9)tKZKvRe(#6HH1?zM+!fUENYb=vxxjrff3B^k&g1eiPu+ zR+m-Xj@FX`8AF?cDt;5}v(}z_V5AXjNb-M;hH=``;Qb2(41gwMZonqz2_ z++Gr*-!k1cT}<^|c3wH--l?g-oR-`&-D+CAs;e&jrw6spOHBlw#v5JMEoFw87nlT> znw?NeVNBuBtJ367$@jEW$B!%%j-$|OROH?(@sj?i`O_mRKZQH6n5JgQ@(byXaY;9q zmQEh$z{lG|hY|P|aY1;+t$K@-SiC?R!%kD6;PD7T^2R0nH$lqt{;3j!lMse$SD4=f zJ*g|3W84?gkChI9yZs&}Y%Tsa_u`Kzq2VX+_aqVzW!FHU-vp!Im7$*-`vHexhni!} zj~O^f7+v!`xcW+-5V%^#@08wnGA9Azlut4xL0+!Y^8C7cZY0snp(ej&n)`xk6?Vr2 ziTtnZ!!l{hq689%i_4E1u3%;YF@yN^@XTGVCQYQz4phl@TjJnF-@hxjX0G^&2bS6r z{yEA|eLHtaSu9CKP`FQf>5KTX*)KlUJJ_eb z2!;EZ_Vz`H>g9IcK1kS z`a|EJ>~?mVLRn>GFG~6Ght>W>mWG}%?1-`{TWLbjgAl$^oi?v*lDg7{?Dv~u+EDI3 z+B6HaO>kbxvuXYe6BDNs(|UN2wb!cde{GMHw-^{Rc52p?zSPuj<>`USi8n)d9NF<$ zOG@TVnSd?go{PJ+yHccll7*rdL3?6hezXjAj$&k(xT_J5Q#QwH`q~EJJM=|H+S}_^V?VbMX2^F0bb|R4Cy}OtLhlTL;v(gJW-PHCz2N}i7t0UUff_H+K0&ztSR0o__Ei#(9tKBH*Dqr~^Xl4It?XOrr|0GYs6txth-JU)9M zDPCT(zrQtcW}TzN9Uk>_ogrNMnfBSz&aVd&y53+|hO?Nk4?ArWJL!kt1b$_w#zHjb z5c~ha?=(PjDF73>pl-Je;ay3Ql^D{t3)FS1YVRCQsT-1tYWN*oSaOnsDp+ ze+$caf)Xlr@RU$o`waEsJucl)`J$A;{^!&_f#6Q16eqs ze}6t9vI`TlrxF!~auAORqX2(7XmvLJl>16F@8#c=~}N(*ba z3mt&k2bwT7ZVHywY~&2TYu8(;;i~9V_Y)@A%|Rx-7#0~!=A4}!&T2#%w-@y2WM?bx z>7`M`6EmM>2x2Q4{fxMhv6VLqm}NIag-loFQ?OmeJ=CNt@f6LGcNsMlA+tL3-W!k` z&YiVVhUmI&ENtG0AI@_1Fd6fFWZV)nRMGAPnfT$IRVdhO`8oDy<%EQKykF4KS}PGeUb8Y7Ht-uu;( z{>p;C()e+`b6vtiWUXhxIBLYg+8Snb-XpnqQ=1yaugGz#nxnLp!V)#o`JP0sCoE=m zqgU;IvVA>Rrdrf_(426$-nBCBJ$mEmdzh%+t%9-V2(ci~S&D-E3S;7DbH53SR&qh{ z4=b8kg!3X^2NNi1e{uHJp_xnMblX--XIzcX6~`4+;Oc5{XgH&tr%E`fXpZnfXr|$` z&)B0J)LKF{Re_wibe0VUk{Q6``iUXnwsr6xO!ADlD{7#0iKQnpA%)=dDIh6R@?1Pewgz2bl)rkcGj%cchyE?eEVt06$T504=&^+KKYyTFsIw?=v@+RhSJ@L!HuCJSkNKhWtlc_~2t$u?tjR5Jhifd@ z@@2K%FFX{#ghoDB`6&<3Rhtat7%x-q$;~t*CQgAM@v8@@iQU~TF1$)2lPyo!+|<2C(lFl| z4+K`z#rv3uI;IGPNUO@m4Ve+fgOkRjARz)r>LI#@O9NT8K+-Jo9Awv5Fm4~qNrUJv z%nk<)inS#r-Va>;R4dXQ>SiaJ)_QC0@%cp>lH^V)Uz9@Cus>v2*T{0*5ovEYEcKAv zaUzv-GXO&V$X+}Zp<{AIZe=`(&tsbTFmh)L?vdvrdtgvesWQZy+vO31_^~%)?(w9s zR4ZA}!q3mlQd?&nG0D6B&0^G(;(nhwb`LroYxXLRd=Tldx{K2l8CJK?V4fO>UZb$8 zSe)B`qROjky5;&go_-|g^Di@u2k&e>p`f2Kk3B^;pA&54=Sq~P7$B)WM)3VY+CFIB zN!62Vpl215r!|gn@$a_UR+rVj5OE+Y?)-U7GZnpR1Kgg@s&}vo!PT{f@TV?lyj$mf z2wwP1>O|q@XH&6^Q)=5$q2H%#n=Wa0Q8w>{fO@`d13LMs_;BF4N;jRTq1JYb=X^cZ zqpC5Aggmca`d=7}3B6e|FnD|9Q0gp7SxDFbm8@=Yepsw}A*Fgdb#I6fUC8%*uFyho zIH+Pbk%?6`iv*Y&f? z(i7F-0F`_S9na)Gc{g8u+^^Urt?@CF>gx-WLB34tbQZWe`riaMyQ*xK9Nj)H40zg$ zu@Uv{5nC0daKAMKWK=dzFR!%!cNH`)21>(=k8 z_9h=dl+qQM_Qj|5T`_KrwtljSUfGql>2~kQ!U`J|t%o#s&u8pQr>%-7reoG=+Bx}ZSVfUfnMQvTaMfmYPU?I{h-?2+ z{gz&D1!o!kdgK?Ot3NTryObajc>m*~ciZTmh^W-Vai0yb^)vS8sHLiv+{!ouFrENs zy*yPspa4J^2C_EdVaaK{uVE!#{}#x*zDL(uh;)$nTngl^5NDvOO3BK3<1t)=E1tIee+Qp~YVc^ald9}{gd zo8MO)gv1!wBFlP1CDm@ESkz51psN??qJc^Li8v8Qt4Qn<6``%dfRpS@+0Wy+pSA^i zcFL`#q1I<~ndS~UhO+87+pAOzSIe=9Pv#`p{JwpfyqFxFf&-I847lQ%@0|a(U7tX{ zW|}pW^3#P>cR}C>@i3%rf=3)%&S97B_Do+*&f`Yir7uBz-0k&^5~Us)q!88Ow}&2_ zrX4ksY!$^{2eICTTvK@+%+W*hN#+ zwZB>p)P7&Un~$N(HF>k)FsDjEW{6~ZNyzfBLhC$HyaL^4T`IXgfp*ZuLTGxK019<}OIoZ))3| zuy4FI$z5%rF-3?9)9|JuX8}mbV@*6CV@%=3O#Mm|+c(?ZN%t-+|JYBxk>KaEy^wdS zS`rf}83kTX+h?yx-TclH71?Vg`HU0C&0?lY3RjqN+l^~&M1vT@un+Zv*dn9r4ajm? z4E*xHbOb6h_)xmp-LCwx#wpvlR*9^ROct$L*H0bOztS{>_y&sSfkJ`bMoJ9}iJsKM zbq~!!EYBRV5bWMUH7DA%w5WzPBD_)nU#qn*z80~rwRm<+^u5{cSKdTdS==Y=98AMi z+z$}#Fd}Xw>LIPMwP#33Hi2fHR_fv$FRT`;Mt>AS=(WplczH5UmeS%*WNxv~U_tJKDPv$S_L9O)@Gc;QC!QggUEx1K&`LB{Vg?o{t+xzi5ow3($e zlBCTq*cX0OC6dq5rvl(7yFJH>TTfN|;aJM~#D)K!J$HAfp-`S3A~SAXx0tJhSyO*) zCbA0TxycXo3#&|#Z87Sndan~|FxhXrR<};W{jA&}W_0ag{O(G?DcZoc!Ic~Aejy3Y zLjVzFhUs32y<|!e+{SL}cCTX$n_OCdkGg;RnA$|6$HO_W)g(~)y8gX=R@7NRAh5Ph% z>qd@bYA0MSlO?cL@Ru_Vlymu$^$t-F&qvR!I_3R*gdI>DtA!k`*7-^}wm?m(ejR;Ycszg~3T{_@g>G!PkpF z+Ee0~8a3xB8`}nLN_ceU^j(0iV-!xB38Q6T#u@uWOd4Kw`swZf^5=p_ZO8WwrkVYy&Ox`o`A8hru6HfGNys-^oVZrP-l5XgT6WYI`us+0Je!(v4&WDrbNPZRtLCwh1wI%GD0f1h z-BPImj?$~PUTIPI#=jJnbdOcS7c9oTFEj+xcCwB)V>LIsirYREUP3$`r&H= zQr|bUsGyd|CUP|~rE7gH!?jxoW2)tZT}B!7Ji4qCV&}BG@hxUqfH1POoSibc5z(%- zXV3O@(Lnmx(5l&gU^;|`jT)T%%L;Qbn=~f3wsD<*aJs1#DY($J`CvnyI%Gr*BAd6U znP8yAE6=#3)&?T=dS{3Kl~&=WcQS=Zw_mFmyP=;eofa$z_M zmh$VHg0xh{ZJsjK71O`C<&zRpNG&B|EAE!SM>LA#oNkHwj7?WdI996KlIJivBv-H* z%=ctoJ5`8&Ai6=gjSi_WFUw9+qL|ca2s)ksh49fH6wGColcjvvLeHRB-cqrtKx(c*vp<`W+bsl1M8z9?@bw-rT*%P z6K?BNvuac}^ImHC1iA4RKyF&!K@eA4n&M^AYIZ!f3+6-E3x1Kxey%L^`X^E(uaq6- zIZk|7|rhy3?_eO!D1-Nmu6h%hwXTxGtv{U_}=}i>z$EbuY{-LMA#ODdIFSnkO zp&k=mQ`CHXT-Yo*eVz35{b9R~Tb19Ji%NByTFJ%HD$*(22IOeKVX?39UC`**!wl_| z!=X2=OU}DOI1yIW=TW*3O|?Jj08_I#QWN{bOLkptpL=P`1rjM;2|>?8tbSYtE)+pc zZ%Tb3TIh66Q;yDQ6Psguu&B9c1b}V4X=a&j_hGUE``Sae` zZap36p&Xg~R!Q`D?2igFP(JyZ005VHa-L-keh*h(8uCgTNki}}{ z@27r`&-{w;3D%oCSKFl9II;E(y*1ur*=DJTny->RS2t%@rY-=RrKjtc3}Hc!onHCx zUl2AOr65sfO*|+%lz;t+ZRU}wQF_Q_bg~!m252-d3>g7BTMF%XoyZWIwIm(Z3bu#Wq5LI`V+2HL1R}$&tw9OB9FTbwc?K*;dA5q`a zAou&E#NzF*wszk12&LYRguXMa2s7pa{U+1M`38G-o3gd{Z&YMdZ z@$hq{SY&+Zs9gX8hd)V;3B^h7f!XL>lxi~nzx#++8+|uwa<-(U-2<=y?Txeeq}^R0sxiT zDu=&ZR?w$-Nt_Rv9G?G6r#S=%m>k z&v6iz{6ye5{2stdr=J5C-|v1ZsoZrcMN0M;k2rtmx5?{(*ED$fhdcZxFn0>b*~~os zrMEuO${oL>1;!mp1jE_B&K>Os48}L@%a`diMcPNU;nsoI)%Y@I_cLB=x@5jM=ziJx z;+49G)=4ynrmoC4L!YhU*a}0xHkp#OaEZm|WMouvd;XM?GPiB{acDXJRosspRlJi-dv?#2kmcb(+KNbFP-?jRtX_c9?n$>& zuL&FaB!%iEWiL=Nka3nr;Y1HGFZb3U#RvZW*yk{FG;oNL;193*O;G;lG`TonXa^5u z9{pvC{3giw#K6->#r^@ofk4w-H>iN&wH=&N=+p-Tazi&DyWX&@;wmzYo9ysymV}Hi z@n+~dY)?0v0uR-<_WZJ80CKI11Q>;)I@E75j_t#OQGOI^zNe=_#Z{RJ7ug_Vx1HH; z8gZ#CMf#Ysz{F~e?{60R!@-08VW7)gNa^V>2|r;=1vVvn|7JZkiO=;Gd{Vv<@25DEo~YubX!EE!|Q-V&8yE}bVRCFk%2{tc^?;BvAer_rJfmn zajfL2o_c;*FB3;B2FGMOgYrbSrGiKNOm|St?1JiW@IKGG@Mg{c> z^HGZbN{7C_Y-;A z-lo>Bf;P0B~?P|44Id5%51rM!kUFN+`dF^kG^5@L{o1+|0noQvR7{)lg;|L^|z*JgrE8mIAbp`7Y|uk#`yFZI^O@h3;-S&Ng4+kq7WVriK*vwpkr z7dL9ft`KJV&t+GS6q5jw#ofPEq?j{tCYdx{U7pOV3{zCpHq|d)~OeUvY%q z-^Ua1j7b94@S=+H@Syv0zX@&~_W5r0CVzNILp$gDfG@r4NE=#S+1~u}#O#aW9S6lm zW;&s6hnv_Etthhc!gqp+T|Q*vfQJ1@X;mb~Q84>zf`+R@`uXP*9LzAB z!w!A-C4&bCOB|WQ2Md8T0UIoB^xt zlR=DAjWnL><04-wCBslMAMQrRZpg*~^ISpN!34<-9YPp&s~hz}vQ9-ahc@ z+=89`NYV?qMHTpoyCGx0Q=-e3>k`H`#m!3AgRx7chMt*Nm>j!o%K0EBS|H^7lcKtJ zSUj2%N{6pjSz*Fvh>NV$FEk%@YQ7}fUpe!>{8+ZjPT)@9S9I{&f#8VXcEGzg0R;aG zVWz+6T>O=r=YQ*$|85~4!7cXxt#AftdIW= U{QhU3!}@pPiT{`PIlm|V2X221J4lDn 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 M;JyCV_snDe2la%mzyJUM literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/AppScope/resources/base/media/layered_image.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/AppScope/resources/base/media/layered_image.json new file mode 100644 index 0000000..fb49920 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/AppScope/resources/base/media/layered_image.json @@ -0,0 +1,7 @@ +{ + "layered-image": + { + "background" : "$media:background", + "foreground" : "$media:foreground" + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/README.md b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/README.md new file mode 100644 index 0000000..efe7b55 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/README.md @@ -0,0 +1,83 @@ +# ArkTS模块化运行简介 + +### 介绍 + +为了解决大型、复杂应用开发过程中,部分代码编译时被多次拷贝导致包体积增大、文件依赖、代码与资源共享困难以及单例和全局变量污染等问题,同时为了简化开发者代码编写与功能维护,ArkTS支持应用模块化编译、打包和运行,方便开发者编写和维护代码。 + +该工程中展示的代码详细描述可查如下链接: + +- [模块化运行简介](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/arkts-utils/module-principle.md) + +### 效果预览 + +| 首页 | +| -------------------------------------------------------------------------- | +| | + +### 使用说明 + +1. 运行Index主界面。 +2. 执行结果会即时反馈在屏幕中央,并在控制台打印log。 +3. 运行测试用例ModulePrinciple.test.ets文件对页面代码进行测试可以全部通过。 + +### 工程目录 + +``` +entry/src/ + ├── main + │ ├── cpp + │ │ ├── types + │ │ │ ├── libentry + │ │ │ │ ├── Index.d.ts // 提供JS侧的接口方法 + │ │ │ │ ├── oh-package.json5 // 将index.d.ts与cpp文件关联 + │ │ ├── CMakeLists.txt // 配置CMake打包参数 + │ │ ├── napi_init.cpp // 实现Native侧的add接口 + │ ├── ets + │ │ ├── entryability + │ │ ├── entrybackupability + │ │ ├── pages + │ │ | ├── CounterExample // 反例 + | │ │ | ├── test1.ets // 使用命名空间导出 + | │ │ | ├── test2.ets // 使用命名空间导入 + │ │ | ├── example.json // json文件 + │ │ | ├── test.ets // 导入native模块 + │ │ | └── Index.ets // 首页 + │ ├── module.json5 + │ └── resources + ├── ohosTest + │ ├── ets + │ │ └── test + │ │ ├── Ability.test.ets + │ │ ├── ModulePrinciple.test.ets // 自动化测试代码 + │ │ └── List.test +``` + +### 相关权限 + +不涉及。 + +### 依赖 + +不涉及。 + +### 约束与限制 + +1. 本示例仅支持标准系统上运行,支持设备:华为手机。 + +2. HarmonyOS系统:HarmonyOS 6.0.0及以上。 + +3. DevEco Studio版本:DevEco Studio 6.0.0及以上。 + +4. HarmonyOS SDK版本:HarmonyOS 6.0.0及以上。 + +### 下载 + +如需单独下载本工程,执行如下命令: + +``` +git init +git config core.sparsecheckout true +echo ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple > .git/info/sparse-checkout +git remote add origin https://gitee.com/harmonyos_samples/guide-snippets.git +git pull origin master +``` diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/build-profile.json5 new file mode 100644 index 0000000..4954f27 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/build-profile.json5 @@ -0,0 +1,58 @@ +/* + * 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": "6.0.0(20)", + "targetSdkVersion": "6.0.0(20)", + "runtimeOS": "HarmonyOS", + "buildOption": { + "nativeCompiler": "BiSheng", + "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/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/code-linter.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/code-linter.json5 new file mode 100644 index 0000000..ed05653 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/code-linter.json5 @@ -0,0 +1,47 @@ +/* + * 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. + */ + +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + "@security/no-unsafe-aes": "error", + "@security/no-unsafe-hash": "error", + "@security/no-unsafe-mac": "warn", + "@security/no-unsafe-dh": "error", + "@security/no-unsafe-dsa": "error", + "@security/no-unsafe-ecdsa": "error", + "@security/no-unsafe-rsa-encrypt": "error", + "@security/no-unsafe-rsa-sign": "error", + "@security/no-unsafe-rsa-key": "error", + "@security/no-unsafe-dsa-key": "error", + "@security/no-unsafe-dh-key": "error", + "@security/no-unsafe-3des": "error" + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/.gitignore new file mode 100644 index 0000000..e2713a2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/build-profile.json5 new file mode 100644 index 0000000..48a7913 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/build-profile.json5 @@ -0,0 +1,58 @@ +/* + * 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": { + "path": "./src/main/cpp/CMakeLists.txt", + "arguments": "", + "cppFlags": "", + "abiFilters": [ + "x86_64", + "arm64-v8a" + ] + } + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + }, + "nativeLib": { + "debugSymbol": { + "strip": true, + "exclude": [] + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/hvigorfile.ts new file mode 100644 index 0000000..cfa8a00 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/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. */ +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/obfuscation-rules.txt b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/obfuscation-rules.txt new file mode 100644 index 0000000..272efb6 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/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/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/oh-package.json5 new file mode 100644 index 0000000..118bdd4 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/oh-package.json5 @@ -0,0 +1,26 @@ +/* + * 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": { + "libentry.so": "file:./src/main/cpp/types/libentry" + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/CMakeLists.txt b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/CMakeLists.txt new file mode 100644 index 0000000..c0d30fe --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/CMakeLists.txt @@ -0,0 +1,15 @@ +# the minimum version of CMake. +cmake_minimum_required(VERSION 3.5.0) +project(MyApplication) + +set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}) + +if(DEFINED PACKAGE_FIND_FILE) + include(${PACKAGE_FIND_FILE}) +endif() + +include_directories(${NATIVERENDER_ROOT_PATH} + ${NATIVERENDER_ROOT_PATH}/include) + +add_library(entry SHARED napi_init.cpp) +target_link_libraries(entry PUBLIC libace_napi.z.so) \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/napi_init.cpp b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/napi_init.cpp new file mode 100644 index 0000000..820107b --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/napi_init.cpp @@ -0,0 +1,67 @@ +/* + * 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. + */ + +#include "napi/native_api.h" + +static napi_value Add(napi_env env, napi_callback_info info) +{ + size_t argc = 2; + napi_value args[2] = {nullptr}; + + napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); + + napi_valuetype valuetype0; + napi_typeof(env, args[0], &valuetype0); + + napi_valuetype valuetype1; + napi_typeof(env, args[1], &valuetype1); + + double value0; + napi_get_value_double(env, args[0], &value0); + + double value1; + napi_get_value_double(env, args[1], &value1); + + napi_value sum; + napi_create_double(env, value0 + value1, &sum); + + return sum; +} + +EXTERN_C_START +static napi_value Init(napi_env env, napi_value exports) +{ + napi_property_descriptor desc[] = { + { "add", nullptr, Add, nullptr, nullptr, nullptr, napi_default, nullptr } + }; + napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc); + return exports; +} +EXTERN_C_END + +static napi_module demoModule = { + .nm_version = 1, + .nm_flags = 0, + .nm_filename = nullptr, + .nm_register_func = Init, + .nm_modname = "entry", + .nm_priv = ((void*)0), + .reserved = { 0 }, +}; + +extern "C" __attribute__((constructor)) void RegisterEntryModule(void) +{ + napi_module_register(&demoModule); +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/types/libentry/Index.d.ts b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/types/libentry/Index.d.ts new file mode 100644 index 0000000..5c14aff --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/types/libentry/Index.d.ts @@ -0,0 +1,16 @@ +/* + * 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. + */ + +export const add: (a: number, b: number) => number; \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/types/libentry/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/types/libentry/oh-package.json5 new file mode 100644 index 0000000..6abf3b7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/cpp/types/libentry/oh-package.json5 @@ -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. + */ + +{ + "name": "libentry.so", + "types": "./Index.d.ts", + "version": "1.0.0", + "description": "Please describe the basic information." +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/entryability/EntryAbility.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 0000000..d3ee54d --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/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/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 0000000..0a97e21 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,31 @@ +/* + * 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 { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +const DOMAIN = 0x0000; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(DOMAIN, 'testTag', 'onBackup ok'); + await Promise.resolve(); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(DOMAIN, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + await Promise.resolve(); + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/CounterExample/test1.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/CounterExample/test1.ets new file mode 100644 index 0000000..39fd259 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/CounterExample/test1.ets @@ -0,0 +1,18 @@ +/* + * 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. + */ + +// [Start export_using_namespaces] +export * from 'libentry.so' // 使用命名空间导出 +// [End export_using_namespaces] diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/CounterExample/test2.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/CounterExample/test2.ets new file mode 100644 index 0000000..0123028 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/CounterExample/test2.ets @@ -0,0 +1,44 @@ +/* + * 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. + */ + +@Entry +@Component +export struct Test2 { + @State message: string = 'Native module counter example'; + + build() { + Row() { + Column() { + Text(this.message) + .fontSize($r('app.float.page_text_font_size')) + .fontWeight(FontWeight.Bold) + .onClick(() => { + // [Start counter_example] + import('./test1').then((ns: ESObject) => { + // 动态加载无法获取ns对象 + // 如希望使用该方式加载Native模块,需将test1.ets中的导出变更为具名导出或默认导出 + let res: number = ns.add(2, 3); + this.message = 'res: ' + res; + }).catch((err: Error) => { + this.message = '加载失败: ' + err.message; + }) + // [End counter_example] + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/Index.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/Index.ets new file mode 100644 index 0000000..b6b6153 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,40 @@ +/* + * 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 { Test1 } from './test'; +import { Test2 } from './CounterExample/test2'; +// [Start import_json] +import data from './example.json'; +// [End import_json] + +@Entry +@Component +struct Index { + private jsonData: string = JSON.stringify(data); + + build() { + Row() { + Column() { + Test1().height('20%'); + Test2().height('20%') + Text(this.jsonData) + .fontWeight(FontWeight.Bold) + .fontSize($r('app.float.page_text_font_size')) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/example.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/example.json new file mode 100644 index 0000000..885e71c --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/example.json @@ -0,0 +1,3 @@ +{ + "a": 1 +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/test.ets new file mode 100644 index 0000000..098600a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/ets/pages/test.ets @@ -0,0 +1,40 @@ +/* + * 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. + */ + +// [Start native_module_example] +import { add } from 'libentry.so' + +@Entry +@Component +export struct Test1 { + @State message: string = 'Native module example'; + + build() { + Row() { + Column() { + Text(this.message) + .fontSize($r('app.float.page_text_font_size')) + .fontWeight(FontWeight.Bold) + .onClick(() => { + let res = add(2, 3); + this.message = 'res: ' + res; + }) + } + .width('100%') + } + .height('100%') + } +} +// [End native_module_example] diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/module.json5 new file mode 100644 index 0000000..cb355a9 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/module.json5 @@ -0,0 +1,65 @@ +/* + * 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": [ + "default" + ], + "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": [ + "ohos.want.action.home" + ] + } + ] + } + ], + "extensionAbilities": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/element/color.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/element/color.json new file mode 100644 index 0000000..3c71296 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/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/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/element/float.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/element/float.json new file mode 100644 index 0000000..33ea223 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/element/float.json @@ -0,0 +1,8 @@ +{ + "float": [ + { + "name": "page_text_font_size", + "value": "50fp" + } + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..072a210 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/element/string.json @@ -0,0 +1,20 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ModulePrinciple" + }, + { + "name": "Native_module_example", + "value": "Native模块示例" + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/media/background.png b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/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/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/profile/backup_config.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 0000000..78f40ae --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/profile/main_pages.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 0000000..1898d94 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/Index" + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/dark/element/color.json b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/main/resources/dark/element/color.json new file mode 100644 index 0000000..79b11c2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/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/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/mock/Libentry.mock.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/mock/Libentry.mock.ets new file mode 100644 index 0000000..eebf1ed --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/mock/Libentry.mock.ets @@ -0,0 +1,22 @@ +/* + * 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. + */ + +const NativeMock: Record = { + 'add': (a: number, b: number) => { + return a + b; + }, +}; + +export default NativeMock; \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/mock/mock-config.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/mock/mock-config.json5 new file mode 100644 index 0000000..2c7d2ba --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/mock/mock-config.json5 @@ -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. + */ + +{ + "libentry.so": { + "source": "src/mock/Libentry.mock.ets" + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/ets/test/Ability.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 0000000..0f8ce9a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/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/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/ets/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 0000000..704c430 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/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 modulePrincipleTest from './ModulePrinciple.test'; + +export default function testsuite() { + modulePrincipleTest(); +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/ets/test/ModulePrinciple.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/ets/test/ModulePrinciple.test.ets new file mode 100644 index 0000000..fdc2a1d --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/ets/test/ModulePrinciple.test.ets @@ -0,0 +1,58 @@ +/* + * 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, it, expect } from '@ohos/hypium'; +import { abilityDelegatorRegistry, Driver, MatchPattern, ON } from '@kit.TestKit'; +import { UIAbility, Want } from '@kit.AbilityKit'; + +const delegator: abilityDelegatorRegistry.AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); +const bundleName = abilityDelegatorRegistry.getArguments().bundleName; + +export default function lazyImportTest() { + describe('modulePrincipleTest', () => { + + it('testModulePrinciple001', 0, async (done: Function) => { + console.info('uitest: testModulePrinciple001 begin'); + const want: Want = { + bundleName: bundleName, + abilityName: 'EntryAbility' + } + await delegator.startAbility(want); + const driver = Driver.create(); + await driver.delayMs(1000); + + const ability: UIAbility = await delegator.getCurrentTopAbility(); + console.info('get top ability'); + expect(ability.context.abilityInfo.name).assertEqual('EntryAbility'); + await driver.delayMs(1000); + + await driver.assertComponentExist(ON.text('{"a":1}')); + + const text1 = await driver.findComponent(ON.text('Native module example')); + const text2 = await driver.findComponent(ON.text('Native module counter example')); + + await text1.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('res: 5')); + + await text2.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('加载失败',MatchPattern.CONTAINS)); + + console.info('uitest: testModulePrinciple001 end'); + done(); + }) + }) +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/module.json5 new file mode 100644 index 0000000..84d3058 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/ohosTest/module.json5 @@ -0,0 +1,26 @@ +/* + * 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": [ + "default" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/test/List.test.ets new file mode 100644 index 0000000..f1186b1 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/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/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/test/LocalUnit.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/entry/src/test/LocalUnit.test.ets new file mode 100644 index 0000000..7fc57c7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/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/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/hvigor/hvigor-config.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/hvigor/hvigor-config.json5 new file mode 100644 index 0000000..004fb72 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/hvigor/hvigor-config.json5 @@ -0,0 +1,38 @@ +/* + * 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.1.1", + "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 */ + // "optimizationStrategy": "memory" /* Define the optimization strategy. Value: [ "memory" | "performance" ]. Default: "memory" */ + }, + "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/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/hvigorfile.ts new file mode 100644 index 0000000..e3340f0 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/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. */ +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/oh-package.json5 new file mode 100644 index 0000000..bacd254 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/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.1.1", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.21", + "@ohos/hamock": "1.0.0" + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/ohosTest.md b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/ohosTest.md new file mode 100644 index 0000000..743129e --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/ohosTest.md @@ -0,0 +1,10 @@ +# 模块化运行简介测试用例归档 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 是否自动化 | 测试结果 | +| ------------------ | ---------------- | --------------------------------------- | ------------------- | ---------- | -------- | +| 拉起应用 | 设备正常运行 | | 成功拉起应用 | 是 | Pass | +| 加载Native模块正例 | 跳转按钮位于主页 | 点击'Native module example'文本 | 页面文本变化 | 是 | Pass | +| 加载Native模块反例 | 跳转按钮位于主页 | 点击'Native module counter example'文本 | 页面文本变化 | 是 | Pass | +| 加载JSON文件 | 位于主页 | 位于主页 | 页面文本为'{"a":1}' | 是 | Pass | \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/screenshots/ModulePrinciple.png b/ArkTS/ArkTSRuntime/ArkTSModule/ModulePrinciple/screenshots/ModulePrinciple.png new file mode 100644 index 0000000000000000000000000000000000000000..aa1f089f44aedb193a4afc74aa906bae6b82535c GIT binary patch literal 73535 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 O`T3Ud&5|4UfBO%en=7OM literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/.gitignore new file mode 100644 index 0000000..d2ff201 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/.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/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/app.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/app.json5 new file mode 100644 index 0000000..92b273d --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/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.staticimportnativemodule", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_layered_image", + "label": "$string:app_name" + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/resources/base/element/string.json new file mode 100644 index 0000000..1096773 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "StaticImportNativeModule" + } + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/resources/base/media/app_background.png b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/resources/base/media/app_background.png new file mode 100644 index 0000000000000000000000000000000000000000..923f2b3f27e915d6871871deea0420eb45ce102f GIT binary patch literal 91942 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 M;JyCV_snDe2la%mzyJUM literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/resources/base/media/app_layered_image.json b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/resources/base/media/app_layered_image.json new file mode 100644 index 0000000..b71c161 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/AppScope/resources/base/media/app_layered_image.json @@ -0,0 +1,7 @@ +{ + "layered-image": + { + "background" : "$media:app_background", + "foreground" : "$media:app_foreground" + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/README.md b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/README.md new file mode 100644 index 0000000..d0a2c4c --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/README.md @@ -0,0 +1,97 @@ +# 静态方式加载native模块 + +### 介绍 + +在ECMAScript 6模块设计中,使用import语法加载其他文件导出的内容是ECMA规范定义的语法规则。本项目介绍了如何使用该功能导入native模块(so)导出的内容。 + +- [静态方式加载native模块](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/arkts-utils/arkts-import-native-module.md) + +### 效果预览 + +| 首页 | 依次点击按钮后结果图 | +| ------------------------------------------------------------- |-----------------------------------------------------------------------------| +| | | + +### 使用说明 + +1. 运行Index主界面。 +2. 页面中组件呈现静态方式加载native模块效果,依次点击button,跳转页面依次现实显示'5','5','5','5','5','hilog.info','5'。 +3. 运行测试用例StaticImportNativeModule.test.ets文件对页面代码进行测试可以全部通过。 + +### 工程目录 + +``` +entry/ +├── src/ +│ ├── main/ +│ │ ├── cpp/ +│ │ ├── ets/ +│ │ │ ├── entryability/ +│ │ │ ├── entrybackupability/ +│ │ │ ├── pages/ +│ │ │ │ ├── DirectImport/ +│ │ │ │ │ └── test.ets +│ │ │ │ ├── DefaultImport/ +│ │ │ │ │ └── test.ets +│ │ │ │ ├── NamedImport/ +│ │ │ │ │ └── test.ets +│ │ │ │ ├── NamespaceImport/ +│ │ │ │ │ └── test.ets +│ │ │ │ ├── DynamicImport/ +│ │ │ │ │ └── DirectImport/ +│ │ │ │ │ └── test.ets +│ │ │ │ ├── IndirectImport/ +│ │ │ │ │ ├── NegativeExample.ets +│ │ │ │ │ ├── test1.ets +│ │ │ │ │ └── test2.ets +│ │ │ │ ├── ExportNamedAndImport/ +│ │ │ │ │ ├── test1.ets +│ │ │ │ │ └── test2.ets +│ │ │ │ ├── ExportNamespaceAndImport/ +│ │ │ │ │ ├── NegativeExample.ets +│ │ │ │ │ ├── test1.ets +│ │ │ │ │ └── test2.ets +│ │ │ │ └── Index.ets +│ │ │ ├── util/ +│ │ │ ├── resources/ +│ │ │ └── module.json5 +│ │ └── mock/ +│ └── ohosTest/ +│ ├── ets/ +│ │ └── test/ +│ │ ├── Ability.test.ets +│ │ ├── List.test.ets +│ │ └── StaticImportNativeModule.test.ets +│ ├── module.json5 +│ └── test/ +``` + +### 相关权限 + +不涉及。 + +### 依赖 + +不涉及。 + +### 约束与限制 + +1. 本示例仅支持标准系统上运行,支持设备:华为手机。 + +2. HarmonyOS系统:HarmonyOS 6.0.0及以上。 + +3. DevEco Studio版本:DevEco Studio 6.0.0及以上。 + +4. HarmonyOS SDK版本:HarmonyOS 6.0.0及以上。 + +### 下载 + +如需单独下载本工程,执行如下命令: + +``` +git init +git config core.sparsecheckout true +echo ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule > .git/info/sparse-checkout +git remote add origin https://gitee.com/harmonyos_samples/guide-snippets.git +git pull origin master +``` diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/build-profile.json5 new file mode 100644 index 0000000..15bb241 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/build-profile.json5 @@ -0,0 +1,57 @@ +/* + * 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": "6.0.0(20)", + "targetSdkVersion": "6.0.0(20)", + "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/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/code-linter.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/code-linter.json5 new file mode 100644 index 0000000..ed05653 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/code-linter.json5 @@ -0,0 +1,47 @@ +/* + * 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. + */ + +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + "@security/no-unsafe-aes": "error", + "@security/no-unsafe-hash": "error", + "@security/no-unsafe-mac": "warn", + "@security/no-unsafe-dh": "error", + "@security/no-unsafe-dsa": "error", + "@security/no-unsafe-ecdsa": "error", + "@security/no-unsafe-rsa-encrypt": "error", + "@security/no-unsafe-rsa-sign": "error", + "@security/no-unsafe-rsa-key": "error", + "@security/no-unsafe-dsa-key": "error", + "@security/no-unsafe-dh-key": "error", + "@security/no-unsafe-3des": "error" + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/.gitignore b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/.gitignore new file mode 100644 index 0000000..e2713a2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/build-profile.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/build-profile.json5 new file mode 100644 index 0000000..48a7913 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/build-profile.json5 @@ -0,0 +1,58 @@ +/* + * 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": { + "path": "./src/main/cpp/CMakeLists.txt", + "arguments": "", + "cppFlags": "", + "abiFilters": [ + "x86_64", + "arm64-v8a" + ] + } + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + }, + "nativeLib": { + "debugSymbol": { + "strip": true, + "exclude": [] + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/hvigorfile.ts new file mode 100644 index 0000000..cfa8a00 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/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. */ +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/obfuscation-rules.txt b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/obfuscation-rules.txt new file mode 100644 index 0000000..272efb6 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/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/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/oh-package.json5 new file mode 100644 index 0000000..118bdd4 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/oh-package.json5 @@ -0,0 +1,26 @@ +/* + * 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": { + "libentry.so": "file:./src/main/cpp/types/libentry" + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/CMakeLists.txt b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/CMakeLists.txt new file mode 100644 index 0000000..f67184c --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/CMakeLists.txt @@ -0,0 +1,15 @@ +# the minimum version of CMake. +cmake_minimum_required(VERSION 3.5.0) +project(StaticImportNativeModule) + +set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}) + +if(DEFINED PACKAGE_FIND_FILE) + include(${PACKAGE_FIND_FILE}) +endif() + +include_directories(${NATIVERENDER_ROOT_PATH} + ${NATIVERENDER_ROOT_PATH}/include) + +add_library(entry SHARED napi_init.cpp) +target_link_libraries(entry PUBLIC libace_napi.z.so) \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/napi_init.cpp b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/napi_init.cpp new file mode 100644 index 0000000..820107b --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/napi_init.cpp @@ -0,0 +1,67 @@ +/* + * 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. + */ + +#include "napi/native_api.h" + +static napi_value Add(napi_env env, napi_callback_info info) +{ + size_t argc = 2; + napi_value args[2] = {nullptr}; + + napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); + + napi_valuetype valuetype0; + napi_typeof(env, args[0], &valuetype0); + + napi_valuetype valuetype1; + napi_typeof(env, args[1], &valuetype1); + + double value0; + napi_get_value_double(env, args[0], &value0); + + double value1; + napi_get_value_double(env, args[1], &value1); + + napi_value sum; + napi_create_double(env, value0 + value1, &sum); + + return sum; +} + +EXTERN_C_START +static napi_value Init(napi_env env, napi_value exports) +{ + napi_property_descriptor desc[] = { + { "add", nullptr, Add, nullptr, nullptr, nullptr, napi_default, nullptr } + }; + napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc); + return exports; +} +EXTERN_C_END + +static napi_module demoModule = { + .nm_version = 1, + .nm_flags = 0, + .nm_filename = nullptr, + .nm_register_func = Init, + .nm_modname = "entry", + .nm_priv = ((void*)0), + .reserved = { 0 }, +}; + +extern "C" __attribute__((constructor)) void RegisterEntryModule(void) +{ + napi_module_register(&demoModule); +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/types/libentry/Index.d.ts b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/types/libentry/Index.d.ts new file mode 100644 index 0000000..5c14aff --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/types/libentry/Index.d.ts @@ -0,0 +1,16 @@ +/* + * 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. + */ + +export const add: (a: number, b: number) => number; \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/types/libentry/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/types/libentry/oh-package.json5 new file mode 100644 index 0000000..6abf3b7 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/cpp/types/libentry/oh-package.json5 @@ -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. + */ + +{ + "name": "libentry.so", + "types": "./Index.d.ts", + "version": "1.0.0", + "description": "Please describe the basic information." +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/entryability/EntryAbility.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 0000000..d3ee54d --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/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/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 0000000..0a97e21 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,31 @@ +/* + * 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 { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +const DOMAIN = 0x0000; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(DOMAIN, 'testTag', 'onBackup ok'); + await Promise.resolve(); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(DOMAIN, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + await Promise.resolve(); + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DirectImport/DefaultImport/test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DirectImport/DefaultImport/test.ets new file mode 100644 index 0000000..623029c --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DirectImport/DefaultImport/test.ets @@ -0,0 +1,39 @@ +/* + * 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 entry from 'libentry.so' +entry.add(2, 3); + +let res: number = 0; + +res = entry.add(2, 3); +console.info('test result',res); + +@Entry +@Component +struct Test { + @State result: number = res; + + build() { + Row() { + Column() { + Text(String(this.result)) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + }.height('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DirectImport/NamedImport/test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DirectImport/NamedImport/test.ets new file mode 100644 index 0000000..c76dee5 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DirectImport/NamedImport/test.ets @@ -0,0 +1,39 @@ +/* + * 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 { add } from 'libentry.so' +add(2, 3); + +let res: number; + +res = add(2, 3); +console.info('test result',res); + +@Entry +@Component +struct Notes { + @State result: number = res; + + build() { + Row() { + Column() { + Text(String(this.result)) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + }.height('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DirectImport/NamespaceImport/test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DirectImport/NamespaceImport/test.ets new file mode 100644 index 0000000..0a69f1f --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DirectImport/NamespaceImport/test.ets @@ -0,0 +1,39 @@ +/* + * 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 * as add from 'libentry.so' +add.add(2, 3); + +let res: number; + +res = add.add(2, 3); +console.info('test result',res); + +@Entry +@Component +struct Notes { + @State result: number = res; + + build() { + Row() { + Column() { + Text(String(this.result)) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + }.height('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/DirectImport/test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/DirectImport/test.ets new file mode 100644 index 0000000..75ecc56 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/DirectImport/test.ets @@ -0,0 +1,39 @@ +/* + * 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. + */ + +let res: number = 0; +import('libentry.so').then((ns:ESObject) => { + ns.default.add(2, 3); + + res = ns.default.add(2, 3); + console.info('rest result',res); +}) + +@Entry +@Component +struct TEST { + @State result: number = res; + + build() { + Row() { + Column() { + Text(String(this.result)) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + }.height('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/IndirectImport/NegativeExample.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/IndirectImport/NegativeExample.ets new file mode 100644 index 0000000..4861bcf --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/IndirectImport/NegativeExample.ets @@ -0,0 +1,24 @@ +/* + * 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. + */ + +/* +// test1.ets +export * from 'libentry.so' + +// test2.ets +import('./test1').then((ns:ESObject) => { + // 无法获取ns对象 +}) +*/ \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/IndirectImport/test1.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/IndirectImport/test1.ets new file mode 100644 index 0000000..c106c2b --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/IndirectImport/test1.ets @@ -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. + */ + +import add from 'libentry.so' +export { add } \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/IndirectImport/test2.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/IndirectImport/test2.ets new file mode 100644 index 0000000..5859936 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/DynamicImport/IndirectImport/test2.ets @@ -0,0 +1,41 @@ +/* + * 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. + */ + +let res_: number = 0; + +import('./test1').then((ns:ESObject) => { + ns.add.add(2, 3); + + let res: number = ns.add.add(2, 3); + res_ = res; + console.info('rest result',res); +}) + +@Entry +@Component +struct Notes { + @State result: number = res_; + + build() { + Row() { + Column() { + Text(String(this.result)) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + }.height('100%') + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/Index.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/Index.ets new file mode 100644 index 0000000..7ef7978 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,70 @@ +/* + * 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 testNapi from 'libentry.so'; +import { CommonButton } from '../util/CommonButton'; + +const DOMAIN = 0x0000; + +@Entry +@Component +struct Index { + @State message: string = 'Hello World'; + + build() { + Row() { + Column() { + Text(this.message) + .fontSize($r('app.float.page_text_font_size')) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.message = 'Welcome'; + hilog.info(DOMAIN, 'testTag', 'Test NAPI 2 + 3 = %{public}d', testNapi.add(2, 3)); + }) + CommonButton({ + buttonName: 'default_import', + buttonUrl: 'pages/DirectImport/DefaultImport/test' + }); + CommonButton({ + buttonName: 'named_import', + buttonUrl: 'pages/DirectImport/NamedImport/test' + }); + CommonButton({ + buttonName: 'namespace_import', + buttonUrl: 'pages/DirectImport/NamespaceImport/test' + }); + CommonButton({ + buttonName: 'direct_import', + buttonUrl: 'pages/DynamicImport/DirectImport/test' + }); + CommonButton({ + buttonName: 'indirect_import', + buttonUrl: 'pages/DynamicImport/IndirectImport/test2' + }); + CommonButton({ + buttonName: 'export_named_and_import', + buttonUrl: 'pages/IndirectImport/ExportNamedAndImport/test2' + }); + CommonButton({ + buttonName: 'export_namespace_and_import', + buttonUrl: 'pages/IndirectImport/ExportNamespaceAndImport/test2' + }); + } + .width('100%') + } + .height('100%') + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamedAndImport/test1.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamedAndImport/test1.ets new file mode 100644 index 0000000..4263337 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamedAndImport/test1.ets @@ -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. + */ + +import hilog from '@ohos.hilog' +export { hilog } \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamedAndImport/test2.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamedAndImport/test2.ets new file mode 100644 index 0000000..7019a1e --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamedAndImport/test2.ets @@ -0,0 +1,32 @@ +/* + * 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 './test1' +hilog.info(0x000, 'testTag', '%{public}s', 'test'); + +@Entry +@Component +struct Notes { + build() { + Row() { + Column() { + Text('hilog.info') + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + }.height('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamespaceAndImport/NegativeExample.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamespaceAndImport/NegativeExample.ets new file mode 100644 index 0000000..0e0bb51 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamespaceAndImport/NegativeExample.ets @@ -0,0 +1,23 @@ +/* + * 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. + */ + +/* +// test1.ets +export * from 'libentry.so' + +// test2.ets +import * as add from './test1' +// 无法获取add对象 +*/ \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamespaceAndImport/test1.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamespaceAndImport/test1.ets new file mode 100644 index 0000000..8312984 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamespaceAndImport/test1.ets @@ -0,0 +1,16 @@ +/* + * 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. + */ + +export * from 'libentry.so' \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamespaceAndImport/test2.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamespaceAndImport/test2.ets new file mode 100644 index 0000000..fc03d7d --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/pages/IndirectImport/ExportNamespaceAndImport/test2.ets @@ -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. + */ + +import { add } from './test1' +add(2, 3); + +let res: number = add(2, 3); +console.info('rest result',res); + +@Entry +@Component +struct Notes { + @State result: number = res; + + build() { + Row() { + Column() { + Text(String(this.result)) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + }.height('100%') + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/util/CommonButton.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/util/CommonButton.ets new file mode 100644 index 0000000..6f452be --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/ets/util/CommonButton.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. + */ + +// [StartExclude button_component] +import router from '@ohos.router'; + +@Component +export struct CommonButton { + @State buttonName: string = ''; + @State buttonUrl: string = ''; + @State data: string = ''; + + build() { + Text(this.buttonName) + .id(this.buttonName) + .padding(px2vp(5)) + .fontSize(px2fp(25)) + .width('45%') + .height(36) + .backgroundColor('#04a4fc') + .fontColor(Color.White) + .textAlign(TextAlign.Center) + .borderRadius(15) + .margin(px2vp(5)) + .onClick(() => { + router.pushUrl({ + url: this.buttonUrl, + params: { + text: this.data, + buttonName: this.buttonName + } + }); + }) + } +} +// [EndExclude button_component] diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/module.json5 new file mode 100644 index 0000000..4144486 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/module.json5 @@ -0,0 +1,66 @@ +/* + * 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": [ + "default", + "tablet" + ], + "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": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/element/color.json b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/element/color.json new file mode 100644 index 0000000..3c71296 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/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/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/element/float.json b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/element/float.json new file mode 100644 index 0000000..33ea223 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/element/float.json @@ -0,0 +1,8 @@ +{ + "float": [ + { + "name": "page_text_font_size", + "value": "50fp" + } + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/element/string.json b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..1b8c2d6 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/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": "StaticImportNativeModule" + } + ] +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/media/background.png b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/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/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/profile/backup_config.json b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 0000000..78f40ae --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/profile/main_pages.json b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 0000000..e3cb2d8 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,12 @@ +{ + "src": [ + "pages/Index", + "pages/DirectImport/DefaultImport/test", + "pages/DirectImport/NamedImport/test", + "pages/DirectImport/NamespaceImport/test", + "pages/DynamicImport/DirectImport/test", + "pages/DynamicImport/IndirectImport/test2", + "pages/IndirectImport/ExportNamedAndImport/test2", + "pages/IndirectImport/ExportNamespaceAndImport/test2" + ] +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/dark/element/color.json b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/main/resources/dark/element/color.json new file mode 100644 index 0000000..79b11c2 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/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/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/ets/test/Ability.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 0000000..0f8ce9a --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/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/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/ets/test/List.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 0000000..d59981b --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/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 staticImportNativeModuleTest from './StaticImportNativeModule.test'; + +export default function testsuite() { + staticImportNativeModuleTest(); +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/ets/test/StaticImportNativeModule.test.ets b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/ets/test/StaticImportNativeModule.test.ets new file mode 100644 index 0000000..07e7e23 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/ets/test/StaticImportNativeModule.test.ets @@ -0,0 +1,86 @@ +/* + * 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, it, expect } from '@ohos/hypium'; +import { abilityDelegatorRegistry, Driver, ON } from '@kit.TestKit'; +import { UIAbility, Want } from '@kit.AbilityKit'; + +const delegator: abilityDelegatorRegistry.AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); +const bundleName = abilityDelegatorRegistry.getArguments().bundleName; + +export default function staticImportNativeModuleTest() { + describe('staticImportNativeModuleTest', () => { + + it('staticImportNativeModuleTest001', 0, async (done: Function) => { + console.info('uitest: staticImportNativeModuleTest001 begin'); + const want: Want = { + bundleName: bundleName, + abilityName: 'EntryAbility' + } + await delegator.startAbility(want); + const driver = Driver.create(); + await driver.delayMs(1000); + + const ability: UIAbility = await delegator.getCurrentTopAbility(); + console.info('get top ability'); + expect(ability.context.abilityInfo.name).assertEqual('EntryAbility'); + await driver.delayMs(1000); + + const button1 = await driver.findComponent(ON.text('default_import')); + const button2 = await driver.findComponent(ON.text('named_import')); + const button3 = await driver.findComponent(ON.text('namespace_import')); + const button4 = await driver.findComponent(ON.text('direct_import')); + const button5 = await driver.findComponent(ON.text('indirect_import')); + const button6 = await driver.findComponent(ON.text('export_named_and_import')); + const button7 = await driver.findComponent(ON.text('export_namespace_and_import')); + + await button1.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('5')); + await driver.pressBack(); + + await button2.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('5')); + await driver.pressBack(); + + await button3.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('5')); + await driver.pressBack(); + + await button4.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('5')); + await driver.pressBack(); + + await button5.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('5')); + await driver.pressBack(); + + await button6.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('hilog.info')); + await driver.pressBack(); + + await button7.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('5')); + console.info('uitest: staticImportNativeModuleTest001 end'); + done(); + }) + }) +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/module.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/module.json5 new file mode 100644 index 0000000..c3fd9dd --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/entry/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * 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": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/hvigor/hvigor-config.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/hvigor/hvigor-config.json5 new file mode 100644 index 0000000..abba3f8 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/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.1.0", + "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/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/hvigorfile.ts b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/hvigorfile.ts new file mode 100644 index 0000000..e3340f0 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/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. */ +} \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/oh-package.json5 b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/oh-package.json5 new file mode 100644 index 0000000..776afe9 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/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.1.0", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.21", + "@ohos/hamock": "1.0.0" + } +} diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/ohosTest.md b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/ohosTest.md new file mode 100644 index 0000000..dd31069 --- /dev/null +++ b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/ohosTest.md @@ -0,0 +1,14 @@ +# 静态加载Native模块测试用例归档 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 测试结果 | +|--------------------------------------------|----------------|----------------------------------------------------|----------------------------|--------| +| 拉起应用 | 设备正常运行 | | 成功拉起应用 | Pass | +| Native模块默认导入测试(default_import) | 位于模块测试页面 | 点击调用default_import的Button组件 | 成功完成默认导入,输出显示5 | Pass | +| Native模块命名导入测试(named_import) | 位于模块测试页面 | 点击调用named_import的Button组件 | 成功完成命名导入,输出显示5 | Pass | +| Native模块命名空间导入测试(namespace_import)| 位于模块测试页面 | 点击调用namespace_import的Button组件 | 成功完成命名空间导入,输出显示5 | Pass | +| Native模块直接导入测试(direct_import) | 位于模块测试页面 | 点击调用direct_import的Button组件 | 成功完成直接导入,输出显示5 | Pass | +| Native模块间接导入测试(indirect_import) | 位于模块测试页面 | 点击调用indirect_import的Button组件 | 成功完成间接导入,输出日志显示5 | Pass | +| Native模块命名导出再导入测试(export_named_and_import)| 位于模块测试页面 | 点击调用export_named_and_import的Button组件 | 成功完成导出再导入,输出日志显示hilog.info | Pass | +| Native模块命名空间导出导入测试(export_namespace_and_import)| 位于模块测试页面 | 点击调用export_namespace_and_import的Button组件 | 成功完成命名空间导出导入,输出日志显示5 | Pass | \ No newline at end of file diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/screenshots/StaticImportNativeModule1.png b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/screenshots/StaticImportNativeModule1.png new file mode 100644 index 0000000000000000000000000000000000000000..edc61c5f10adc2d40b09c36a0cedb3af98988eb2 GIT binary patch literal 70764 zcmeFZS5%W**FOq~6)B>?76o)GT~MhaRS=NgTOc6POM;XTT0m4lK|ra}doPh1Ng&t& zkzPX!MLGc@B?J-z=W&1E``_=yxj5(I+?*j}03#1PYt1#+Tyy>AZ_T-08|rH^pW{A9 zM@Pr3_2{879UVhI9o);49>e<10G4 zYjj!zp75@*n-PGVhEqzWYl@ic!u-&B>m~bny*=3Sz5lvedS?MUjOiw zl?fVkaZ2@B?)7_&2CB~)YpF;(!HWWQH%1(!8+NLeJ5R_DZSR!?IZsztSG&8x+l0ca3uOTk~C(m?n$MlFn}sJ3X?+$Hr_bbo7kCkMO@v=IiGo(Q6{q z^}4>bwd%ry{rPwlf{e#iV<~IsO^oFF`poeWYNK%y>VL493Xl9c_t*cvoqP6V@hj4M zV(W1zhPF4kfu(Nhu-7Ud&ao!4EH3ASH9{K4ix={;g4W6!zp?8i*@y>+bJ+%b)`;bH z0;BzEl#jOJ%SN5-e+%+I((Iqi*UROya=eh?+bg#ba~t~s_#U$jT;!1d_31=aFnLp} zs=lEixiV{SZ?C!QJh#+$+b|lbnWzZ-xs%}j8oQWcy)B+dY%5B&ouH73Im9X!q_8;u zTA%W9$e@|y`dE$3M*R?|FIy4PFk)WU#%0(1^*(tz7>PJKSe6;ml^o}^_Po1_IGFP7 zQyiU`aG!)?s`Mm#qBZb%PL1;U+E%=y5hQurGy9{ z;br@)y7|eV(n$XSpcQ`Rpe}Jt<*4vdnt}ni;lkI+%qw8`nULF(^9Om zETh#eJnoOf63T<4mFVuronX0l4SrGmIP}-&(}@*l53}lOZ6uw~NS<{vB=UtF-fb#1ng=;QexcfmXH`CYI(Vm8zS;ei2~XLU z5!ZE)OBQT&D_YJDFA^7`4(HInH}|rT-k>Rcn|q{9=XOidAvx2xS4+J7$*rQg&Ql5^ z;5?CcrVLfJ(?JA&LA9lnXVs39PT7G=!U2poG~PTy3odXX*nE`F12Y(w*j8`ApDNj> z;JfM0aa{FLva=2f7Je{#TFPV?M;&vBZE$MJY z7}4;ng+KiBNiLiIQ7|08U?qqL_uTA92bawVN#EjFJC`v2I$;@b83Ri>VMhyO2`X92 z>zc5g>EFMd3qQ4gYiWsDST;3itJ^Dm-S5qPC2+uksCyMoJ$kzk7`>#Gt-9D@6mO90 z_Vf=?q(a%2;n@ZscK#OkqTWj*$?Q;CV>va7`(U^>6DgF31D}KtzTb$~ZAAVp+j6v! zXduwq6L!#Lw_P>;3(3)&&wbAithe^V{Oo%X3;sj}Wy(r{|B#+6KXUa%g*fwgk!Cz^ z;*sg!W$zS*SzQzLWYUJ8D~_MrjQ?%=gIurJNjagEGS_2#H)UcIkUtC4^gN6ZbKT@< zw?rAX|3P%`M%=x>54H!zQhlI^(vuHDBY10vPa6qj<$Zs|H_<|#mM@cRaK40j`pCCC z?Pw>0GEg$k+4Xxu`kRM5hl=2UhtW=k=Lt(9kPbwW74UL%Uqd^*VI!i>| zm~yOF@=HRi5)DbRE_rB#S0v4biA9I%B*(bgk@Ry(%_%>WsOyRKgQ7KJNh+dNW};gf zS0GZtfura(wdx=mu#veK0L!=VXkpE#pb#XsuKiI`olDYv1@JvR2@0xO{&|d`OD�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 Q5b&`*<#@8}xaaTx1`2muhX4Qo literal 0 HcmV?d00001 diff --git a/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/screenshots/StaticImportNativeModule2.png b/ArkTS/ArkTSRuntime/ArkTSModule/StaticImportNativeModule/screenshots/StaticImportNativeModule2.png new file mode 100644 index 0000000000000000000000000000000000000000..f22b451255266863ccaed7b42541609eb69e42ba GIT binary patch literal 30117 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