自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

童年纸飞机的博客

坚持比方法更重要

  • 博客(107)
  • 收藏
  • 关注

原创 HarmonyOS-ArkUI 一镜到底之页面间共享元素转场 sharedTransition

文章中了解了什么是一镜到底,以及在一个大组件内,子组件与子组件进行一镜到底的转场的代码实现。但是截止到目前,我们讲的仍是一个页面内的一镜到底。事实上也可以进行一镜到底的实现,但是采用的是另外一个api:。具体能实现的效果,我找了个能激发大家学习兴趣的例子: 华为 音乐App的界面。看看这种炫酷的效果:反正好好写是可以用本文中学习的内容做到的。这个界面太复杂,代码案例中肯定不会实现这个。好,接下来我们学习相关API吧。

2025-04-24 05:50:16 225

原创 HarmonyOS-ArkUI 一镜到底之组件内隐式共享元素转场 geometryTransition

geometry transition 英译为: 几何过渡。这个动画写法挺简单的,不妨碍人家的炫酷。这种效果其实就是传说中的一镜到底!从现在开始,本文geometry transition 与一镜到底具有同样的含义,指的是同样的概念。共享元素转场着重于展现组件与组件之间涉及到转场时的过渡效果。顾名思义,重点有两处需要我们注意:我们之前学的动画呢,诸如 animateTo(显式动画), animation(属性动画),keyFrameAnimateTo(关键帧动画),transition(组件内转场动画),m

2025-04-23 19:05:20 420

原创 HarmonyOS-ArkUI: 组件内转场(transition)

组件内转场指的是组件在触发转场的时机所具备的动画效果。组件被添加组件被删除组件可见性发生变化-Visibility这些场景有时候单纯的让其消失,出现,平移有时候视觉效果会比较突兀。我们可以利用组件内转场动效实现平滑的过度。

2025-04-23 15:08:26 823

原创 HarmonyOS-ArkUI: 路径动画 motionPath

路径动画用于设置组件进行位移动画时的运动路径!这个一般使用量比较少,但是简单的讲讲吧。motionPath是一个UI组件顶级类的方法,就意味着,任何组件其实都具备,motionPath的能力。并且这个方法就是来描述运动路径用的,具体还得配合动画来使用,比如animateTo函数。这样动画在运动的时候,就会按照motionPath的路径来了。其具体API及属性解释如图所示:上图中,MotionPathOptions类中的path属性,是一个运动路径描述。这个一般是Svg开发技术里面的内容。

2025-04-22 12:33:18 266

原创 HarmonyOS-ArkUI: 属性动画:animation

至今为止,已经讲了两个动画了(显式动画,关键帧动画如链接所示),这个属性动画是第三个。鸿蒙的属性动画,和Android中的属性动画,迥异,也就是名字不同罢了。所以之前的经验不能完全带入。而且通过前两篇的学习,我认为鸿蒙对动画的优化,与安卓有很大不同。有时间从绘制渲染的角度研究下底层原理。目前我们先要会用,用好为主。

2025-04-22 10:22:10 876

原创 HarmonyOS-ArkUI:关键帧动画 keyFrameAnimateTo

上文讲解显式动画的过程中我们提到了显式动画有一个缺点,就是:"显式动画尽管有很多的运动曲线参数可以选择, 但是用户只能控制它开始和结束,并不能对其动画的详细细节做精准的调控。例如对于加速,只能控制先减速后加速这类趋势。但是并不能控制,在运动到20%处猛增速这种比较精微的调控。做不到。那么现在我们就来学习一个可以实现动画的精微调控的方式-关键帧动画。

2025-04-21 20:05:47 375

原创 HarmonyOS-ArkUI: animateTo 显式动画

啊, 尽管有点糙,但还是解释一下吧, 显式动画里面的“显式”二字, 是程序员在代码调用的时候,就三令五申,明明白白调用动画API而创建的动画。这个API的名字就是: animateTo。这就是显式动画。说白了您可以大致理解为,显式动画,就是调用animateTo来完成的动画。好,接下来我们梳理一下这个方法!

2025-04-21 17:51:42 763

原创 HarmonyOS-ArkUI-动画分类简介

