代皓 Blog

要么庸俗 要么孤独.

启动器(2)

启动器原理-多线程

简介 在启动器(1)中,我们解决了前后依赖的问题。但是还存在一个问题,实际生产环境中,为了提升性能,一些任务需要放到多线程环境运行。本文主要解决的就是多线程环境下的被依赖的任务先于当前任务执行。 分析 实际上在启动器(1)中,我们已经有相应的一些设计了。比如每个Node都设置了一个List用于存储其依赖的节点(先于当前节点执行),一个List用于存储要依赖当前节点的节点列表(...

启动器(1)

启动器原理-有向无环图。

简介 APP启动时,有很多初始化工作需要进行,例如引入了很多第三方SDK后,都需要在程序启动时进行初始化,这是一个耗时的过程,性能优化时,可以将任务放在子线程,所有任务完成之后,进入主页。但是这样存在一个问题,如果任务之间存在依赖,无法控制初始化顺序。如果放到主线程顺序执行,性能又很差。这个时候就需要启动器,控制初始化顺序。 分析 可以把图中的节点看成是初始化任务,要执行任...

7. Harmony 应用框架

 

UIAbility简介 概述 (1)UIAbility是一个组件,包含了UI,为用户提供显示和交互的组件; (2)是应用调度的最小基本单元,为应用提供绘制UI的窗口; (3)一个UIAbility可以包含多个页面,并且在页面之间进行跳转; (4)每一个UIAbility都对应于鸿蒙系统的一个任务; 应用、模块(module)、UIAbility、page之间的关系: 一个应...

6. Harmony 路由和导航

 

路由 在鸿蒙中,使用@Router进行导航,使用比较简单,只需要注意一下几点: (1)原理:路由使用的是栈实现,把一个个页面进行压栈,后进栈的页面位于最上面,后退就是出栈;注意鸿蒙的路由最深层级是32,也就是说最多压入32个页面到栈里面; (2)路由模式:有两种push和replace。push是直接进栈,栈中页面数增加1,replace是替换栈顶的页面,栈内的页面数不变。例如在登录的...

5. Harmony 状态装饰器(组件内)

状态修饰器 在鸿蒙上,状态装饰器用于修饰状态变量,当状态变量改变时,根据不同的状态装饰器进行相应的响应式UI刷新 各状态装饰器 @State (1)被@State修饰的变量作用域是组件内部; (2)其修饰的变量生命周期和其自定义组件的生命周期相同; (3)必须进行初始化 (4)当装饰器修饰的是基本类型、对象时,数据的变化可以被装饰器发现。当修饰数组时,数组的增删可以被观察,但是...

4. Harmony 状态管理

概述 Tabs一般作为应用的骨架,能够让应用通过视图的切换,快速达到不同的功能。 组件状态同步 一、@State 概念:被@State修饰的变量,在其所属的组件内,可以与数据源进行单向或双向的数据同步。当数值变化时,会引起UI刷新 图示: 原理: 应用场景: 例子: 应用状态同步 export class IconBean{ iconNormalImage:Resource; ...

3. Harmony 高级UI组件

Tabs Tabs一般作为应用的骨架,能够让应用通过视图的切换,快速达到不同的功能。 包含两个部分: TabBar:TabBar是导航区域,也就是上图的下方4个按钮,可以根据用于的需要设置添加的数量,位置可以设置为上下左右 TabContent:承载每一个TabBar的内容显示。切换TabBar就会切换到对应的显示内容; 用法如下: 首先...

2. ArkTS 常见布局

常见布局 ArkTS常见布局有4种:Column、row、stack、flex,在NEXT发布后,新增了一种相对布局RelativeContainer布局 控件共有属性 对于每个控件,除了特殊的属性,还有部分属性是所有控件所共有的: (1) widht:控件宽度; (2)height:控件高度; (3)margin:外边距,和父布局的距离; (4)padding:内补丁,内容距离...

1. Harmony 工程目录

App 包结构 鸿蒙的APP包结构整体上分为2大部分,分别是Hap和pack.info,其中HAP的数量是最少为1,pack.info数量为1。整体架构如下: 其中: Hap:鸿蒙应用安装和运行的基本单元,由源码、资源文件、三方库和配置文件等组成,分为: (1)Entry:是应用的入口 (2)feature:动态模块,应用的功能拓展 (3)pack.info:是在打包的时候,由...

对象序列化

Serializable 和 Parcelable

概述 在Android中,IPC需要先将对象进行序列化,在完成对象序列化之后,通过Intent和Binder等传输数据。序列化方式主要有Serializable和Parcelable。 其中Serializable是Java提供的一个对象序列化接口,Parcelable是Android提供的对象序列化接口。 Serializable Serializable的使用很简单,只需要实现接口...