• [技术干货] 鸿蒙中页面的生命周期
    在鸿蒙ArkTs中,页面的生命周期是指页面从创建到销毁所经历的一系列状态和事件。这些生命周期事件为开发者提供了在特定时刻执行代码的机会,从而能够更好地管理页面的行为和资源。以下是对鸿蒙ArkTs中页面生命周期的详细介绍:页面生命周期接口鸿蒙ArkTs中的页面生命周期主要由被@Entry装饰的组件来调用,这些组件作为页面的入口,拥有特定的生命周期函数。以下是页面生命周期的主要接口:onPageShow:触发时机:页面每次显示时触发一次,包括路由过程、应用进入前台等场景。作用:这是进行页面数据加载、动画启动等操作的理想时机。onPageHide:触发时机:页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景。作用:此时页面仍然保留在内存中,但不再对用户可见。开发者可以在此函数中暂停一些不必要的后台操作,以节省系统资源。onBackPress:触发时机:当用户点击返回按钮或执行其他返回操作时触发。作用:开发者可以在此函数中执行一些清理工作,如保存用户输入、确认用户是否真的要离开页面等。生命周期调用时机示例以下是一个简单的示例,展示了如何在鸿蒙ArkTs页面中使用这些生命周期函数:@Entry @Component struct MyComponent { @State showChild: boolean = true; // 页面每次显示时触发一次 onPageShow() { console.info('Index onPageShow, 页面每次显示时触发一次'); } // 页面每次隐藏时触发一次 onPageHide() { console.info('Index onPageHide, 页面每次隐藏时触发一次'); } // 当用户点击返回按钮时触发 onBackPress() { console.info('Index onBackPress, 当用户点击返回按钮时触发'); } // 组件即将出现时回调该接口 aboutToAppear() { console.info('MyComponent aboutToAppear'); } // 在组件销毁之前执行 aboutToDisappear() { console.info('MyComponent aboutToDisappear'); } build() { Column() { // this.showChild为true, 创建Child子组件, 执行Child aboutToAppear if (this.showChild) { Child() } // this.showChild为false, 删除Child子组件, 执行Child aboutToDisappear Button('delete Child').onClick(() => { this.showChild = false; }) // push到Page2页面, 执行onPageHide Button('push to next page').onClick(() => { router.pushUrl({ url: 'pages/Page2' }); }) } } }在上面的示例中,MyComponent是一个被@Entry装饰的页面组件,它拥有页面生命周期函数onPageShow、onPageHide和onBackPress。同时,它还拥有组件生命周期函数aboutToAppear和aboutToDisappear,但这两个函数在页面组件中通常不是必需的,因为它们更多地用于自定义组件。注意事项只有被@Entry装饰的组件才可以调用页面的生命周期函数。开发者应根据页面的具体需求,在合适的生命周期函数中执行相应的操作,以优化应用性能和用户体验。综上所述,鸿蒙ArkTs中的页面生命周期为开发者提供了在特定时刻执行代码的机会,有助于更好地管理页面的行为和资源。通过合理利用这些生命周期函数,可以打造更加高效、流畅且用户友好的鸿蒙应用。
  • [技术干货] 鸿蒙ArkTs项目配置 —— AppScope/app.json5
    鸿蒙ArkTs项目中的AppScope/app.json5文件是一个配置文件,用于定义应用程序的基本信息和属性。这个文件是鸿蒙应用开发框架(ArkTS)中不可或缺的一部分,它帮助开发者在构建和打包应用时提供必要的元数据信息。鸿蒙中 AppScope 的目录结构如下图AppScope/app.json5 文件的内容如下{ "app": { "bundleName": "com.harmony.utils", "vendor": "example", "versionCode": 1000003, "versionName": "1.0.3", "icon": "$media:app_icon", "label": "$string:app_name" } }下面是对AppScope/app.json5文件中各个字段的详细解释:bundleName: "com.harmony.utils"这是应用程序的唯一标识符(包名),用于在系统中区分不同的应用。通常,这个名称会遵循反向域名格式,以确保全局唯一性。vendor: "example"表示应用的供应商或开发者名称。这个信息主要用于管理和识别应用的来源。versionCode: 1000003这是一个整数,表示应用的版本号,用于区分应用的不同版本。每次发布新版本时,这个值应该增加,以确保系统能够正确识别并更新应用。versionName: "1.0.3"这是一个字符串,表示应用的版本名称,通常用于向用户展示。它可以是任何易于理解的格式,比如“1.0.3”、“2.1 Beta”等。icon: "$media:app_icon"指定应用的图标。这里使用了$media:前缀,表示图标资源位于应用的媒体资源目录下,并且app_icon是资源文件的名称(不包含文件扩展名)。label: "$string:app_name"指定应用的标签或名称,这个名称会显示在设备的应用列表中。这里使用了$string:前缀,表示这个名称是一个字符串资源,app_name是在应用的字符串资源文件中定义的资源名称。app.json5文件采用JSON5格式,这是一种JSON的超集,允许一些JavaScript语法特性,如尾随逗号、注释等,这使得配置文件更加易读和易维护。AppScope/app.json5文件是鸿蒙ArkTs项目中非常重要的配置文件,它包含了应用的基本信息,如包名、版本、图标和名称等,这些信息对于应用的构建、打包和分发都是必不可少的。
  • [技术干货] 鸿蒙ArkTs项目结构
    鸿蒙ArkTS项目结构主要遵循HarmonyOS应用开发的典型组织方式,旨在提高代码的可维护性和项目的可扩展性。鸿蒙ArkTs项目结构(>表示是文件夹,-表示是文件)> .hvigor > .idea > AppScope > entry > hvigor > oh_modules - .gitignore - build-profile.json5 - code-linter.json5 - hvigorfile.ts - local.properties - oh-package.json5 - oh-package-lock.json5以下是鸿蒙ArkTS项目结构的详细解释:文件夹解释.hvigor这个文件夹通常包含与HVigor(可能是一个构建系统或特定工具链的引用,但并非广泛认可的HarmonyOS标准术语)相关的配置文件或缓存。它可能用于存储编译过程的中间文件或日志,具体取决于项目配置。.idea这是一个由IntelliJ IDEA(或其派生IDE如DevEco Studio)创建的文件夹,用于存储项目的IDE特定设置,如代码风格、工作区设置、编译选项等。这有助于团队成员在统一的开发环境中工作。AppScope这个文件夹可能是项目中的一个特定作用域或模块,用于组织与应用逻辑紧密相关的代码或资源。具体内容将取决于项目的需求和设计。entry入口文件夹,通常包含应用的入口文件,如主Ability(Ability是HarmonyOS应用的基本构成单元,用于表示应用的一个页面或功能)的定义。这是用户与应用交互的起点。hvigor与第一个.hvigor文件夹相似,这个hvigor文件夹的存在可能是项目特定配置的一部分,用于存储与构建、测试或部署相关的额外文件。然而,由于它不以点(.)开头,它更可能是项目源代码的一部分,而非IDE自动生成或使用的隐藏文件夹。oh_modules远程模块文件夹,HarmonyOS允许应用通过模块化的方式组织和复用代码。oh_modules文件夹可能包含从远程仓库下载的模块或库,这些模块或库在编译时被引入到应用中。文件解释.gitignoreGit忽略文件,用于指定哪些文件或文件夹不应该被Git跟踪(即不需要提交到版本控制系统中)。这有助于避免将编译产物、临时文件或敏感信息(如密码和密钥)提交到代码仓库。build-profile.json5编译配置文件,使用JSON5格式(JSON的超集,允许一些语法上的宽松),定义了编译过程中的配置选项,如优化级别、包含的库、插件等。code-linter.json5代码检查配置文件,定义了代码风格和格式检查的规则。这些规则帮助维护代码的一致性和质量。hvigorfile.ts可能是项目特定的配置文件,用于指定项目的编译、构建或运行时的特定选项。尽管不是HarmonyOS标准文件,但根据项目命名约定,它可能与构建过程或配置有关。local.properties本地属性文件,用于存储项目本地环境的特定配置,如SDK路径、数据库连接信息等。这些信息通常不会提交到版本控制系统中,因为它们可能因开发者的环境而异。oh-package.json5HarmonyOS应用的包配置文件,类似于Web开发中的package.json,定义了应用的元数据、依赖项、脚本等。这是HarmonyOS应用开发和部署的核心文件之一。oh-package-lock.json5依赖锁文件,记录了项目依赖项的精确版本,以确保在不同环境中构建和部署应用时的一致性。它类似于Node.js的package-lock.json文件。鸿蒙ArkTS项目结构通过合理的文件夹和文件组织,提高了代码的可读性、可维护性和可扩展性。每个部分都承担着不同的角色,共同支持应用的开发和部署。
  • [技术干货] 鸿蒙模拟器支持与不支持的功能
    HarmonyOS NEXT Developer Beta5作为鸿蒙系统的一个开发者预览版本,主要面向开发者提供了一系列的功能和更新。以下是对其支持的功能、不支持的功能以及与真机测试区别的详细分析:支持的功能性能和稳定性增强:在Beta3的基础上,进一步增强了开放能力的性能和稳定性,确保开发者在使用过程中能够获得更加稳定和高效的系统体验。对部分开放能力的缺陷进行了修复,提高了系统的整体可靠性和用户体验。新增和增强特性:引入了少量新增特性,如支持媒体库创建资源、文件选择能力等,为开发者提供更多灵活性和便利性。针对元服务,新增了Core File Kit(文件基础服务)的支持,如选择音频文件相关接口AudioViewPicker,以及媒体文件管理服务(Media Library Kit)的新增支持“使用安全控件创建媒体资源”的方式。开发工具和文档更新:IDE(如DevEco Studio)更新到了相应的Beta5版本,提供了更丰富的开发功能和更稳定的开发环境。文档也更新到了Beta5版本,为开发者提供了更详细的开发指导和参考。安全和隐私保护:引入了涉诈剧本检测功能,金融支付类应用在用户转账、支付前,可以通过调用Device Security Kit检测用户是否受到欺诈威胁,并根据检测结果对用户进行有效提示或拦截。不支持的功能部分旧特性的移除:如RichText组件在元服务中的使用被移除,开发者需要使用其他方式(如AtomicServiceWeb/Web/ArkUI原生替代)来实现类似的功能。特定硬件功能的直接模拟:虽然鸿蒙模拟器提供了器件仿真功能,但可能无法完全模拟所有硬件设备的特定功能,特别是那些需要特定硬件支持的功能。实时硬件交互:鸿蒙模拟器主要是一个软件工具,它无法提供与真实硬件设备实时交互的能力。对于需要实时硬件交互的应用测试,可能需要使用真实设备或远程模拟器。目前的鸿蒙next模拟器上应用少的可怜,只有设置、图库、文件管理这3个应用而已与真机测试的区别环境差异:鸿蒙模拟器是在计算机上运行的软件环境,而真机测试则是在真实的鸿蒙系统设备上进行的。因此,模拟器可能无法完全模拟真实设备的所有硬件和软件特性。性能表现:由于模拟器是在计算机上运行的,其性能表现可能受到计算机硬件配置的影响。而真机测试则能够更准确地反映应用在实际设备上的性能表现。测试范围:模拟器通常用于初步的功能测试和界面测试,帮助开发者快速发现和修复问题。而真机测试则更侧重于验证应用在实际使用场景下的稳定性和兼容性。用户体验:模拟器无法提供与真实设备相同的用户体验,如触摸反馈、传感器数据等。因此,在开发过程中,开发者需要结合真机测试来确保应用的实际使用效果。综上所述,HarmonyOS NEXT Developer Beta5为开发者提供了丰富的功能和更新,但也有一些不支持的功能和与真机测试的区别。开发者在开发过程中应充分利用模拟器的优势进行初步测试,并结合真机测试来确保应用的质量和稳定性。
  • [技术干货] 鸿蒙ArkTs项目配置 —— oh-package.json5
    在鸿蒙(HarmonyOS)的ArkTS(Ark TypeScript)项目中,oh-package.json5 文件扮演着类似于传统Web开发中的 package.json 或Android开发中的 build.gradle(或 AndroidManifest.xml)文件的角色,但它是专门为鸿蒙系统应用设计的。这个文件用于定义鸿蒙应用的基本信息、依赖关系、构建配置等。下面是oh-package.json5的默认文件内容{ "name": "entry", "version": "1.0.0", "description": "Please describe the basic information.", "main": "", "author": "", "license": "", "dependencies": {} }具体到你的 oh-package.json5 文件内容,它包含了一些基本的信息字段,虽然有些字段(如 main、author、license)在这个上下文中可能不是必须的或当前未被使用,但它们为未来的扩展或特定构建任务提供了空间。下面是对这些字段的简要说明:name: 应用的名称,这里被设置为 "entry",这通常指的是应用的入口模块或组件。version: 应用的版本号,格式为 主版本号.次版本号.修订号,这里为 "1.0.0"。description: 应用的描述信息,这里提示“Please describe the basic information.”,实际开发中应填写应用的详细描述。main: 应用的入口文件或模块,但在鸿蒙ArkTS项目中,这个字段的具体作用可能依赖于项目的具体构建配置。在某些情况下,它可能不是必需的,因为鸿蒙应用可以有多个入口点(如页面),这些入口点可能通过其他方式指定。author: 应用的作者或开发者,这里为空,实际使用时应该填写作者的信息。license: 应用的许可证类型,这里为空,表示没有指定许可证。在实际应用中,应该根据项目的开源协议填写相应的许可证信息。dependencies: 应用的依赖项,这里为空对象 {},表示当前应用没有声明任何依赖。在需要时,可以在这里列出项目所需的npm包或其他鸿蒙模块。需要注意的是,oh-package.json5 使用了 .json5 扩展名,这意味着它遵循 JSON5 而不是严格的 JSON 格式。JSON5 是一种 JSON 的超集,它允许一些额外的语法,比如尾随逗号、注释等,这使得文件更加易读和易于维护。在鸿蒙ArkTS项目中,oh-package.json5 文件是构建和部署应用时的重要配置文件之一。通过编辑这个文件,开发者可以控制应用的构建行为、定义应用的元信息和依赖关系等。
  • [技术干货] 鸿蒙ArkTs项目配置 —— obfuscation-rules.txt
    obfuscation-rules.txt 文件在鸿蒙ArkTS项目中用于定义代码混淆的规则。这些规则指定了哪些代码元素(如属性名、顶层作用域名称、文件名等)应该被混淆,以及哪些应该被保留不被混淆。通过合理配置这些规则,可以在保护代码不被轻易反编译的同时,避免混淆导致的应用运行时错误。其默认配置如下# 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配置方法基础配置在obfuscation-rules.txt文件中,你可以直接写入混淆选项和保留选项。这些选项会指导编译器如何对代码进行混淆。# 禁用所有混淆 -disable-obfuscation # 开启属性名混淆 -enable-property-obfuscation # 开启顶层作用域名称混淆 -enable-toplevel-obfuscation # 开启文件名混淆 -enable-filename-obfuscation # 开启导出名称混淆 -enable-export-obfuscation注意:这些选项默认可能已经在obfuscation-rules.txt中启用,具体取决于你的开发环境和项目配置。保留选项保留选项用于指定哪些代码元素不应该被混淆。这对于保持应用功能正常非常关键。# 保留特定属性名 -keep-property-name age firstName # 保留全局名称 -keep-global-name MyClass MyFunction # 保留文件名 -keep-file-name index entry # 保留.d.ts文件中的名称 -keep-dts ./path/to/file.d.ts这些保留选项可以确保即使开启了混淆,指定的代码元素也会保持原样,不会被混淆。配置文件引用在build-profile.json5文件中,你需要引用obfuscation-rules.txt文件,以便编译器能够识别并使用这些混淆规则。{ "arkOptions": { "obfuscation": { "ruleOptions": { "enable": true, "files": ["./obfuscation-rules.txt"] } } } }如果你有多个混淆规则文件,可以将它们全部添加到files数组中。注意事项性能影响:代码混淆会增加编译时间和运行时的一些开销,因为编译器需要处理额外的混淆逻辑。调试难度:开启混淆后,代码的错误栈跟踪将不再直接反映源码中的名称,这可能会增加调试的难度。兼容性:确保你的应用或库与鸿蒙系统的版本兼容,因为不同版本的鸿蒙系统可能对混淆的支持有所不同。通过以上步骤,你可以在鸿蒙ArkTS项目中配置和使用obfuscation-rules.txt文件来定义代码混淆规则,从而保护你的代码不被轻易反编译。
  • [技术干货] 鸿蒙ArkTs项目配置 —— hvigorfile.ts
    在鸿蒙(HarmonyOS)ArkTS项目中,hvigorfile.ts(或类似的配置文件,具体名称可能因项目或构建工具的不同而有所变化)通常不是鸿蒙官方SDK或ArkTS框架直接提供的一个标准文件。然而,从您提供的代码片段来看,这个文件似乎是一个自定义的配置文件,用于配置与构建过程相关的任务或插件,特别是通过引入了一个名为@ohos/hvigor-ohos-plugin的插件。默认配置如下: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. */ }hvigorfile.ts 的作用配置构建任务:该文件可能用于定义和配置项目的构建任务。这些任务可能包括编译、打包、混淆、测试等各个阶段。集成插件:通过引入和配置插件,hvigorfile.ts 可以扩展构建系统的功能。在您的例子中,它引入了@ohos/hvigor-ohos-plugin,这可能是一个专门用于鸿蒙应用构建的插件。配置方式根据您提供的代码片段,hvigorfile.ts 的配置方式相对简单,因为它只包含了一个系统插件的引用和一个空的插件数组。但是,这里有几个可能的扩展点:添加自定义插件:如果您需要添加自定义插件或第三方插件来扩展构建功能,您可以在plugins数组中添加相应的插件配置。这些插件可能需要您先通过npm或其他包管理工具安装到项目中。配置系统插件:虽然您提供的代码示例中system字段被设置为hapTasks且注释说明不能修改,但在实际应用中,您可能需要查看@ohos/hvigor-ohos-plugin的文档来了解是否有任何可配置的选项。如果有的话,您可能需要在hvigorfile.ts中或通过其他方式提供这些配置。环境变量和条件构建:虽然hvigorfile.ts本身可能不直接支持环境变量和条件构建,但您可以通过构建脚本或命令行参数来传递不同的配置,然后在hvigorfile.ts中根据这些参数来调整构建行为。与项目结构集成:确保hvigorfile.ts位于项目的正确位置,并在构建脚本中正确引用。这通常取决于您使用的构建工具或IDE。注意事项文档和社区:由于@ohos/hvigor-ohos-plugin和hvigorfile.ts看起来像是特定于某个项目或构建工具的,因此建议查阅相关的文档或社区资源来获取更详细的信息和示例。版本兼容性:鸿蒙OS和ArkTS框架都在不断发展中,因此请确保您使用的插件和构建工具与您的鸿蒙OS版本兼容。自定义与标准:虽然自定义配置文件如hvigorfile.ts可以带来很大的灵活性,但也要注意不要过度自定义,以免在将来升级鸿蒙OS或构建工具时遇到兼容性问题。
  • [技术干货] 鸿蒙ArkTs项目配置 —— build-profile.json5
    在鸿蒙(HarmonyOS)ArkTS项目中,build-profile.json5 文件用于定义构建配置。这个文件允许开发者为不同的构建目标(如调试版本、发布版本等)和平台(如手机、平板、穿戴设备等)设置不同的构建选项和参数。通过使用 .json5 扩展名,这个文件支持 JSON5 语法,这意味着它比标准的 JSON 语法更加灵活,允许使用尾随逗号、注释等特性。默认配置如下{ "apiType": "stageMode", "buildOption": { }, "buildOptionSet": [ { "name": "release", "arkOptions": { "obfuscation": { "ruleOptions": { "enable": false, "files": [ "./obfuscation-rules.txt" ] } } } }, ], "targets": [ { "name": "default" }, { "name": "ohosTest", } ] }build-profile.json5 的作用定义API类型:通过 apiType 字段指定API的兼容性类型,如 "stageMode" 表示使用阶段性API模式。配置构建选项:在 buildOption 字段中定义全局构建选项,但在您的示例中它是空的。实际使用中,这里可以包含影响整个构建过程的设置。设置构建选项集:buildOptionSet 字段允许定义多个构建选项集,每个选项集都对应一个构建目标(如 release 表示发布版本)。每个选项集可以包含特定的Ark编译选项(arkOptions),这些选项影响ArkTS代码的编译过程。指定构建目标:targets 字段列出了所有可用的构建目标。在您的示例中,有两个目标 default 和 ohosTest,但实际上它们并没有与 buildOptionSet 中的选项集直接关联。在更复杂的配置中,可能会看到构建目标与特定的构建选项集相关联。配置方式根据您的示例,以下是一些配置方式的说明和可能的扩展:启用混淆:在 release 构建选项集中,obfuscation 字段定义了混淆相关的配置。您可以通过将 enable 设置为 true 来启用混淆,并指定 files 字段中的 obfuscation-rules.txt 文件作为混淆规则文件。添加构建选项:如果您需要为构建过程添加其他选项(如优化级别、资源压缩等),可以在 buildOption 或 buildOptionSet 的相应字段中定义它们。关联构建目标与选项集:虽然您的示例中没有直接展示,但在某些情况下,您可能需要将特定的构建目标与 buildOptionSet 中的选项集关联起来。这通常通过构建脚本或IDE的构建设置来完成。调整API类型:如果您的应用需要使用不同版本的API,可以通过修改 apiType 字段的值来切换API兼容性模式。注意事项文档和兼容性:确保查阅最新的鸿蒙OS和ArkTS文档,以了解可用的构建选项和兼容性要求。测试:在更改构建配置后,务必进行全面的测试以确保应用的功能没有受到影响。版本控制:将 build-profile.json5 文件纳入版本控制,以便在团队中共享和跟踪更改。请注意,由于鸿蒙OS和ArkTS框架的不断发展,build-profile.json5 文件的具体配置选项和可用性可能会发生变化。因此,建议定期查看官方文档以获取最新信息。
  • [技术干货] 鸿蒙ArkTs项目配置 —— .gitignore
    在鸿蒙ArkTs项目中,.gitignore 文件扮演着重要的角色,它用于告诉Git版本控制系统哪些文件或目录应该被忽略,不纳入版本控制中。这有助于保持仓库的整洁,避免提交不必要或敏感的文件,如编译产物、临时文件、依赖库等。.gitignore 的用途忽略敏感信息和不必要的文件:避免将包含敏感信息(如API密钥、密码等)的文件或大型二进制文件(如依赖库、编译产物等)提交到仓库中,以保护项目安全和减少仓库体积。提高仓库性能:减少不必要的文件提交,可以降低仓库的复杂度,提高Git操作的速度和效率。减少冲突:在多人协作的环境中,忽略经常变化的文件(如日志文件、临时文件等)可以减少合并冲突和错误。.gitignore 的配置方法在鸿蒙ArkTs项目中配置.gitignore文件,可以按照以下步骤进行:创建.gitignore文件:在项目的根目录下创建一个名为.gitignore的文件。可以使用文本编辑器手动创建,也可以使用命令行工具(如touch .gitignore)在Unix/Linux系统中创建。编写忽略规则:打开.gitignore文件,每行编写一个忽略规则。规则可以是具体的文件路径、文件名,也可以是使用通配符和正则表达式匹配的文件模式。示例中的规则/node_modules、/oh_modules、/.preview、/build、/.cxx、/.test分别表示忽略根目录下的node_modules、oh_modules、.preview、build、.cxx、.test目录及其所有内容。保存并提交:保存.gitignore文件的修改。将.gitignore文件添加到Git版本控制中,并使用git commit命令提交到仓库。示例解析/node_modules /oh_modules /.preview /build /.cxx /.test每条规则前面的/表示从仓库的根目录开始匹配。这些规则确保了Git在版本控制过程中会忽略这些指定的目录及其所有内容,从而避免它们被意外地提交到仓库中。注意事项.gitignore文件只对尚未被Git跟踪的文件有效。如果文件已经被Git跟踪,即使它在.gitignore文件中被列出,Git也不会停止跟踪它。要从Git中删除已经跟踪的文件,需要使用git rm --cached <file>命令。可以在.gitignore文件中使用注释(以#开头的行)来添加说明信息,帮助其他开发者理解忽略规则。可以通过在全局Git配置中设置core.excludesfile变量来指定一个全局的.gitignore文件,这样所有仓库都会应用这个全局的忽略规则。但是,这通常不推荐用于项目特定的忽略规则,因为项目间的需求可能不同。
  • [技术干货] 鸿蒙ArkTs项目配置 —— hvigor-config.json5
    在鸿蒙ArkTS项目中,hvigor/hvigor-config.json5 文件(或类似命名的配置文件,具体取决于项目的构建系统和插件)通常用于配置与ArkTS编译过程相关的选项和参数。这个文件可能不是鸿蒙官方SDK直接提供的一部分,而是由某个特定的构建工具或插件(如可能的Hvigor插件,尽管这不是鸿蒙官方直接提供的)使用的。hvigor/hvigor-config.json5 的默认配置如下{ "modelVersion": "5.0.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*/ } }.hvigor/hvigor-config.json5 的作用编译选项配置:允许开发者为ArkTS代码的编译过程指定各种选项,如分析模式、是否启用守护进程编译、增量编译、并行编译等。日志和调试:配置日志级别和调试选项,以帮助开发者在编译过程中获取更多信息或进行问题排查。Node.js选项:为构建过程中使用的Node.js进程配置内存限制和垃圾回收选项。配置方法在提供的示例中,hvigor-config.json5 文件包含了一些被注释掉的配置项。要配置这些选项,您只需取消注释相应的行,并根据需要修改其值。以下是一些可能的配置示例:启用高级分析模式:"execution": { "analyze": "advanced" }禁用增量编译:"execution": { "incremental": false }设置日志级别为调试:"logging": { "level": "debug" }调整Node.js的最大旧空间大小:"nodeOptions": { "maxOldSpaceSize": 4096 // 设置为4GB }注意事项文档和插件支持:由于.hvigor/hvigor-config.json5可能不是鸿蒙官方SDK直接提供的一部分,因此建议查阅与Hvigor插件或您正在使用的构建系统相关的文档,以获取有关如何配置和使用此文件的最新和最准确的信息。默认值:请注意,配置文件中列出了许多带有默认值的选项。如果您不确定某个选项的用途,可以保留其默认值,或查阅相关文档以获取更多信息。兼容性:随着鸿蒙OS和ArkTS框架的发展,构建系统和插件可能会发生变化。因此,请确保您的配置文件与当前使用的鸿蒙OS版本和构建系统兼容。安全性:如果配置文件包含敏感信息(尽管在这个特定的配置文件中不太可能),请确保妥善处理这些信息,以防止未经授权的访问。
  • [技术干货] 鸿蒙ArkTs项目配置 —— code-linter.json5
    在鸿蒙ArkTs项目中,code-linter.json5 文件(或类似命名的文件,具体取决于项目使用的代码检查工具)用于配置代码风格和质量检查(linting)的规则。这些规则帮助开发者维护代码的一致性和质量,通过自动化检查来避免常见的错误和不良实践。默认的配置如下:{ "files": [ "**/*.ets" ], "ignore": [ "**/src/ohosTest/**/*", "**/src/test/**/*", "**/src/mock/**/*", "**/node_modules/**/*", "**/oh_modules/**/*", "**/build/**/*", "**/.preview/**/*" ], "ruleSet": [ "plugin:@performance/recommended", "plugin:@typescript-eslint/recommended" ], "rules": { } }code-linter.json5 的作用指定检查的文件:通过 files 字段,可以指定哪些文件或文件类型应该被lint工具检查。忽略特定文件或目录:ignore 字段允许开发者指定哪些文件或目录应该被lint工具忽略,比如测试文件、构建产物、依赖库等。配置规则集:ruleSet 字段用于指定要使用的规则集,这些规则集定义了一系列lint规则。规则集可以是内置的,也可以是自定义的,或者是通过npm安装的插件提供的。自定义规则:rules 字段允许开发者覆盖或添加特定的lint规则,以满足项目的特定需求。配置方法在您提供的示例中,code-linter.json5 文件已经配置了一些基本的设置。以下是如何进一步配置或修改此文件的指导:指定检查的文件: 如果您想要检查除 .ets 文件之外的其他文件类型(比如 .ts 或 .js),您可以在 files 数组中添加相应的glob模式。忽略特定文件或目录: ignore 数组中的每个条目都是一个glob模式,用于指定应该被忽略的文件或目录。您可以根据需要添加或删除条目。配置规则集: ruleSet 字段列出了要使用的规则集。这些规则集应该与您的项目中安装的lint插件相对应。如果您想要使用不同的规则集,或者想要添加额外的规则集,请确保先通过npm安装相应的插件,并在 ruleSet 数组中指定它们。自定义规则: 在 rules 字段中,您可以覆盖 ruleSet 中定义的规则,或者添加新的规则。每个规则都是一个键值对,其中键是规则的名称(包括插件前缀,如果适用),值是规则的配置(通常是布尔值或对象)。注意事项插件兼容性:确保您安装的lint插件与您的项目兼容,并且支持您想要使用的规则集。规则文档:查阅您所使用的lint插件的文档,以了解每个规则的具体含义和配置选项。性能考虑:过多的lint规则可能会增加构建时间。在添加新规则时,请考虑它们对构建性能的影响。团队一致性:在团队项目中,确保所有成员都遵循相同的lint规则,以保持代码风格的一致性。最后,请注意,code-linter.json5 文件的名称和确切配置可能因您使用的lint工具而异。上述指导是基于您提供的文件内容和常见的lint配置实践。如果您使用的是特定的lint工具(如ESLint、TSLint等),请查阅该工具的官方文档以获取更详细的配置指导。
  • [技术干货] 鸿蒙ArkTs项目配置 —— local.properties
    在鸿蒙ArkTs项目中,local.properties 文件主要用于存储本地开发环境的配置信息,这些信息通常与项目的构建过程相关,但又不适合被纳入版本控制系统(如Git)中。这些配置信息可能包括SDK路径、NDK路径等,这些信息对于项目的构建和调试至关重要,但它们是特定于开发者的本地环境的,因此不应该被共享或提交到版本控制中。初始配置如下,默认并无任何配置# This file is automatically generated by DevEco Studio. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file should *NOT* be checked into Version Control Systems, # as it contains information specific to your local configuration. # # For customization when using a Version Control System, please read the header note.local.properties 文件的作用存储本地配置:该文件用于存储项目构建过程中需要引用的本地资源路径,如SDK的安装位置、NDK的路径等。避免版本冲突:由于这些信息是特定于开发者的,将它们排除在版本控制之外可以避免不同开发者之间的配置冲突。自动生成:在某些情况下,如使用DevEco Studio等IDE时,local.properties 文件可能是自动生成的,并包含IDE根据当前开发环境配置的信息。配置方法对于local.properties文件,通常不需要手动编辑其内容,因为IDE(如DevEco Studio)会在项目构建或初始化时自动生成这个文件,并填充必要的配置信息。然而,如果由于某些原因需要手动配置这个文件,你应该注意以下几点:不要直接修改自动生成的文件:如果local.properties文件是由IDE自动生成的,并且包含了警告(如你提供的文件内容所示),那么最好遵循这些警告,不要直接修改这个文件。使用IDE的设置界面:大多数IDE都提供了图形化的设置界面,允许开发者配置SDK路径、NDK路径等构建相关的选项。通过IDE的设置界面进行配置,可以确保这些配置被正确地应用到项目中,并且不会被意外地覆盖或删除。了解你的开发环境:在手动配置local.properties文件之前,你需要了解你的开发环境,包括SDK和NDK的安装位置、版本等信息。这些信息对于正确配置文件至关重要。注意事项不要将local.properties文件添加到版本控制中:如前所述,这个文件包含特定于开发者的本地配置信息,因此不应该被纳入版本控制系统中。定期检查文件内容:尽管你通常不需要手动编辑local.properties文件,但定期检查其内容是一个好习惯。这可以帮助你确保IDE正确地配置了构建环境,并且你的项目可以在不同的开发环境中顺利构建。遵循IDE的文档和最佳实践:不同的IDE可能有不同的方式来处理local.properties文件和其他构建配置文件。因此,遵循你所使用的IDE的文档和最佳实践是非常重要的。
  • [技术干货] 鸿蒙ArkTs项目配置 —— oh-package.json5 与 oh-package-lock.json5 的区别
    在鸿蒙ArkTs项目中,oh-package.json5和oh-package-lock.json5两个文件扮演着不同的角色,主要区别在于它们的目的和内容。oh-package.json5目的:oh-package.json5文件主要用于描述项目的依赖包、全局配置等信息。它类似于Node.js项目中的package.json文件,但针对鸿蒙操作系统进行了定制。内容:包含项目的包名、版本、入口文件(类型声明文件)等信息。描述了项目所需的三方库(依赖项)及其版本,这对于项目的构建和部署至关重要。还可以包含全局配置信息,如依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等。使用场景:开发者在项目中添加、更新或删除依赖时,需要修改oh-package.json5文件。在构建项目时,构建工具会读取该文件以了解项目的依赖关系和其他配置信息。oh-package-lock.json5目的:oh-package-lock.json5文件是一个自动生成的文件,用于记录项目依赖关系的树形结构。它确保了在不同环境中项目的依赖能够保持一致,避免版本冲突。内容:包含了项目的所有依赖项及其版本号,形成了一个树形结构。每一层节点代表一个依赖项,子节点代表该依赖项的子依赖项。这种方式可以清晰地展示项目的依赖关系,有助于调试和优化项目。使用场景:oh-package-lock.json5文件在开发者首次运行依赖安装命令(如npm install或鸿蒙系统的对应命令)时自动生成。此后,每次运行依赖安装命令时,构建工具都会检查oh-package.json5和oh-package-lock.json5文件,以确保所有依赖项都按照锁文件中指定的版本进行安装。这有助于保持项目在不同环境中的一致性,避免因依赖项版本不同而导致的问题。总结oh-package.json5是项目的配置文件,由开发者手动编辑,用于描述项目的依赖关系和其他全局配置信息。oh-package-lock.json5是自动生成的文件,用于记录项目的依赖关系树形结构,确保在不同环境中项目的依赖能够保持一致。两者共同工作,确保项目的构建和部署过程顺利进行。
  • [技术干货] 鸿蒙ArkTs项目配置——module.json5
    module.json5 文件在鸿蒙ArkTs项目中扮演着至关重要的角色,它定义了应用程序(或称为模块)的基本信息和配置,包括其类型、描述、入口能力(Ability)、支持的设备类型、权限请求等。这个文件是鸿蒙系统应用开发和部署的基础配置之一。下面是对 module.json5 文件内容的逐行解释:{ "module": { "name": "entry", // 模块的名称,这里是"entry" "type": "entry", // 模块的类型,这里是"entry",表示这是一个入口模块,用户可以直接启动的模块 "description": "$string:module_desc", // 模块的描述,这里使用了资源字符串($string:)来引用,实际描述需要在资源文件中定义 "mainElement": "EntryAbility", // 指定模块的入口能力(Ability)名称,这里是"EntryAbility" "deviceTypes": [ // 支持的设备类型列表 "phone", // 支持手机 "tablet", // 支持平板 "2in1" // 支持二合一设备(如可插拔键盘的平板) ], "deliveryWithInstall": true, // 是否随安装包一起交付,这里为true,表示模块是随应用安装包一起安装的 "installationFree": false, // 是否支持免安装运行,这里为false,表示不支持免安装 "pages": "$profile:main_pages", // 页面的配置,这里使用了配置文件($profile:)来引用,实际配置需要在相应的配置文件中定义 "abilities": [ // 定义模块中的能力(Ability)列表 { // 第一个能力(Ability)的配置 "name": "EntryAbility", // 能力的名称 "srcEntry": "./ets/entryability/EntryAbility.ets", // 能力的入口文件路径 "description": "$string:EntryAbility_desc", // 能力的描述,使用了资源字符串 "icon": "$media:icon_app", // 能力的图标,使用了媒体资源($media:)来引用 "label": "$string:app_name", // 能力的标签,通常是应用名称,使用了资源字符串 "startWindowIcon": "$media:icon_app", // 启动窗口的图标,与能力的图标相同 "startWindowBackground": "$color:start_window_background", // 启动窗口的背景颜色,使用了颜色资源($color:)来引用 "exported": true, // 是否导出此能力,以便其他应用可以访问,这里为true "skills": [ // 定义能力可以响应的技能(如快捷方式、语音命令等) { "entities": ["entity.system.home"], // 技能关联的实体,这里是系统主页 "actions": ["action.system.home"] // 技能可以执行的动作,这里是打开系统主页 } ] } ], "extensionAbilities": [ // 定义模块中的扩展能力(ExtensionAbility)列表 { // 第一个扩展能力的配置 "name": "EntryBackupAbility", // 扩展能力的名称 "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", // 扩展能力的入口文件路径 "type": "backup", // 扩展能力的类型,这里是"backup",表示备份能力 "exported": false, // 是否导出此扩展能力,这里为false "metadata": [ // 扩展能力的元数据列表 { "name": "ohos.extension.backup", // 元数据的名称,这里指定了备份能力的相关配置 "resource": "$profile:backup_config" // 元数据的资源路径,使用了配置文件($profile:)来引用 } ], } ], "requestPermissions": [ // 请求的权限列表 // 权限请求的配置,每个对象代表一个请求的权限 // ...(此处省略了具体的权限请求配置,但格式与上述类似) ] } }注意:在 requestPermissions 数组中,虽然给出了权限请求的示例格式,但具体的权限请求(如 ohos.permission.INTERNET)并未完全展示在提供的文件内容中。在实际应用中,您需要为每个请求的权限提供完整的配置,包括权限名称、请求原因以及使用场景等。此外,文件中的一些配置项(如 $string:、$media:、$color: 和 $profile:)使用了资源引用或配置文件引用的方式,这意味着实际的值将在构建过程中从相应的资源文件或配置文件中获取。这种方式有助于管理大型项目中的资源和配置,提高项目的可维护性和可扩展性。
  • [技术干货] 鸿蒙系统支持多设备的主要方式
    鸿蒙系统(HarmonyOS)作为一种面向分布式场景的操作系统,它通过一系列先进的技术和设计理念来支持多设备互联与协同工作。以下是鸿蒙系统支持多设备的主要方式:1. 分布式软总线技术连接设备:鸿蒙系统采用分布式软总线技术,将不同的设备连接在一起,实现设备之间的无缝通信和数据共享。这种技术类似于一个虚拟的“高速公路”,让数据可以在不同设备间自由流动。数据共享:通过分布式软总线,用户可以轻松地在不同设备间共享文件、图片、视频等数据,实现跨设备的无缝体验。2. 分布式数据管理数据存储:鸿蒙系统采用分布式数据管理技术,将数据存储在不同的设备上,并通过分布式事务处理机制保证数据的一致性和安全性。数据同步:系统能够实时同步数据变化,确保用户在任何设备上都能获取到最新的数据状态。3. 分布式能力调度资源调度:鸿蒙系统通过分布式能力调度技术,将不同设备的计算能力和资源进行统一调度和管理。这意味着系统可以根据设备的实际情况和用户需求,智能地分配资源,提高系统的整体效率和性能。任务协同:用户可以在多个设备上同时使用同一个应用程序,比如在手机上开始的任务可以无缝地切换到平板电脑上继续进行。4. 设备虚拟化技术统一资源池:鸿蒙系统采用设备虚拟化技术,将不同的设备虚拟化为一个统一的资源池。这使得系统可以更加灵活地管理和利用设备资源,提高设备的利用率和灵活性。5. 统一的应用框架和开发工具应用开发:鸿蒙系统提供了一套完整的应用框架和开发工具,支持开发者在不同的设备上开发和部署应用程序。这些工具包括IDE(集成开发环境)、API(应用程序接口)等,为开发者提供了便捷的开发环境和丰富的开发资源。应用兼容:通过统一的应用框架和开发工具,鸿蒙系统可以确保应用程序在不同设备上的兼容性和可移植性。6. 设备发现和接入机制设备发现:鸿蒙系统提供了统一的设备发现和接入机制,使得不同设备之间能够方便地互相发现和建立连接。用户可以通过一台设备找到其他设备并进行连接,实现多设备之间的无缝体验。7. 跨屏协同协同操作:鸿蒙系统支持跨屏协同功能,可以实现多个设备之间的协同操作。比如,在手机上浏览网页时,用户可以将网页无缝推送到电视屏幕上观看;在平板电脑上编辑文档时,可以实时同步到电脑上进行进一步编辑。综上所述,鸿蒙系统通过分布式软总线、分布式数据管理、分布式能力调度、设备虚拟化、统一的应用框架和开发工具、设备发现和接入机制以及跨屏协同等多种方式,实现了对多设备的全面支持。这些技术和设计理念的应用,使得鸿蒙系统能够为用户提供更加便捷、高效、智能的跨设备体验。
总条数:102 到第
上滑加载中