动画,是客户端提升界面交互用户体验的一个重要的方式。可以使应用程序更加生动灵越,提高用户体验。HarmonyOS对于界面的交互方面,围绕回归本源的设计理念,打造自然,流畅品质一提的操作体验。

2025-04-20 08:29:01 1792

原创 HarmonyOS-ArkUI: 自定义组件冻结功能@ComonentV2 freezeWhenInactive属性

自定义组件冻结能力的使用通常用在以下三大场景页面路由场景Tab页, TabContent导航 Navigation说白了就是一个页面接着一个切的那种操作场景。新的界面出来,之前的那个界面就是inactive了,就可以被冻结了。这个粗略的描述可以涵盖大部分场景但不绝对。

2025-04-17 16:48:21 1104

原创 HarmontOS-ArkUI V2状态 !!语法糖 双向绑定

双向绑定指的是在组件间数据的双向绑定。当一个值无论是在父组件还是子组件中改动都会在这两层中都更新界面。!!语法糖能完成双向绑定!!语法糖更省代码,写起来简洁。其数据同步是原子级的。不用担心什么多线程引发的问题。

2025-04-16 19:33:20 751

原创 HarmonyOS-ArkUI V2状态-PersistenceV2:持久化存储UI状态

PersistenceV2类是一个与AppStorageV2类用法非常相似的类。因为它俩是子类和父类的关系。如果不了解AppStorageV2,可以先跳转至了解一下这个类。PersistenceV2相比于其父类AppStorageV2而言,它存储的数据是持久化存储的。也就是它里面的数据能写在盘里,SD卡里。其周期越过了App的生命周期。本次App存储的数据,杀掉进程后, 在下次App开启的时候是可以拿到这些值的。PersistenceV2最值得一提的作用是。

2025-04-15 19:30:44 826

原创 HarmonyOS-ArkUI V2工具类:AppStorageV2:应用全局UI状态存储

AppStorageV2是一个单例,创建时间是应用UI启动时。其目的是为应用的数据状态提供中心存储,这些数据是应用级别都可以访问得到的。它将在应用运行过程中为应用保存数据。数据通过唯一的字符串进行访问。使用位置在组件内可以使用。在普通的类中,UIAbility类中也可以使用。支持应用主线程内多个UIAbility实例间的状态共享。总结下来就是全方位都可以使用。

2025-04-15 16:46:38 437

原创 HarmonyOS-ArkUI V2装饰器: @Computed装饰器:计算属性

Computed装饰器是用来装饰getter方法的。getter方法中涉及到相关状态变量的计算。当相关的状态变量发生变化时会自动触发Computed修饰的函数重新计算。对于比较复杂的计算,Computed会有性能收益。// 1 必须是get方法。2 可以返回任意类型 3Computed里面不要改状态变量的值,会引发死循环。@Computed...@Computed装饰器说明支持类型getter访问器从父组件初始化禁止可初始化子组件@Param被执行时机。

2025-04-15 10:27:45 792

原创 HarmonyOS-ArkUI V2装饰器: @Monitor装饰器:状态变量修改监听

根据上方的代码,我们大概知道了Monitor应该是怎么用的,也应该能猜测的出这个装饰器是干什么的了。下面讲讲具体的使用规则。也就是监听具有时效性,创建是我们自己定义的,销毁是系统在组件销毁的时候替我们销毁的。这样能替我们避免很多关于内存泄漏的问题。具体是: @Monitor定义在@ComponentV2装饰的自定义组件中时,@Monitor会在状态变量初始化完成之后生效,并在组件销毁之时失效。@Trace message: string = "默认值"

2025-04-14 18:11:09 1177

原创 HarmonyOS-ArkUI V2装饰器: @Provider和@Consumer装饰器:跨组件层级双向同步

Provider需要与@Consumer配合使用。两者通过一个key建立联结。此key表现在,这两个装饰器都接收一个叫aliasName的参数,用来指定其修饰的变量的别名。之后靠这个别名来寻找绑定关系。@Provider属性装饰器说明装饰器参数aliasName?:string, 别名,缺省时默认为属性名,建议最好写这个参数支持类型自定义组件中成员变量。属性类型可以为number,string, boolean, class, Array, Date, Map, Set 等类型。支持装饰箭头函数。

2025-04-13 21:46:16 1013

原创 HarmonyOS: ArkUI V2装饰器-@Event:规范组件输出

