wwf
2025-09-29 87ec4569e27a5b820d6ec51b10a6d9ae167225ad
初始化
36个文件已添加
505 ■■■■■ 已修改文件
.gitignore 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppScope/app.json5 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppScope/resources/base/element/string.json 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppScope/resources/base/media/background.png 补丁 | 查看 | 原始文档 | blame | 历史
AppScope/resources/base/media/foreground.png 补丁 | 查看 | 原始文档 | blame | 历史
AppScope/resources/base/media/layered_image.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
build-profile.json5 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
code-linter.json5 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/.gitignore 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/build-profile.json5 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/hvigorfile.ts 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/obfuscation-rules.txt 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/oh-package.json5 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/main/ets/entryability/EntryAbility.ets 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/main/ets/entrybackupability/EntryBackupAbility.ets 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/main/module.json5 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/main/resources/base/element/color.json 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/main/resources/base/element/float.json 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/main/resources/base/element/string.json 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/main/resources/base/media/background.png 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/main/resources/base/media/foreground.png 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/main/resources/base/media/layered_image.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/main/resources/base/media/startIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/main/resources/base/profile/backup_config.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/main/resources/base/profile/main_pages.json 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/main/resources/dark/element/color.json 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/mock/mock-config.json5 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/ohosTest/ets/test/Ability.test.ets 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/ohosTest/ets/test/List.test.ets 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/ohosTest/module.json5 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/test/List.test.ets 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entry/src/test/LocalUnit.test.ets 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hvigor/hvigor-config.json5 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hvigorfile.ts 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
oh-package-lock.json5 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
oh-package.json5 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
New file
@@ -0,0 +1,12 @@
/node_modules
/oh_modules
/local.properties
/.idea
**/build
/.hvigor
.cxx
/.clangd
/.clang-format
/.clang-tidy
**/.test
/.appanalyzer
AppScope/app.json5
New file
@@ -0,0 +1,10 @@
{
  "app": {
    "bundleName": "com.example.xuepintongxing",
    "vendor": "example",
    "versionCode": 1000000,
    "versionName": "1.0.0",
    "icon": "$media:layered_image",
    "label": "$string:app_name"
  }
}
AppScope/resources/base/element/string.json
New file
@@ -0,0 +1,8 @@
{
  "string": [
    {
      "name": "app_name",
      "value": "xuepintongxing"
    }
  ]
}
AppScope/resources/base/media/background.png
AppScope/resources/base/media/foreground.png
AppScope/resources/base/media/layered_image.json
New file
@@ -0,0 +1,7 @@
{
  "layered-image":
  {
    "background" : "$media:background",
    "foreground" : "$media:foreground"
  }
}
build-profile.json5
New file
@@ -0,0 +1,42 @@
{
  "app": {
    "signingConfigs": [],
    "products": [
      {
        "name": "default",
        "signingConfig": "default",
        "targetSdkVersion": "5.0.5(17)",
        "compatibleSdkVersion": "5.0.0(12)",
        "runtimeOS": "HarmonyOS",
        "buildOption": {
          "strictMode": {
            "caseSensitiveCheck": true,
            "useNormalizedOHMUrl": true
          }
        }
      }
    ],
    "buildModeSet": [
      {
        "name": "debug",
      },
      {
        "name": "release"
      }
    ]
  },
  "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [
        {
          "name": "default",
          "applyToProducts": [
            "default"
          ]
        }
      ]
    }
  ]
}
code-linter.json5
New file
@@ -0,0 +1,32 @@
{
  "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"
  }
}
entry/.gitignore
New file
@@ -0,0 +1,6 @@
/node_modules
/oh_modules
/.preview
/build
/.cxx
/.test
entry/build-profile.json5
New file
@@ -0,0 +1,28 @@
{
  "apiType": "stageMode",
  "buildOption": {
  },
  "buildOptionSet": [
    {
      "name": "release",
      "arkOptions": {
        "obfuscation": {
          "ruleOptions": {
            "enable": false,
            "files": [
              "./obfuscation-rules.txt"
            ]
          }
        }
      }
    },
  ],
  "targets": [
    {
      "name": "default"
    },
    {
      "name": "ohosTest",
    }
  ]
}
entry/hvigorfile.ts
New file
@@ -0,0 +1,6 @@
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. */
}
entry/obfuscation-rules.txt
New file
@@ -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
entry/oh-package.json5
New file
@@ -0,0 +1,10 @@
{
  "name": "entry",
  "version": "1.0.0",
  "description": "Please describe the basic information.",
  "main": "",
  "author": "",
  "license": "",
  "dependencies": {}
}
entry/src/main/ets/entryability/EntryAbility.ets
New file
@@ -0,0 +1,44 @@
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');
  }
}
entry/src/main/ets/entrybackupability/EntryBackupAbility.ets
New file
@@ -0,0 +1,16 @@
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();
  }
}
entry/src/main/module.json5
New file
@@ -0,0 +1,50 @@
{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "phone"
    ],
    "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"
          }
        ],
      }
    ]
  }
}
entry/src/main/resources/base/element/color.json
New file
@@ -0,0 +1,8 @@
{
  "color": [
    {
      "name": "start_window_background",
      "value": "#FFFFFF"
    }
  ]
}
entry/src/main/resources/base/element/float.json
New file
@@ -0,0 +1,8 @@
{
  "float": [
    {
      "name": "page_text_font_size",
      "value": "50fp"
    }
  ]
}
entry/src/main/resources/base/element/string.json
New file
@@ -0,0 +1,16 @@
{
  "string": [
    {
      "name": "module_desc",
      "value": "module description"
    },
    {
      "name": "EntryAbility_desc",
      "value": "description"
    },
    {
      "name": "EntryAbility_label",
      "value": "label"
    }
  ]
}
entry/src/main/resources/base/media/background.png
entry/src/main/resources/base/media/foreground.png
entry/src/main/resources/base/media/layered_image.json
New file
@@ -0,0 +1,7 @@
{
  "layered-image":
  {
    "background" : "$media:background",
    "foreground" : "$media:foreground"
  }
}
entry/src/main/resources/base/media/startIcon.png
entry/src/main/resources/base/profile/backup_config.json
New file
@@ -0,0 +1,3 @@
{
  "allowToBackupRestore": true
}
entry/src/main/resources/base/profile/main_pages.json
New file
@@ -0,0 +1,5 @@
{
  "src": [
    "pages/Index"
  ]
}
entry/src/main/resources/dark/element/color.json
New file
@@ -0,0 +1,8 @@
{
  "color": [
    {
      "name": "start_window_background",
      "value": "#000000"
    }
  ]
}
entry/src/mock/mock-config.json5
New file
@@ -0,0 +1,2 @@
{
}
entry/src/ohosTest/ets/test/Ability.test.ets
New file
@@ -0,0 +1,35 @@
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);
    })
  })
}
entry/src/ohosTest/ets/test/List.test.ets
New file
@@ -0,0 +1,5 @@
import abilityTest from './Ability.test';
export default function testsuite() {
  abilityTest();
}
entry/src/ohosTest/module.json5
New file
@@ -0,0 +1,11 @@
{
  "module": {
    "name": "entry_test",
    "type": "feature",
    "deviceTypes": [
      "phone"
    ],
    "deliveryWithInstall": true,
    "installationFree": false
  }
}
entry/src/test/List.test.ets
New file
@@ -0,0 +1,5 @@
import localUnitTest from './LocalUnit.test';
export default function testsuite() {
  localUnitTest();
}
entry/src/test/LocalUnit.test.ets
New file
@@ -0,0 +1,33 @@
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);
    });
  });
}
hvigor/hvigor-config.json5
New file
@@ -0,0 +1,22 @@
{
  "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*/
  }
}
hvigorfile.ts
New file
@@ -0,0 +1,6 @@
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. */
}
oh-package-lock.json5
New file
@@ -0,0 +1,27 @@
{
  "meta": {
    "stableOrder": true
  },
  "lockfileVersion": 3,
  "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
  "specifiers": {
    "@ohos/hamock@1.0.0": "@ohos/hamock@1.0.0",
    "@ohos/hypium@1.0.21": "@ohos/hypium@1.0.21"
  },
  "packages": {
    "@ohos/hamock@1.0.0": {
      "name": "@ohos/hamock",
      "version": "1.0.0",
      "integrity": "sha512-K6lDPYc6VkKe6ZBNQa9aoG+ZZMiwqfcR/7yAVFSUGIuOAhPvCJAo9+t1fZnpe0dBRBPxj2bxPPbKh69VuyAtDg==",
      "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hamock/-/hamock-1.0.0.har",
      "registryType": "ohpm"
    },
    "@ohos/hypium@1.0.21": {
      "name": "@ohos/hypium",
      "version": "1.0.21",
      "integrity": "sha512-iyKGMXxE+9PpCkqEwu0VykN/7hNpb+QOeIuHwkmZnxOpI+dFZt6yhPB7k89EgV1MiSK/ieV/hMjr5Z2mWwRfMQ==",
      "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.21.har",
      "registryType": "ohpm"
    }
  }
}
oh-package.json5
New file
@@ -0,0 +1,10 @@
{
  "modelVersion": "5.0.5",
  "description": "Please describe the basic information.",
  "dependencies": {
  },
  "devDependencies": {
    "@ohos/hypium": "1.0.21",
    "@ohos/hamock": "1.0.0"
  }
}