- 博客(22)
- 收藏
- 关注
原创 TaskPool和Worker
由于TaskPool的工作线程会绑定系统的调度优先级,并且支持负载均衡(自动扩缩容),而Worker需要开发者自行创建,存在创建耗时以及不支持设置调度优先级,故在性能方面使用TaskPool会优于Worker,因此大多数场景推荐使用TaskPool。15. TaskPool偏向独立任务维度,该任务在线程中执行,无需关注线程的生命周期,超长任务(大于3分钟且非长时任务)会被系统自动回收;8. TaskPool支持取消已经发起的任务,Worker不支持。13. TaskPool支持任务组,Worker不支持。
2025-03-08 08:51:14
196
原创 HarmonyOS中UIAbility和windowStage的区别
UIAbility是鸿蒙操作系统(HarmonyOS)中的一个重要组件。它主要用于构建用户界面相关的功能单元。可以把UIAbility看作是一个包含了用户界面逻辑和业务逻辑的容器。它具有自己的生命周期,包括创建(onCreate)、启动(onStart)、激活(onActive)、暂停(onInactive)、停止(onStop)和销毁(onDestroy)等阶段。WindowStage是用于管理窗口(Window)展示和行为的一个概念。
2024-11-22 21:20:13
432
原创 HarmonyOS 性能优化分析
能够分析程序中的某个位置的执行时间,进而发现问题,优化性能。2.2 内存泄露分析----- Snapshot 内存快照。2.1 耗时分析----- Time。2.2.4 dom元素未正确删除。ArkTS中内存泄漏的可能原因。2.2.2 数据未及时清理。2.2.3 全局变量不清除。2.2.5 闭包未正确使用。2.2.6 事件未正确解绑。2. 性能分析的具体工具。2.2.1 定时器不清除。1. 鸿蒙性能优化工具。2.2.7 使用三方库。
2024-10-31 10:46:41
383
原创 鸿蒙的线程和进程
----主线程1. 执行UI绘制2. 管理主线程的ArkTS引擎实例,使多个UIAbility组件能够运行在其之上。3. 管理其他线程的ArkTS引擎实例,例如使用TaskPool任务池创建任务或取消任务、启动和终止Worker线程。4. 分发交互事件。5. 处理应用代码的回调,包括事件处理和生命周期管理。6. 接受TaskPool以及Worker线程发送的消息。-----TaskPool线程用于执行耗时操作,支持设置调度优先级、负载均衡等功能,推荐使用。
2024-10-30 20:43:16
1740
原创 Harmony OS搭建广告展示页
1. 通过首选项配置存储我们的常用配置,比如是否需要广告页、广告页的路由地址、点击广告页跳转的链接以及广告页倒计时。上面还用到了两个常量,我们需要在constants目录下定义一个文件专门用来记录setting。1.2 新建一个关于读取首选项的类,用于读取和设置首选项的广告设置。1.4 模拟一个请求,给一个默认广告,写入首选项-正常加载主页。有些app需要广告页,有的不需要,我们需要搞个配置。1.1 新建一个关于广告页的数据模型。实现start页的页面结构及倒计时逻辑。2. window窗口广告模式。
2024-10-29 20:37:46
643
原创 vue的生命周期
Vue的生命周期是实例从创建到销毁的过程,指从创建、初始化数据、编译模板、挂载Dom到渲染、更新到渲染、卸载等一系列过程。Vue生命周期分8个阶段:创建前后、载入前后、更新前后、销毁前后。beforeUpdate组件数据发生变化,更新之前。beforeCreate 组件实例被创建之前。beforeDestroy组件实例销毁之前。beforeMount组件挂载之前。destoryed组件实例销毁之后。mounted组件挂载到实例之后。created组件实例已经创建。Updated组件数据更新之后。
2024-10-16 15:47:37
363
原创 前端mvvm设计模式
mvvm也就是Model-View-ViewModel是一个软件架构设计模式,是一种简化用户界面的事件驱动编程方式。Model模型指的是数据层,View视图指的是用户界面,ViewModel是视图模型。视图模型是MVVM模式的核心,它是连接view和model的桥梁,MVVM实现了view和model的自动同步,当model的属性改变时,我们不需要手动操作DOM元素来改变view的显示,反之也是,称之为数据的双向绑定。
2024-10-16 15:27:50
241
原创 Har包、Hap包和Hsp包
编译态复用,不支持在配置文件中声明abilities、extensionAbilities组件,不支持在配置文件中声明pages页面,支持Navigation组件导航。支持在配置文件中声明abilities、extensionAbilities组件,支持在配置文件中声明pages页面。运行时复用,不支持在配置文件中声明abilities、extensionAbilities组件,支持在配置文件中声明pages页面。Entry:应用的主模块,用于实现应用的入口界面、入口图标、主特性功能等。
2024-10-09 11:08:34
749
原创 前端框架Vue应用
概念:一个页面可以拆分一个个组件,每个组件有自己独立的结构、样式、行为。好处:便于维护,利于复用,提升开发效率。分类:普通组件、根组件。根组件:整个应用最上层组件,包裹所有小组件。
2024-09-21 20:57:54
719
原创 鸿蒙开发中获取定位信息
使用LocationButton位置控件,首次点击应用中的位置控件,系统将弹窗请求用户授权,如果用户点取消,弹窗消失,应用无授权,用户再次点击位置控件时将会重新弹窗;用户点击允许,弹窗消失,应用将被授予临时位置权限,此后点击该应用的位置控件将不会弹窗。精准定位的临时授权会持续到灭屏、应用切后台、应用退出等任一情况发生,然后恢复到临时授权之前的授权状态。2.通过Location kit将经纬度转为地址信息。3.将地址渲染到页面上。4.如果未开启定位将会闪退,处理闪退情况,用try catch。
2024-09-13 10:27:37
610
原创 Preferences首选项
如果Value值为string类型,请使用UTF-8编码格式,可以为空,不为空时长度不超过16 * 1024 * 1024个字节。内存会随着存储数据量的增大而增大,所以存储的数据量应该是轻量级的,建议存储的数据不超过一万条,否则会在内存方面产生较大的开销。数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型以及这3种类型的数组类型。用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。
2024-09-12 10:04:14
481
原创 什么是数据埋点?怎么实现数据埋点?
埋点是在软件或应用程序的关键位置(如用户操作、事件触发、页面访问等)插入代码,以收集用户行为和应用程序性能数据的技术手段。我们先了解时间埋点,比如,用户观看一段视频时中途退出不看了,为了方便用户体验,下次打开这段视频时应该从上次观看的位置接着播放,要实现这个就需要用到时间埋点。怎么实现呢?用户在打开视频时开始记录时间,关闭视频时生成一个埋点数据。把记录的数据通过接口发给后台,后台会统计视频观看进度。
2024-09-12 09:42:57
815
原创 封装axios方法
1.实例化通用配置 axios.create({baseURL基地址,timeout})3.定义类RequestAxios,静态设置get、post、delete、put。2.添加请求拦截器,登录需携带token,添加响应拦截器。二、二次封装:配置基地址,拦截器等。一、下载三方库axios。
2024-09-07 21:08:02
344
原创 ArkTS的生命周期
即使用@Component装饰的UI单元,其生命周期相对简单,主要包括和两个函数。这些函数在自定义组件的创建、显示和销毁过程中被调用,用于执行初始化、渲染和清理操作。
2024-09-05 21:19:36
1193
原创 ArkTS中如何监听数据变化?
可以使用@Watch装饰器来监听数据的变化,@Watch必须配合其他装饰器(比如@State,@Prop,@Link等)一起使用。@Watch('回调函数名')
2024-09-04 19:16:17
493
原创 简介ArkTS中LocalStorage&AppStorage&PersistentStorage
应用退出再次启动后,依然能保存选定的结果,是应用开发中十分常见的现象,这就需要用到PersistentStorage。此对象的作用是持久化存储选定的AppStorage属性,以确保这些属性在应用程序重新启动时的值与应用程序关闭时的值相同。LocalStorage是一个局部的状态管理器,它修饰的变量保存在内存中,是非持久化状态,退出应用程序后会消失。AppStorage是一个全局的状态管理器,它修饰的变量保存在内存中,是非持久化状态,退出应用程序后会消失。
2024-09-04 19:11:44
644
原创 HarmonyOS实现登录
token是用户是否登录的凭证,我们可以通过是否有token判断用户是否登录,如果登录,在app每次请求中携带token凭证。首先,封装一个 auth 工具,提供初始化持久化用户信息方法,首页初始化用户,登录后存储用户,使用导出的 key。如果token失效(状态码401代表token失效)则需要跳转到登录页,让用户登录。2.在EntryAbility中入口页面初始化用户信息。1.封装auth工具。
2024-09-03 18:55:35
787
原创 HarmonyOS沉浸式模式FullScreen
封装一个FullScreen组件,在EntryAbility中找到onWindowStageCreate,若想设置全屏则在onWindowStageCreate中写fullScreen.enable(),若想关闭全屏则写fullScreen.disable()。
2024-09-03 17:11:51
490
原创 LazyForEach数据懒加载
属性,即只加载可视部分以及其前后少量数据用于缓冲),其他组件仍然是一次性加载所有的数据。必须在容器组件内使用,仅有。组件支持数据懒加载(可配置。
2024-09-02 19:02:09
312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人