Event说白了就是修饰回调函数的。比如:一个父组件,里面包含了一个比较复杂的子组件。当子组件做某些操作的时候,需要让父组件感知到当前做了这种操作了。在过往Android开发中经常碰见这种场景, 比如子组件做完某个任务了通知父组件, 父组件知道了后就立马更新其范围内的控件展示样式。此时我们实现的时候往往会往子控件中设置一个含有回调接口的类,或者接口句柄,等子控件完成任务就调用句柄的回调函数。但是ArkUI里,您要自己写一个interface,然后设置回调函数,也不是不能做到,就是麻烦。

2025-04-13 14:49:35 1033

原创 HarmonyOS-ArkUI V2装饰器-@Once

前文,关于@Param的使用:@Once装饰器是一个需要配合@Param装饰器一块使用的的装饰器。它的特性是,仅仅在变量进行初始化的时候,接受一个外部传来的值进行初始化,然后就不接受后续同步变化了, 当后续数据源进行更改时,不会将修改同步给子组件。它的底层是针对数据源的变化做了拦截操作。

2025-04-11 18:46:20 406

原创 HarmonyOS-ArkUIV2装饰器-@Param:组件外部输入

上文我们了解了@Local装饰器 ,讲明了Local装饰器不允许外部传入值对其进行初始化。详见:。但总有场景是需要外部组件传值过来,然后本组件接收这个值这种场景的。而且很多情况下,一个状态变量的作用范围会是会传递到子组件中,而不是像Local这样只能在自己所在的组件中发挥作用。对于这种场景我们用@Param装饰器可以搞定。

2025-04-11 16:19:06 1064 1

原创 HarmonyOS-ArkUI V2装饰器@Local装饰器:组件内部状态

因为Local本身的特性就是能检测到Array,Set,Map,Date等内嵌类型的API调用,我们改其中一个元素的值,就相当于调用API了,自然会被观测到。我们要讨论的是,Array,Set,Map这类类型的元素为一个Object的时候,并且Object本身存在很大深度的时候,改了某一个元素其中一个属性的值。但是如果它修饰类的对象的时候,如果对象的某个属性再下一层的某个属性发生了变化,例如 A有B类的属性,B有C类属性,这个C类中的属性中某个值发生变化了,就无法观测到了。加一个暂时的另外的动画。

2025-04-11 09:05:56 1165

原创 HarmonyOS-ArkUI 装饰器V2 @ObservedV2与@Trace装饰器

本文主要围绕类属性变化观测相关的装饰器 @ObservedV2和@Trace装饰器进行讲解。在了解这俩装饰器前我们先做一些其他方面的预习,便于以后理解。

2025-04-10 15:49:43 1152

原创 状态管理概览

先列个概览,以后慢慢分析各大装饰器。此文做了解,熟悉下概念即可。

2025-04-10 09:01:58 234

原创 HarmonyOS-ArkUI Ability进阶系列-各类生命周期总结

答:window先感知到的,对于事件分发Window是先于UIAbility知道的,如果Window接收的事件需要自己配合,比如人家知道是用户滑到任务列表了,那么先暂停下自己也是没问题的, 但是收到back键它不会处理欧,天晓得里面有多少个界面仅仅就是导航back,而不是自己退出呢,所以它自己不处理,但是会路由下去!而且有些事件的路由方式并非是系统先找Window的,再加上实现逻辑要复用吧,so首次开启的时候即使Window能先触发,那也可以在onForground之后来进行,来确保周期状态变化的一致性。

2025-04-08 15:52:06 1660

原创 有感&体会

折腾来折腾去,才领悟到,最容易的搞钱方式,就是当牛马。真的佩服那些能折腾出成绩来的人。人家但从某方面可能不如你专业,但是综合素质,是很适应这个时代大环境的,没得说。

2025-04-07 09:09:53 76

原创 HarmonyOS-ArkUI Ability进阶系列-UIAbility与各类Context

UIAbility中的this.context 与 getContext(this) 这两种方式都可以获取UIAbilityContext对象,而且获取的都是同样的实例。只是二者来源不同。

2025-04-05 18:04:37 942

原创 工程画图-UML类图 组合和聚合

分清组合 和 聚合的关系

2025-04-04 13:56:46 209

原创 HarmonyOS-ArkUI Rcp模块类关系梳理

