适合权重小的网站做的专题,图片制作怎么弄,重庆建筑工程网站,平面设计接单兼职1. 假如让你负责鸿蒙App架构设计#xff0c;你会关注哪些方面#xff1f; 分层架构设计#xff1a; 将应用划分为产品定制层、基础特性层和公共能力层#xff0c;以降低层间依赖性#xff0c;提升代码可维护性。通过分层架构设计#xff0c;进一步明确每层的职责和层间交…1. 假如让你负责鸿蒙App架构设计你会关注哪些方面 分层架构设计 将应用划分为产品定制层、基础特性层和公共能力层以降低层间依赖性提升代码可维护性。通过分层架构设计进一步明确每层的职责和层间交互机制为开发者提供清晰且结构化的开发框架。 模块化设计 将应用分解为多个功能模块每个模块负责执行特定功能。提高代码的可理解性和可复用性简化应用的扩展和维护降低系统各部分间的耦合度。 应用导航设计 在应用划分为多功能模块后通过Navigation导航设计实现业务模块间的解耦。轻松实现不同业务模块之间的页面跳转交互。 2. HarmonyOS应用的分层架构包括几个层次各自主要存放什么?
产品定制层
内容专注于满足不同设备或使用场景的个性化需求包括UI设计、资源和配置以及特定场景的交互逻辑和功能特性。特点功能模块独立运作依赖基础特性层和公共能力层实现具体功能。作为应用入口直接与用户互动可灵活调整和扩展以满足各种使用场景。
基础特性层
位置位于公共能力层之上。内容存放基础特性集合如相对独立的功能UI和业务逻辑实现。特点高内聚、低耦合、可定制支持产品的灵活部署。为上层提供稳健且丰富的基础功能支持UI组件、基础服务等并依赖于公共能力层提供的通用功能和服务。
公共能力层
内容集中存放公共基础能力如公共UI组件、数据管理、外部交互以及工具库等共享功能。作用为上层的基础特性层和产品定制层提供稳定可靠的功能支持确保整个应用的稳定性和可维护性。部署模型Entry类型HAP代表应用入口点Feature类型HAP包含特定功能模块支持模块化适配和部署。 3. 你刚才所讲的HAP是什么简单描述下
HAPHarmony Ability Package是应用安装和运行的基本单元。由代码、资源、第三方库、配置文件等打包生成的模块包主要分为entry和feature两种类型
entry应用的主模块作为入口提供基础功能。feature应用的动态特性模块作为能力扩展可根据用户需求和设备类型选择性安装。
使用场景
单HAP适用于只包含UIAbility组件的简单应用优先采用单个entry包开发推荐“一个UIAbility多个页面”的方式避免资源浪费。多HAP适用于功能复杂、需使用ExtensionAbility组件的应用采用entry包多个feature包的方式开发需注意避免库文件重复打包问题。 4. 如何实现多个模块或多个工程共享ArkUI组件、资源等相关代码
HARHarmony Archive作为静态共享包可包含代码、C库、资源和配置文件。通过HAR实现多个模块或工程间的ArkUI组件、资源等代码共享。
使用场景
二方库发布到OHPM私仓供公司内部其他应用使用。三方库发布到OHPM中心仓供其他应用使用。
HSPHarmony Shared Package作是动态共享包可以包含代码、C库、资源和配置文件通过HSP可以实现代码和资源的共享。HSP不支持独立发布而是跟随其宿主应用的APP包一起发布与宿主应用同进程具有相同的包名和生命周期。
使用场景
多个HAP/HSP共用的代码和资源放在同一个HSP中可以提高代码、资源的可重用性和可维护性同时编译打包时也只保留一份HSP代码和资源能够有效控制应用包大小。。HSP在运行时按需加载有助于提升应用性能。同一个组织内部的多个应用之间可以使用集成态HSP实现代码和资源的共享。
5. 谈谈你对模块化设计的看法
模块化不仅是一个设计原则更是一种深入开发实践的核心概念。它倡导将复杂的应用程序拆解为多个功能独立的模块每个模块聚焦于特定的功能或特性。这种设计方式使得模块能够独立开发、编译、测试及部署极大提高了开发效率和可维护性。同时模块化设计也支持在不同设备和场景下灵活组合与调用模块进一步增强了应用的灵活性和可扩展性。
应用开发者需基于自身技术架构的考量选择适宜的工程模块化模型。值得注意的是工程模块化模型并非一成不变而应随着业务和技术架构的演进不断优化调整。在HarmonyOS中开发者可根据具体需求在HAP、HAR和HSP三种类型中灵活选择以实现最佳的设计效果。
对于具备独立运行和安装能力的模块HAP包是首选且通常以Feature类型的HAP形式存在于应用中。对于那些不具备独立特性或用户使用频率较低的模块则适宜采用HSP按需加载模块的形式以节省资源并提升应用性能。而对于需要跨工程共享的模块HAR包则成为了不可或缺的选择它能够通过OHPM仓实现资源的共享与复用。然而由于HAR是静态共享库在多HAP或按需加载场景下可能会存在物理上的多份拷贝问题因此合理采用公共HSP模块壳对于优化App Size至关重要。
6. 应用导航如何设计
在应用设计中导航设计是关乎用户体验的重要环节。HarmonyOS提供了强大的Navigation组件作为路由导航的根视图容器它通常作为Page页面的根容器使用。Navigation组件内部集成了标题栏、内容区和工具栏等元素其中内容区可根据路由配置动态展示不同的导航内容或页面。
为实现业务模块间的解耦与高效管理建议将路由功能抽取为独立的RouterModule模块并以HAR包形式存在。RouterModule负责内部路由的管理并对外提供RouterModule对象供其他模块调用。由于Entry.hap是应用的主入口利用其特性将其作为业务模块的依赖注册中心可有效简化模块间的依赖关系。在入口模块中通过Navigation组件依赖其他业务模块而业务模块则仅依赖RouterModule进行路由管理从而实现了业务模块间的松耦合设计。
7. 面对应用并发设计你会如何做
面对应用并发设计挑战需从多个维度进行综合考量与规划 明确并发需求首先需清晰界定应用的并发需求识别出哪些任务为耗时操作、哪些为常驻任务、哪些需并发执行以及哪些需顺序执行等。 选择合适的并发模型根据并发需求选择合适的并发模型。HarmonyOS提供了TaskPool和Worker两种并发模型TaskPool适用于处理相对独立的耗时任务Worker则适用于处理长耗时且并发量不大的常驻任务。 设计线程间通信机制合理设计线程间通信机制确保数据在不同线程间能够正确传递与同步。 设置任务优先级与调度策略根据业务场景设置合理的任务优先级与调度策略确保高优先级任务能够优先执行。HarmonyOS的TaskPool提供了多任务优先级调度机制可灵活应用。 实现任务延时调度对于需延时执行的任务利用TaskPool的延时调度功能进行安排以避免对应用启动耗时或其他重要任务造成干扰。 处理线程间模块共享问题针对进程唯一的ArkTS实例等共享资源可考虑在ArkTS子线程中初始化并完成后续操作以避免阻塞主线程执行。 优化并发性能持续优化并发性能通过减少线程数量、优化通信机制及合理设置任务优先级等手段提升应用性能。
8. 鸿蒙中的应用切面编程都可以来干什么
在HarmonyOS中应用切面编程AOP是一种强大的编程范式它允许开发者在不修改源代码的情况下为应用中的方法增加额外的行为。切面编程可应用于多个场景包括但不限于
参数校验在方法执行前插入参数校验逻辑确保输入参数的合法性。日志记录在方法执行前后记录日志便于追踪方法执行情况及进行问题排查。性能统计统计方法的调用次数和执行时间为性能分析和优化提供依据。异常处理对方法返回值进行校验并在不符合预期时抛出异常或进行其他处理。成员变量监测在方法执行时监测成员变量状态确保数据完整性和准确性。方法替换在特定情况下替换原方法实现以适应业务变更或性能优化需求。应用跳转监控在应用跳转时感知到目标应用的包名实现对目标应用的识别和监控以确保跳转操作的安全性和准确性。例如通过插桩操作可以获得Want参数的bundleName属性从而实现对目标方法的监控和定制。