<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[memoryjs的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/memoryjs</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; memoryjs]]></copyright><item><title><![CDATA[鸿蒙系统进一步学习（三）：ArkUI的差分渲染]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/162465334</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/162465334</guid><author>memoryjs</author><pubDate>Tue, 30 Jun 2026 22:35:14 +0800</pubDate><description><![CDATA[本文介绍了ArkUI框架中的UI组件树和&quot;三棵树&quot;渲染机制。UI组件树展示了页面从根节点到自定义组件的层级结构，包含FrameNode和CustomNode等节点类型。为实现高效更新，ArkUI采用Component、Element和Render三棵树模型：Component树保存组件结构和属性，Element树负责差异计算，Render树处理实际渲染。首次加载时会生成完整三棵树，状态变化时通过比对差异实现局部更新。虽然这种机制保证了最小化刷新，但也存在内存开销较大、复杂场景下可能影响性]]></description><category></category></item><item><title><![CDATA[鸿蒙系统进一步学习（二）：ArkUI底层原理揭秘]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/160602035</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/160602035</guid><author>memoryjs</author><pubDate>Tue, 28 Apr 2026 21:52:11 +0800</pubDate><description><![CDATA[鸿蒙6.0系统流畅度堪比iOS，其核心在于ArkUI的底层渲染优化机制。系统渲染流程分为信号触发、前期准备、控件测量、布局定位和最终渲染五个关键步骤，各步骤职责明确且顺序严格。高刷新率屏幕（如120Hz）对系统提出更高要求，需在8.3ms内完成单帧处理。ArkUI采用差分渲染技术，通过智能识别局部变化区域（如按钮状态更新），仅刷新必要控件而非整个页面，显著降低计算量和渲染时间。这种局部刷新策略配合硬件升级，共同实现了鸿蒙系统的卓越流畅体验，也为开发者优化应用性能提供了明确方向。]]></description><category></category></item><item><title><![CDATA[鸿蒙系统进一步学习（一）：学习资料总结，少走弯路]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/136101815</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/136101815</guid><author>memoryjs</author><pubDate>Mon, 12 Feb 2024 16:44:07 +0800</pubDate><description><![CDATA[参与鸿蒙开发，你要先认清适合你的方向，如果是想从事鸿蒙应用开发方向的话，可以参考本文的学习路径，简单来说就是：像小白一样参考视频学习，像小白一样踏踏实实考试，然后照着别人的代码写一写，改一下，知道大概怎么回事，到实际开发的时候，还是得多参考一下api，这个网页不太稳定，可能会卡死一会，别操作太快。如果还有其他问题，请给笔者留言，也可以关注我。]]></description><category></category></item><item><title><![CDATA[鸿蒙系统扫盲（七）：勘误补充总结，收个尾]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/135940719</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/135940719</guid><author>memoryjs</author><pubDate>Tue, 30 Jan 2024 20:23:46 +0800</pubDate><description><![CDATA[这是笔者鸿蒙扫盲系列的最后一篇了，准备对过去的六篇扫盲系列文章，错误的地方做一些勘误，并且补充更新一些朋友们感兴趣的知识，最后收个尾。]]></description><category></category></item><item><title><![CDATA[鸿蒙系统扫盲（五）：再谈鸿蒙开发用什么语言？]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/134951891</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/134951891</guid><author>memoryjs</author><pubDate>Tue, 12 Dec 2023 19:26:53 +0800</pubDate><description><![CDATA[ets的性能在正常情况下是无法比得过Java的执行效率，而在方舟编译器和毕昇编译器的特别优化下，可以取得更高地执行效率（据说是可以比肩IOS的），之所以选择ts作为开发语言，因为每一个系统都需要配套的生态软件才能长久，而Java需要拖一个JVM，会降低运行效率，而C++门槛比较高，所以选择了有一定开发者基数，没有版权问题，且还能通过编译器提高运行效率的语言，所以华为选择了TypeScript。]]></description><category></category></item><item><title><![CDATA[鸿蒙系统扫盲（四）：鸿蒙使用的是微内核？]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/134741640</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/134741640</guid><author>memoryjs</author><pubDate>Mon, 04 Dec 2023 19:04:42 +0800</pubDate><description><![CDATA[微内核和宏内核各有各的好处，而现在鸿蒙系统，除了L5级别，由于设备的高要求，无法达到所需的高实时性，还用着Linux的内核，其他设备已经全部使用鸿蒙内核（LiteOS-m和LiteOS-A，根据设备的等级，选择不同的内核），希望在华为的努力下，L5也可以接入微内核，让我们一起期待！]]></description><category></category></item><item><title><![CDATA[鸿蒙系统扫盲（三）：鸿蒙开发用什么语言？]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/134693874</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/134693874</guid><author>memoryjs</author><pubDate>Wed, 29 Nov 2023 17:16:09 +0800</pubDate><description><![CDATA[鸿蒙经过几年的迭代，抛弃了Java，基于TS出了一个官方推荐的ArkTS语言，甩开了JVM，提升效率，同时支持自己研发的一些现代化特性，没有版权的问题，现在唯一的问题就是各大公司愿不愿意为它去适配生态了，还好的是，目前各大互联网公司已经开始适配了。]]></description><category></category></item><item><title><![CDATA[鸿蒙系统扫盲（二）：再谈鸿蒙是不是安卓套壳？]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/134426644</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/134426644</guid><author>memoryjs</author><pubDate>Tue, 21 Nov 2023 20:07:13 +0800</pubDate><description><![CDATA[最近小米发布了澎湃OS，vivo发布了蓝OS，好像自从华为回归后，大伙都开始写自己的OS了，小米官方承认是套壳安卓，然后被大家喷了，于是鸿蒙是不是安卓套壳的话题又回到了大众的视野，今天在讨论下这个问题。]]></description><category></category></item><item><title><![CDATA[鸿蒙系统扫盲（一）：鸿蒙OS和开源鸿蒙什么关系？]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/134273344</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/134273344</guid><author>memoryjs</author><pubDate>Tue, 14 Nov 2023 18:54:18 +0800</pubDate><description><![CDATA[可以这么简单的理解，开源鸿蒙是鸿蒙最基础的形态，但是由于初始阶段，不成熟也没有配套的软件（微信，淘宝和抖音没有纯鸿蒙版本），所以必须加了安卓兼容层，野蛮生长，经过了4年多的迭代，系统已经成熟了，可以剔除安卓兼容层了，最近大家也知道了，各个大厂已经在着手适配纯鸿蒙系统，气氛都烘托这了，这是必须要做的事情了！]]></description><category></category></item><item><title><![CDATA[安卓应用移植鸿蒙（五）：发布鸿蒙自定义组件（har包）到MavenCenter全过程，采坑无数]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/120266067</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/120266067</guid><author>memoryjs</author><pubDate>Mon, 13 Sep 2021 16:28:28 +0800</pubDate><description><![CDATA[这里首先吐槽一下，MavenCenter真心发布太难用，而华为官方的教程更是半吊子，如果第一次使用Maven发布的同学，基本不可能顺利发布，笔者前后消耗近2周时间。

希望这个文章能给想发布鸿蒙自定义组件的同学带来一点帮助，少走坑和弯路，心愿足矣

1.资料

互联网的资料多如横河沙数，你可以搜到很多资料，但是大部分没用，还可能误导你。

1.1排雷

1）如果你没有用过MavenCenter去发布，一定会去找资料，那么找到的一般都是Java发布到MavenCenter，Android发布到MavenCen]]></description><category></category></item><item><title><![CDATA[安卓应用移植鸿蒙（四）：移植Android的ViewModel和LiveData]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/120207439</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/120207439</guid><author>memoryjs</author><pubDate>Thu, 09 Sep 2021 19:45:38 +0800</pubDate><description><![CDATA[经过几天的努力，终于把ViewModel和LiveData移植过来了，代码开源地址：

ViewModel_LiveData_for_ohoshttps://gitee.com/ethan-osc_admin/viewmodel_for_ohos

1.基本介绍

ViewModel和LiveData做安卓开发的小伙伴都很熟悉了，我就不过多介绍了，有了他们，我们可以实现MVVM框架，可以让系统自动管理数据的生命周期了，是安卓开发中不可获取的重要组件。笔者在移植网络的库的时候，需要用到这两个组...]]></description><category></category></item><item><title><![CDATA[安卓应用移植鸿蒙（三）：Native的C++代码移植（jni和so库）]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/120024894</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/120024894</guid><author>memoryjs</author><pubDate>Tue, 31 Aug 2021 19:30:08 +0800</pubDate><description><![CDATA[这个也是绕不过去的砍，早起的鸿蒙版本里，Native代码支持的设备类型只有车机，新的DevEco才支持手机，笔者一开始也是找了很多文章，发现一篇文章讲的很详细，贴给大家，我就不赘述了，我按照他们的方法，成功移植的Native的代码带鸿蒙上。

鸿蒙JNI开发实战，这篇文章写得很详细，步骤也很清晰，我就说几点它里面没提到的

1、鸿蒙只支持armv8a的架构，如果你在Gradle的Fliter里面写上armv7a，编译会报错（猜测是分布式系统64位的便于寻址和管理）

2、lib++.so一定要引入，这点和安]]></description><category></category></item><item><title><![CDATA[安卓应用移植鸿蒙（二）：移植安卓的字符串等资源文件到鸿蒙应用]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/120024630</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/120024630</guid><author>memoryjs</author><pubDate>Tue, 31 Aug 2021 19:18:56 +0800</pubDate><description><![CDATA[安卓里的很多资源文件，比如字符串，都是用xml写的，而在鸿蒙里，是用json写的，如果你要批量移植（直接复制粘贴），是无法使用的，鸿蒙的DevEco也不会帮你自动转，这个时候怎么办？

比如：



我直接拷贝到DevEco中是这样的：



鸿蒙应用开发里，这些都是json的形式（我其实没想通华为为啥要这么整？增加门槛，难道解析速度会快？）这些都是不能直接使用的，怎么整？

这个时候我们要借助工具了，人非生而知之者，善利于器：

在线XML、JSON数据互转，通过这个网址，可以把xml的数据，转成Jso.]]></description><category></category></item><item><title><![CDATA[安卓应用移植鸿蒙（一）——先做个梳理]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/120024321</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/120024321</guid><author>memoryjs</author><pubDate>Tue, 31 Aug 2021 19:02:56 +0800</pubDate><description><![CDATA[上篇文章说，鸿蒙应用开发和安卓应用开发非常像，那么你是不是有个想法，出个一键转码工具，直接给你转成鸿蒙的，我tm真是天才！

这个问题我咨询过华为的内部人士，确实有这样的工具，正在开发，预计2021年底能随着DevEco一起上线，但是泼个冷水，我觉得它只能简单转码，不能做到完全转码，因为安卓很多功能和接口鸿蒙都没有，现在的鸿蒙应用开发，和2011年安卓开发的市场资源是非常像的。

所以如果我们自己去移植自己的安卓应用到鸿蒙，应该怎么弄？先来做个梳理：

1）与安卓无关的代码

纯java代码，可以直接使用，]]></description><category></category></item><item><title><![CDATA[鸿蒙系统入门介绍（三）：到底和安卓有多像？]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/119934896</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/119934896</guid><author>memoryjs</author><pubDate>Thu, 26 Aug 2021 16:56:59 +0800</pubDate><description><![CDATA[前面讲了软总线，不知道你的感觉如何？反正我听过视频讲解后，只得出两个字：牛逼！

第一篇文章说它只是像安卓，应该还复用了安卓的一些库，那么它到底和安卓有多像？看完这个，你大概就觉得鸿蒙开发应用，更加平易近人了。

话不多说，直接上图，没图说个屁

1.项目结构



是不是感觉和安卓开发结构很像，相似的IDE，相似的目录结构，就是名字不太一样，我来给你缕缕。

resource目录就是安卓的res目录，一样的

base 、zh.base和en.base，和安卓的里的多语言是一样的，默认去base中的资源.]]></description><category></category></item><item><title><![CDATA[鸿蒙系统入门介绍（二）：看完这篇，出去吹牛逼够了]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/119931168</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/119931168</guid><author>memoryjs</author><pubDate>Thu, 26 Aug 2021 16:35:58 +0800</pubDate><description><![CDATA[接上篇文章，说了一下，鸿蒙所具有分布式能力，不是换层皮就能够达到的，它的分布式能力是巨牛逼，下面就做个简单但是比较干货的介绍。



它之所以可以实现分布能力，原因之一就是所有设备都可以运行鸿蒙系统，这样他们之间通讯就有了硬件基础，有了硬件基础后，就像人有了身体和骨骼，而支撑它的能力的就是它的灵魂——分布式软总线！

鸿蒙的灵魂——分布式软总线



鸿蒙的所有的分布式能力都是因为有了分布式软总线，这个也是目前其他厂商想要实现，但是实现的都没有华为的好的地方（OPPO目前自己做了一套，想实现同样的分布式..]]></description><category></category></item><item><title><![CDATA[鸿蒙系统入门介绍（一）：到底是不是安卓换了一层皮？]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/119930450</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/119930450</guid><author>memoryjs</author><pubDate>Thu, 26 Aug 2021 14:35:47 +0800</pubDate><description><![CDATA[我一直觉得管中窥豹，只见一斑，如果想要学习好鸿蒙，首先要对它做个整体了解，看清它的全貌，所以在讲如果开始鸿蒙开发之前，先写个篇文章，简单介绍下鸿蒙系统，但是概念性的不想多讲，你看的累，我写的也累，只讲学习中感悟最深的干货。

到底是不是安卓？

很多人都说，鸿蒙是安卓换了一层皮，做的非常像，但是鸿蒙不是安卓，之所以做的像安卓，简单说几点：

一、是考虑到消费者的迁移成本，相似的事情更加容易接受

二、就是考虑到开发者的开发难度，要知道WP以及挑战安卓和IOS都失败的系统，最终是死在了生态上，要从安...]]></description><category></category></item><item><title><![CDATA[鸿蒙第一次崩溃，找不到资源，其实文件存在，鸿蒙的安卓痕迹还是很明显的]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/119819530</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/119819530</guid><author>memoryjs</author><pubDate>Fri, 20 Aug 2021 11:27:06 +0800</pubDate><description><![CDATA[原因是：ModuleA引用ModuleB，而A和B里面有相同命名的布局文件，所以导致系统在A的布局里去找了B的控件ID，从而报错

这个和安卓差距还是有的，没法识别不同Module里面的相同命名的资源，所以命名的时候一定更要注意，带上模块的前缀







不得不说，鸿蒙的安卓痕迹还是很明显的，估计复用了很多安卓的库


...]]></description><category></category></item><item><title><![CDATA[华为HarmonyOS（鸿蒙学习）路径，先把证书考了]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/119614587</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/119614587</guid><author>memoryjs</author><pubDate>Wed, 11 Aug 2021 19:13:13 +0800</pubDate><description><![CDATA[相信每位小伙伴，想学习鸿蒙，都不知道在哪里学，怎么学？

学习任何一个东西，先把它的理论学习一边，工欲善其事必先利其器，如果上来就编程，虽然短时间能够写出一点程序，但是后患是非常严重的，就像当年学习安卓一样，上来一点安卓的基础都没有，直接编程，写出来的代码会有很多常识性错误。

这里推荐华为的官方学习网站，而且学习完成后，还会给你颁发证书。可以对自己的学习成绩有个证明，而且外面也认这个。

首先学习鸿蒙的基础篇：

https://developer.huaweiuniversity.com/portal/]]></description><category></category></item><item><title><![CDATA[HarmonyOS阶段测试（从零开始开发HarmonyOS应用）（1）]]></title><link>https://blog.youkuaiyun.com/memoryjs/article/details/119383839</link><guid>https://blog.youkuaiyun.com/memoryjs/article/details/119383839</guid><author>memoryjs</author><pubDate>Thu, 05 Aug 2021 09:02:22 +0800</pubDate><description><![CDATA[判断题

1.HarmonyOS是一款面向全场景（移动办公、运动健康、社交通信、媒体娱乐等）的分布式操作系统。

True正确

False



2.HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念，能够支持多种终端设备。

True正确

False



3.HarmonyOS的应用由一个或多个FA（Feature Ability）或PA（Particle Ability）组成。

True正确

False



单选题

3分（未计分）

1.HarmonyOS整体遵...]]></description><category></category></item></channel></rss>