RCP全称 Remote Communication Platform。其通过对HTTP协议的NAPI封装,提供基于场景化的声明式开发范式API接口,使开发人员无需处理低级别的HTTP细节,降低代码量并提升开发效率。提供基于会话的多线程模型,并动态调整和部署HTTP参数。相比于ohos.net.http模块。RCP在并发场景下进行了性能优化,使数据传输更快,性能更强。Session是一个生命周期略长的会话,在会话期间,可以发送多条Request,从而获取Response。

2025-04-02 18:58:54 940

原创 HarmonyOS-ArkUI NetConnection基本使用

默认激活网络指的是,系统优先使用的,正常的网络。系统自动切换。对于系统自动切换的网络,有以下三个维度物理层的网络已经连接上具备互联网访问能力具备优先级方面,依次如下有线网络wifi蜂窝VPN其他类型网络以上是系统选择网络的策略。因为以上策略,再加上我们所处的环境不断变动。所以这个默认激活网络具备变动性当更高优先级的网络出现时,连接成功的时候会自动切换网络。至少保持TCP/IP协议栈的ESTABLISHED状态。

2025-03-31 14:21:04 836

原创 HarmonyOS-ArkUI Navigation (导航组件)-第一部分

Row(){Text('菜单1')Text('菜单2')Text('菜单3')Text('菜单4')Text('菜单5')build() {Column(){.margin({top: 20,})})//设置为分栏模式//设置顶部标题.title("主标题")// 设置顶部菜单栏//设置底部工具栏。

2025-03-27 18:41:13 1142

原创 HarmonyOs-ArkUI Image组件

支持的类型。

2025-03-26 09:55:12 731

原创 HarmonyOs ArkUI- Tabs组件(导航栏)

大部分情况下,尤其是主页中的导航栏,不是纯文字的,这时候需要我们写自定义导航栏。如下图,才是应用的常态:这个的写法是比较复杂的,不过需要仔细看下,因为这里面利用了@Builder装饰器。相当于是我们提前做了解了。这个装饰器在自定义组件常见。同时如果您有实现自定义组件的需求,且这个自定义组件可以被使用者定制,您也可以仿照这样去设计!很简单且很好的案例。原理: Bars组件中的,tabBar组件,可以接受一个自定义的函数组件样式。如图好,我们就是利用CustomBuilder来进行自定义组件的设置。

2025-03-26 09:46:36 1062

原创 HarmonyOS-ArkUI Grip组件

网格布局是由“行”和“列”分割的单元格组成,通过指定项目所在的单元格做出各种各样的布局,网格布局具有较强的页面均分能力,子组件占比控制能力,是一种重要的自适应布局,使用场景如,九宫格,计算器,日历等。ArkUI为网格布局提供了相关的组件,Grid以及GridItem。Grid用来设置布局相关参数,GridItem定义子组件相关特征。

2025-03-25 16:51:47 1021

原创 HarmonyOS-ArkUI: Swiper组件

Swiper() {// ...}, false)这个主要还是靠双向绑定来完成,Swiper本身提供了一个属性。首先,每个项目展示的宽高,透明度,缩放程度,Z轴方向,都要是双向绑定的数据。以便以后面双向绑定数据发生变化之后,可以联动界面发生变化。之后我们只需要通过得知滑动的事务特点,来计算 宽高,透明度,缩放程度,Z轴方向 等属性应该会等于多少即可。这里面难的会是,滑动动一下,其他界面的值也得变化。所以计算的时候代码会有些烧脑。

2025-03-25 10:48:21 617

原创 HarmonyOs-ArkUI List组件

列表是一个复杂的容器,当列表项达到一定数量,使得列表内容超出其范围的时候,就会自动变为可以滚动。列表适合用来展现同类数据类型。

2025-03-23 07:01:43 1012

原创 HarmonyOS-UIAbility 启动模式

HarmonyOS涉及的启动模式,就是Android中的那个启动模式,一样的概念。它指的是一个UIAbility实例,被打开的时候,如果已经存在了UIAbility,是复用上一个呢,还是重新创建一个呢, 如果复用的话,那窗口行为应该是什么呢。模式就是来指定这些行为的。在HarmonyOS中启动模式被简化成了三种单例模式 singleton多实例模式 multiton指定实例模式 specified。

2025-03-19 16:40:57 830

原创 HarmonyOs- UIAbility应用上下文

有过开发经验的都知道,当我们在一个系统上进行开发的时候,无论是Android,HarmonyOs,Linux 等等,从顶层的全系统,到窗口系统,服务系统等子系统,全部存在一个叫 上下文的 概念。(如果每一个类,都记录一个关于系统信息的对象,光是设置参数同步给系统,然后其他模块各自的对象都得变,尽管逻辑上能实现,但是这种行为还是比较疯魔的,从运行速度还是内存消耗,都比共享要差很多。我们这里以顶层设计的视角,假设您要研发一个手机系统的UI框架,并且选定了实现的模型之后,那么您的上下文应该涵盖什么呢?

2025-03-19 10:33:44 1248

原创 HarmonyOS-UAbility组件基础

一个包含用户界面的应用组件,主要作用是用于和用户进行交互。就是可以经过桌面图标点击进去的,或者用户在后台使用列表选择而进入的界面。提供了窗口,用于界面绘制。UIAbility在实现上是系统调度的基本单元,为应用提供了一个绘制界面的窗口。一个应用可以包含一个或者多个UIAbility组件。且每一个UIAbility组件都会在最近列表中显示出一个任务。这块和Android的Activity是比较不一样的!如果开发者只需要您的应用里看到一个,那就使用任务。那么建议一个UIAbility + 多个页面的处理方式。

2025-03-18 14:42:03 942

原创 HarmonyOS-应用程序框架基础

应用模型是一个应用程序的模型,它是一种抽象的描述,用来描述一个程序的不同方面。上述图中出现了打包后的结构,里面有一些 .hap, .hsp 之类的文件格式,下面我们讲一下这些文件格式. 这些格式的文件都是包.格式是不一样的,里面有区别. 它们是多模块开发,模块的编译产物. 对于模块而言,分为三类,对应编译出来的包文件格式也是三类.应用框架可以看做是应用模型的一种实现方式,开发人员可以用应用模型来描述应用程序的结构和行为的描述,然后使用应用程序框架来实现这些描述。这在一方面体现了,可分可合的特点。

2025-03-16 15:47:55 573

原创 手机端安装包签名原理

楼主先列出自己的总结,再讲签名签名的本质 = 哈希值被加密生成的 这段数据(如果不理解哈希值的原理和用途,建议先了解一下这块,否则难以理解下文的原理!)至于用什么加密手段,看使用方怎么个策略,对于移动开发的打包签名, 哈希值被加密,采用的算法是 非对称性加密,(如果不理解非对称性加密,还是建议先了解一下这块,否则流程中您可能还是不懂为什么要那么做。签名可以理解为,被数字签名技术运算,在文件中附上的独一无二的那个标识。这个生成“标识”的过程比较复杂。其核心目的就是确保一个文件的独一无二。

2025-03-12 20:29:01 959

原创 synchronized实现原理

synchronized的处理多次提到了监视器锁这个概念。什么是监视器锁呢?监视器锁是synchronized实现的核心,也是JVM保证多线程机制的核心。监视器锁严格来讲,要分成,锁和监视器来讲。我们先对这两个概念进行初步的了解,之后再串联动态执行时的机制。所谓的“锁”究竟是什么对象头数据解析在java中,每一个对象在存储时,具备一个对象头。他是对象在内存布局中的一部分。主要是用于存储对象的一些元数据信息,比如哈希码,分代年龄,锁状态等。对象头的信息对于JVM实现锁机制,垃圾回收机制,具有重大的意义。

2025-02-13 17:33:36 937

原创 JVM之Java编译到执行(1)--引

成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。JVM的整体流程开始于类加载,我们知道了JVM宏观的思路后,再研究每个环节,下篇文章将先从类加载讲起, 类加载的输入是class文件(字节码文件),楼主将贯彻费曼学习法,知无不言,将他们写出来。javac就是Java的前端编译器,是个编译工具,负责把程序员写的java文件,经过初步的分析,转换为class文件。总共拆分为两个阶段。

2025-01-23 14:20:14 1325

HarmonyOS-ArkUI Rcp模块类关系梳理图片

HarmonyOS-ArkUI Rcp模块类关系梳理图片

2025-04-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除