<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Harmony Developers]]></title><description><![CDATA[We are developers passionate about Huawei's new HarmonyOS Next, Open Harmony and Eclipse Oniro.]]></description><link>https://www.harmony-developers.com</link><image><url>https://substackcdn.com/image/fetch/$s_!levV!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F962ee86e-9877-46f5-856a-d609206a53e9_608x608.png</url><title>Harmony Developers</title><link>https://www.harmony-developers.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 03 May 2026 11:02:45 GMT</lastBuildDate><atom:link href="https://www.harmony-developers.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Harmony OS Developers]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[hosdevs@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[hosdevs@substack.com]]></itunes:email><itunes:name><![CDATA[Harmony OS Developers]]></itunes:name></itunes:owner><itunes:author><![CDATA[Harmony OS Developers]]></itunes:author><googleplay:owner><![CDATA[hosdevs@substack.com]]></googleplay:owner><googleplay:email><![CDATA[hosdevs@substack.com]]></googleplay:email><googleplay:author><![CDATA[Harmony OS Developers]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Backlash Against US Government’s Block on Huawei’s HarmonyOS ]]></title><description><![CDATA[This decision has sparked significant backlash from various stakeholders, including consumers, tech enthusiasts, and market competition advocates haring third platform choice in the global market.]]></description><link>https://www.harmony-developers.com/p/backlash-against-us-governments-block</link><guid isPermaLink="false">https://www.harmony-developers.com/p/backlash-against-us-governments-block</guid><dc:creator><![CDATA[IT Home (China)]]></dc:creator><pubDate>Sun, 18 May 2025 09:22:47 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/34f14736-fda3-4a95-ae13-9a78eb935f19_3508x2339.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>In a recent and controversial move, the United States government, in collaboration with its allies in Western Europe and NATO-aligned countries, has intensified efforts to block Huawei&#8217;s HarmonyOS. This decision has sparked significant <a href="https://www.change.org/p/stop-blockade-on-huawei-s-harmonyos-by-united-states-imposing-on-western-nations?recruiter=1149202730&amp;recruited_by_id=64b42c50-f6be-11ea-91ff-1dd98d779b8a&amp;utm_source=share_petition&amp;utm_campaign=petition_dashboard&amp;utm_medium=copylink">backlash from various stakeholders, including consumers, tech enthusiasts, and market competition advocates</a>.</p></blockquote><h4><strong>The Problem</strong></h4><blockquote><p>The push to <a href="https://t.co/8HOBDtBLIt">block Huawei&#8217;s HarmonyOS</a> raises substantial concerns about market competition and consumer choice. Critics argue that such actions could stifle innovation and limit technological advancement. In a marketplace that thrives on diversity and competition, the outright blocking of HarmonyOS could lead to a monopolistic environment, ultimately affecting consumer satisfaction and economic growth.</p></blockquote><h4><strong>Market Competition and Innovation</strong></h4><blockquote><p>Market competition is a driving force behind continuous innovation and improvement. When consumers have multiple options, companies are compelled to innovate and offer better products and services. HarmonyOS, developed by Huawei, offers a distinctive alternative to dominant operating systems, potentially fuelling further innovation and providing more choices for tech-savvy consumers.</p></blockquote><h4><strong>Security Concerns and Alternative Solutions</strong></h4><blockquote><p>While security concerns related to Huawei&#8217;s technology are valid, so are American counterparts&#8217; such as iOS and Android security concerns on data gathering and privacy in the world of AI emergence. Many argue that blanket blocking without exploring alternative solutions or collaborations may not be the most effective approach. A dialogue between stakeholders could lead to transparent solutions that address security issues while still allowing innovation to flourish. Constructive engagement, rather than isolation, might help address security concerns without compromising competition.</p></blockquote><h4><strong>A Balanced Approach</strong></h4><blockquote><p>Advocates for a balanced approach argue that HarmonyOS should be given the opportunity to compete in the market, allowing consumers to decide. This perspective is echoed in a recent petition urging lawmakers to reconsider the decision to block HarmonyOS. The petition emphasizes the importance of promoting a competitive, diverse, and innovative market environment.</p></blockquote><h4><strong>Consumer Choice and Economic Growth</strong></h4><p>Every consumer deserves the ability to navigate a marketplace that offers variety, fosters innovation, and encourages competitive pricing. Blocking HarmonyOS outright could limit these benefits, ultimately affecting consumer satisfaction and economic growth. Encouraging debates and solutions that address security concerns while nurturing market competition is essential for progress.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hvia!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd8c65c-5262-4e89-afb4-b1fbf5f59f0a_679x900.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hvia!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd8c65c-5262-4e89-afb4-b1fbf5f59f0a_679x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hvia!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd8c65c-5262-4e89-afb4-b1fbf5f59f0a_679x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hvia!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd8c65c-5262-4e89-afb4-b1fbf5f59f0a_679x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hvia!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd8c65c-5262-4e89-afb4-b1fbf5f59f0a_679x900.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hvia!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd8c65c-5262-4e89-afb4-b1fbf5f59f0a_679x900.jpeg" width="679" height="900" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fbd8c65c-5262-4e89-afb4-b1fbf5f59f0a_679x900.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:900,&quot;width&quot;:679,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!hvia!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd8c65c-5262-4e89-afb4-b1fbf5f59f0a_679x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hvia!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd8c65c-5262-4e89-afb4-b1fbf5f59f0a_679x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hvia!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd8c65c-5262-4e89-afb4-b1fbf5f59f0a_679x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hvia!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd8c65c-5262-4e89-afb4-b1fbf5f59f0a_679x900.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Conclusion</strong></h4><p>The<a href="https://petition.parliament.uk/petitions/727893/sponsors/new?token=VAyV5v5HLCDefUkSKBW9"> backlash against the US government&#8217;s decision to block Huawei&#8217;s HarmonyOS highlights the importance of market competition and consumer choice</a>. As the debate continues, it is crucial to seek a balanced approach that addresses security concerns while promoting innovation and competition.</p><p></p><p>Original source: <a href="https://harmonyoshub.com/backlash-against-us-governments-block-on-huaweis-harmonyos/">Backlash Against US Government's Block on Huawei's HarmonyOS - HarmonyOSHub </a></p>]]></content:encoded></item><item><title><![CDATA[The software performance and stability have been improved, and Huawei HarmonyOS 5.0.5 (17) Release has been released]]></title><description><![CDATA[On May 15th Huawei&#8217;s official developer official website today released HarmonyOS 5.0.5 (17) Release version,The new version is based on the previously released HarmonyOS 5.0.5 (17) Beta1,The software]]></description><link>https://www.harmony-developers.com/p/the-software-performance-and-stability</link><guid isPermaLink="false">https://www.harmony-developers.com/p/the-software-performance-and-stability</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Thu, 15 May 2025 08:07:56 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4f652519-76a7-4656-9398-873a0afbf463_3968x2643.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://www.ithome.com/">IT Home</a> News on May 15th Huawei&#8217;s official developer website today released <a href="https://hmos.ithome.com/">HarmonyOS</a> <a href="https://hmos.ithome.com/">5.0.5</a> (17) Release version. The new version is based on the previously released <a href="https://hmos.ithome.com/">HarmonyOS</a> 5.0.5 (17) Beta 1. The <strong>software performance and stability have been improved, OS</strong> There are no new or enhanced features of the platform.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QLB5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4893d3b6-f86f-47e6-9f11-61b3d99fc357_1278x454.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QLB5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4893d3b6-f86f-47e6-9f11-61b3d99fc357_1278x454.webp 424w, https://substackcdn.com/image/fetch/$s_!QLB5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4893d3b6-f86f-47e6-9f11-61b3d99fc357_1278x454.webp 848w, https://substackcdn.com/image/fetch/$s_!QLB5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4893d3b6-f86f-47e6-9f11-61b3d99fc357_1278x454.webp 1272w, https://substackcdn.com/image/fetch/$s_!QLB5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4893d3b6-f86f-47e6-9f11-61b3d99fc357_1278x454.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QLB5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4893d3b6-f86f-47e6-9f11-61b3d99fc357_1278x454.webp" width="1278" height="454" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4893d3b6-f86f-47e6-9f11-61b3d99fc357_1278x454.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:454,&quot;width&quot;:1278,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&#36719;&#20214;&#24615;&#33021;&#21644;&#31283;&#23450;&#24615;&#25552;&#21319;&#65292;&#21326;&#20026;&#40511;&#33945; HarmonyOS 5.0.5 (17) Release &#29256;&#26412;&#21457;&#24067;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="&#36719;&#20214;&#24615;&#33021;&#21644;&#31283;&#23450;&#24615;&#25552;&#21319;&#65292;&#21326;&#20026;&#40511;&#33945; HarmonyOS 5.0.5 (17) Release &#29256;&#26412;&#21457;&#24067;" srcset="https://substackcdn.com/image/fetch/$s_!QLB5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4893d3b6-f86f-47e6-9f11-61b3d99fc357_1278x454.webp 424w, https://substackcdn.com/image/fetch/$s_!QLB5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4893d3b6-f86f-47e6-9f11-61b3d99fc357_1278x454.webp 848w, https://substackcdn.com/image/fetch/$s_!QLB5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4893d3b6-f86f-47e6-9f11-61b3d99fc357_1278x454.webp 1272w, https://substackcdn.com/image/fetch/$s_!QLB5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4893d3b6-f86f-47e6-9f11-61b3d99fc357_1278x454.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The full package for HarmonyOS 5.0.5 Release is as follows:</p><p>The following table compares the mappings of released versions of HarmonyOS:</p><p>HarmonyOS 5.0.5 (17) Beta1 adds and enhances the following features (same as the Release version):</p><blockquote><h2><em><strong>Ability</strong></em></h2><ul><li><p><em>Added support for specifying the size of the new window (minWindowWidth, minWindowHeight, maxWindowWidth, maxWindowHeight) via the startAbility property StartOptions.</em></p></li><li><p><em>C API added support for passing StartOptions when starting Ability.</em></p></li><li><p><em>C API added support for obtaining sub-process startup parameters.</em></p></li><li><p><em>C API adds support for setting the display mode of window and dock bar icons when starting Ability.</em></p></li></ul><h2><em><strong>ArkData</strong></em></h2><ul><li><p><em>UDMF adds support for converting incoming data into multi-style data structures. If the original data uses multiple records to carry different styles of the same data, you can use this API to convert the original data into a multi-style data structure.</em></p></li></ul><h2><em><strong>AR Engine</strong></em></h2><ul><li><p><em>Depth estimation is added to provide 3D perception capabilities, which can realize measurement, volume estimation, and more.</em></p></li></ul><h2><em><strong>ArkUI</strong></em></h2><ul><li><p><em>Added APIs related to mouse axis events.</em></p></li><li><p><em>NavDestination adds onActive and onInactive lifecycles.</em></p></li><li><p><em>The event capability of the C API has been enhanced, and the ability to obtain the width, height, X coordinates, and Y coordinates of components hit by an event has been added.</em></p></li><li><p><em>Added support for clearing the current pre-screen text content in the base type definition.</em></p></li><li><p><em>UIContext adds support for creating UI instances that don&#8217;t depend on windows.</em></p></li><li><p><em>Added support for setting the callback parameter of the event to limit its execution interval.</em></p></li><li><p><em>The ImageAnimator component supports setting whether to determine whether to pause and play the component by the visibility of the system onVisibleAreaChange.</em></p></li><li><p><em>The picture-in-picture window supports the creation of the parameter LocalStorage to achieve a page-level UI state storage unit, which can be used to track the main window instance under multiple instances.</em></p></li><li><p><em>Added support for the size memory function of the main window in the window management of PC / 2in1 devices.</em></p></li><li><p><em>Added support for setting the blur radius of shadows on the edge of a sub-window or floating window for PC / 2in1 devices and tablet devices.</em></p></li><li><p><em>Added support for window management for PC/2in1 devices and tablets to set whether a child window can be displayed across multiple screens at the same time when its parent window is in the process of dragging and moving or drag-and-zoom.</em></p></li></ul><h2><em><strong>Audio Kit</strong></em></h2><ul><li><p><em>Added support for Float32 audio stream sampling format.</em></p></li></ul><h2><em><strong>AVCodec Kit</strong></em></h2><ul><li><p><em>Video decoding supports MPEG2, MPEG4, and H.263 software decoding.</em></p></li></ul><h2><em><strong>AVSession Kit</strong></em></h2><ul><li><p><em>Added support for single-sentence/single-lyric display property singleLyricText.</em></p></li></ul><h2><em><strong>Background Tasks Kit</strong></em></h2><ul><li><p><em>The background sub-process management module is added to provide the ability for applications to suppress and decompress sub-processes, so as to prevent sub-processes from occupying too much system resources and causing system lag.</em></p></li></ul><h2><em><strong>Connectivity Kit</strong></em></h2><ul><li><p><em>The Bluetooth socket module adds the ability to obtain the address of the peer device through clientSocket.</em></p></li></ul><h2><em><strong>File Manager Service Kit</strong></em></h2><ul><li><p><em>&#12304;New Kit&#12305;File Manager Service Kit provides developers with file management capabilities, such as deleting files to the recycle bin and obtaining file icons, to meet the diverse demands of users for file management.</em></p></li></ul><h2><em><strong>IME Kit</strong></em></h2><ul><li><p><em>The input method framework adds support for setting the callback when the preview text is displayed, and supports subscribing to the event of the input method application operation text preview content.</em></p></li></ul><h2><em><strong>Media Kit</strong></em></h2><ul><li><p><em>When you call AVPlayer to set a playback policy, the first frame of the video after Prepare (showFirstFrameOnPrepare) is displayed.</em></p></li></ul><h2><em><strong>Payment Kit</strong></em></h2><ul><li><p><em>Added the ability to guide users to bind cards.</em></p></li></ul><h2><em><strong>PDF Kit</strong></em></h2><ul><li><p><em>Added support for encrypting PDF documents.</em></p></li></ul><h2><em><strong>Preview Kit</strong></em></h2><ul><li><p><em>Added file opening acceleration preload state awareness.</em></p></li></ul><h2><em><strong>Vision Kit</strong></em></h2><ul><li><p><em>A status code is added to the document scan result callback interface to determine whether all the input image URLs are invalid.</em></p></li></ul><h2><em><strong>Profiles</strong></em></h2><ul><li><p><em>Added Hook configuration file module.json5: You can use the abilitySrcEntryDelegator to identify the name of the UIAbility of the current module that needs the hook, and use the abilityStageSrcEntryDelegator You can identify the AbilityStage (the value of which is configured to correspond to the name of the module) that the current module needs to hook, and the two are used in combination to specify the target object of the hook.</em></p></li></ul><p>The new version notes are as follows:</p><ul><li><p><em>For the system version, please visit the &#8220;Settings&gt; Device Name &gt;Software Version&#8221; of the device, and go to &#8220;About This Mac&#8221; for inquiries. You must check whether the open capabilities described in the current version are supported in the API Version section of the page.The devices that are available in the current system version include: Mate 60, Mate 60 Pro, Mate X5, MatePad Pro 13.2-inch, MatePad Pro 11-inch 2024, etc. Please upgrade to the companion version for application development.It is not excluded that other models of devices can be upgraded to the above system software (ROM) version through other channels, but the open capabilities supported by the device are subject to the &#8220;API version&#8221; displayed on the &#8220;About this machine&#8221; page.</em></p></li><li><p><em>For the DevEco Studio version, please select &#8220;Help &gt; About DevEco Studio&#8221; from the DevEco Studio interface menu. Please <a href="https://developer.huawei.com/consumer/cn/deveco-studio/">click here</a> for the latest DevEco Studio software release.</em></p></li><li><p><em>The SDK is built into DevEco Studio, and the companion version of the SDK is automatically installed when you install DevEco Studio. For more information, choose Help &gt; About HarmonyOS SDK from the DevEco Studio menu.</em></p></li></ul><div><hr></div></blockquote><p></p><p>Global Aggegrate Source: <a href="https://harmonyoshub.com/the-software-performance-and-stability-have-been-improved-and-huawei-harmonyos-5-0-5-17-release-has-been-released/">The software performance and stability have been improved, and Huawei HarmonyOS 5.0.5 (17) Release has been released - HarmonyOSHub</a></p><p>Original Source: <a href="https://www.ithome.com/0/853/173.htm">Software performance and stability improvement, Huawei HarmonyOS 5.0.5 (17) Release released &#8211; IT Home</a></p>]]></content:encoded></item><item><title><![CDATA[The mobile police terminal based on the open source HarmonyOS was unveiled, adapted to the OpenHarmony 5.0 Release version and Police Hong ]]></title><description><![CDATA[OpenAtom OpenHarmony, an open-source open-source police terminal based on OpenHarmony has now been unveiled.]]></description><link>https://www.harmony-developers.com/p/the-mobile-police-terminal-based</link><guid isPermaLink="false">https://www.harmony-developers.com/p/the-mobile-police-terminal-based</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Wed, 14 May 2025 12:53:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NKZO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53686f47-d6d2-4b86-812f-c9d084efd70e_1080x810.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://www.ithome.com/">IT Home</a> reported on May 14 that according to OpenAtom OpenHarmony, an <strong>open-source open-source police terminal based on</strong> OpenHarmony has now been unveiled.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NKZO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53686f47-d6d2-4b86-812f-c9d084efd70e_1080x810.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NKZO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53686f47-d6d2-4b86-812f-c9d084efd70e_1080x810.webp 424w, https://substackcdn.com/image/fetch/$s_!NKZO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53686f47-d6d2-4b86-812f-c9d084efd70e_1080x810.webp 848w, https://substackcdn.com/image/fetch/$s_!NKZO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53686f47-d6d2-4b86-812f-c9d084efd70e_1080x810.webp 1272w, https://substackcdn.com/image/fetch/$s_!NKZO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53686f47-d6d2-4b86-812f-c9d084efd70e_1080x810.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NKZO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53686f47-d6d2-4b86-812f-c9d084efd70e_1080x810.webp" width="1080" height="810" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53686f47-d6d2-4b86-812f-c9d084efd70e_1080x810.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:810,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:&quot;&#22522;&#20110;&#24320;&#28304;&#40511;&#33945;&#30340;&#31227;&#21160;&#35686;&#21153;&#32456;&#31471;&#20142;&#30456;&#65292;&#36866;&#37197; OpenHarmony 5.0 Release &#29256;&#26412;&#21644;&#35686;&#40511;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="&#22522;&#20110;&#24320;&#28304;&#40511;&#33945;&#30340;&#31227;&#21160;&#35686;&#21153;&#32456;&#31471;&#20142;&#30456;&#65292;&#36866;&#37197; OpenHarmony 5.0 Release &#29256;&#26412;&#21644;&#35686;&#40511;" srcset="https://substackcdn.com/image/fetch/$s_!NKZO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53686f47-d6d2-4b86-812f-c9d084efd70e_1080x810.webp 424w, https://substackcdn.com/image/fetch/$s_!NKZO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53686f47-d6d2-4b86-812f-c9d084efd70e_1080x810.webp 848w, https://substackcdn.com/image/fetch/$s_!NKZO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53686f47-d6d2-4b86-812f-c9d084efd70e_1080x810.webp 1272w, https://substackcdn.com/image/fetch/$s_!NKZO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53686f47-d6d2-4b86-812f-c9d084efd70e_1080x810.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>According to reports, mobile police terminal products based on open source Hongmeng are widely used in the following scenarios:</p><ul><li><p>Daily patrol and public security prevention and control: Handheld law enforcement PDA, law enforcement recorder and other equipment support face recognition, license plate capture and real-time video backhaul to help the police complete daily patrol and public security prevention and control.</p></li><li><p>Emergency response and counter-terrorism: In emergencies, terminals support multi-modal communication and multi-department coordinated operations.</p></li><li><p>Smart case handling and administrative quick handling are applied to functions such as electronic transcription, video inquiry, and automatic document generation.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LGbN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cf99ab7-7b09-4487-beea-bf478fd2fb76_1080x810.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LGbN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cf99ab7-7b09-4487-beea-bf478fd2fb76_1080x810.webp 424w, https://substackcdn.com/image/fetch/$s_!LGbN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cf99ab7-7b09-4487-beea-bf478fd2fb76_1080x810.webp 848w, https://substackcdn.com/image/fetch/$s_!LGbN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cf99ab7-7b09-4487-beea-bf478fd2fb76_1080x810.webp 1272w, https://substackcdn.com/image/fetch/$s_!LGbN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cf99ab7-7b09-4487-beea-bf478fd2fb76_1080x810.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LGbN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cf99ab7-7b09-4487-beea-bf478fd2fb76_1080x810.webp" width="1080" height="810" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3cf99ab7-7b09-4487-beea-bf478fd2fb76_1080x810.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:810,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:&quot;&#22522;&#20110;&#24320;&#28304;&#40511;&#33945;&#30340;&#31227;&#21160;&#35686;&#21153;&#32456;&#31471;&#20142;&#30456;&#65292;&#36866;&#37197; OpenHarmony 5.0 Release &#29256;&#26412;&#21644;&#35686;&#40511;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="&#22522;&#20110;&#24320;&#28304;&#40511;&#33945;&#30340;&#31227;&#21160;&#35686;&#21153;&#32456;&#31471;&#20142;&#30456;&#65292;&#36866;&#37197; OpenHarmony 5.0 Release &#29256;&#26412;&#21644;&#35686;&#40511;" srcset="https://substackcdn.com/image/fetch/$s_!LGbN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cf99ab7-7b09-4487-beea-bf478fd2fb76_1080x810.webp 424w, https://substackcdn.com/image/fetch/$s_!LGbN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cf99ab7-7b09-4487-beea-bf478fd2fb76_1080x810.webp 848w, https://substackcdn.com/image/fetch/$s_!LGbN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cf99ab7-7b09-4487-beea-bf478fd2fb76_1080x810.webp 1272w, https://substackcdn.com/image/fetch/$s_!LGbN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cf99ab7-7b09-4487-beea-bf478fd2fb76_1080x810.webp 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>IT Home learned from the Open Atom Open Source Foundation that the series of products <strong>are based on the chip certified by industry specifications and the FlyHong OS Smart system, and</strong> are adapted to the OpenHarmony 5.0 Release version and Jinghong.</p><ul><li><p>There is a full-process security protection, based on the chip certified by industry standards, using hardware encryption, trusted boot, data isolation and other technologies, in line with the Ministry of Public Security's mobile police terminal security specifications, to ensure system security.</p></li><li><p>Based on the distributed soft bus technology of open-source HarmonyOS, it builds efficient and secure cross-terminal collaboration capabilities.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QNFS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885b4431-990d-49ac-8283-f27c4e01b617_1080x810.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QNFS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885b4431-990d-49ac-8283-f27c4e01b617_1080x810.webp 424w, https://substackcdn.com/image/fetch/$s_!QNFS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885b4431-990d-49ac-8283-f27c4e01b617_1080x810.webp 848w, https://substackcdn.com/image/fetch/$s_!QNFS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885b4431-990d-49ac-8283-f27c4e01b617_1080x810.webp 1272w, https://substackcdn.com/image/fetch/$s_!QNFS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885b4431-990d-49ac-8283-f27c4e01b617_1080x810.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QNFS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885b4431-990d-49ac-8283-f27c4e01b617_1080x810.webp" width="1080" height="810" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/885b4431-990d-49ac-8283-f27c4e01b617_1080x810.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:810,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:&quot;&#22522;&#20110;&#24320;&#28304;&#40511;&#33945;&#30340;&#31227;&#21160;&#35686;&#21153;&#32456;&#31471;&#20142;&#30456;&#65292;&#36866;&#37197; OpenHarmony 5.0 Release &#29256;&#26412;&#21644;&#35686;&#40511;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="&#22522;&#20110;&#24320;&#28304;&#40511;&#33945;&#30340;&#31227;&#21160;&#35686;&#21153;&#32456;&#31471;&#20142;&#30456;&#65292;&#36866;&#37197; OpenHarmony 5.0 Release &#29256;&#26412;&#21644;&#35686;&#40511;" srcset="https://substackcdn.com/image/fetch/$s_!QNFS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885b4431-990d-49ac-8283-f27c4e01b617_1080x810.webp 424w, https://substackcdn.com/image/fetch/$s_!QNFS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885b4431-990d-49ac-8283-f27c4e01b617_1080x810.webp 848w, https://substackcdn.com/image/fetch/$s_!QNFS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885b4431-990d-49ac-8283-f27c4e01b617_1080x810.webp 1272w, https://substackcdn.com/image/fetch/$s_!QNFS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885b4431-990d-49ac-8283-f27c4e01b617_1080x810.webp 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Source: <a href="https://www.ithome.com/0/852/819.htm">The mobile police terminal based on the open source HarmonyOS was unveiled, adapted to the OpenHarmony 5.0 Release version and the Police Harmony - IT Home </a></p>]]></content:encoded></item><item><title><![CDATA[Building a Note App With ArkUI and ArkTS on HarmonyOS]]></title><description><![CDATA[In this article, we&#8217;ll walk through the creation of a simple Note App using ArkUI and ArkTS on HarmonyOS.]]></description><link>https://www.harmony-developers.com/p/building-a-note-app-with-arkui-and</link><guid isPermaLink="false">https://www.harmony-developers.com/p/building-a-note-app-with-arkui-and</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Mon, 12 May 2025 19:00:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!b-Ij!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23979a42-20d2-41c6-9ced-5b3c7133a820_875x657.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b-Ij!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23979a42-20d2-41c6-9ced-5b3c7133a820_875x657.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b-Ij!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23979a42-20d2-41c6-9ced-5b3c7133a820_875x657.jpeg 424w, https://substackcdn.com/image/fetch/$s_!b-Ij!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23979a42-20d2-41c6-9ced-5b3c7133a820_875x657.jpeg 848w, https://substackcdn.com/image/fetch/$s_!b-Ij!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23979a42-20d2-41c6-9ced-5b3c7133a820_875x657.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!b-Ij!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23979a42-20d2-41c6-9ced-5b3c7133a820_875x657.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b-Ij!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23979a42-20d2-41c6-9ced-5b3c7133a820_875x657.jpeg" width="875" height="657" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23979a42-20d2-41c6-9ced-5b3c7133a820_875x657.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:657,&quot;width&quot;:875,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!b-Ij!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23979a42-20d2-41c6-9ced-5b3c7133a820_875x657.jpeg 424w, https://substackcdn.com/image/fetch/$s_!b-Ij!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23979a42-20d2-41c6-9ced-5b3c7133a820_875x657.jpeg 848w, https://substackcdn.com/image/fetch/$s_!b-Ij!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23979a42-20d2-41c6-9ced-5b3c7133a820_875x657.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!b-Ij!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23979a42-20d2-41c6-9ced-5b3c7133a820_875x657.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@aaronburden?utm_source=medium&amp;utm_medium=referral">Aaron Burden</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure></div><h1><strong>Introduction</strong></h1><p>In this article, we&#8217;ll walk through the creation of a simple Note App using <strong>ArkUI</strong> and <strong>ArkTS</strong> on <strong>HarmonyOS</strong>. We&#8217;ll demonstrate how ArkUI&#8217;s modern UI capabilities integrate seamlessly with a relational database for efficient data management. By the end of this guide, you&#8217;ll have a foundational understanding of how to develop a functional app that allows users to add, update, delete, and view notes in a local database.</p><h1><strong>Understanding HarmonyOS and its Development Tools</strong></h1><p>HarmonyOS, developed by Huawei, is designed to provide a seamless experience across a wide range of devices, from smartphones to wearables and smart home products. For developers, HarmonyOS offers a robust set of tools and APIs optimized for creating apps within this ecosystem.</p><p>Key tools for HarmonyOS app development include:</p><ul><li><p><strong>ArkUI</strong>: A UI framework for building modern, dynamic user interfaces that allow for easy navigation and interaction.</p></li><li><p><strong>ArkTS</strong>: A TypeScript-based programming language specifically tailored for HarmonyOS, providing syntax to work with ArkUI and integrate seamlessly with the system&#8217;s APIs.</p></li></ul><p>In this tutorial, we&#8217;ll focus on using <strong>ArkUI</strong> and <strong>ArkTS</strong> to build our Note App, creating a responsive and smooth experience for users on HarmonyOS.</p><h1><strong>What You Need to Get Started with HarmonyOS App Development</strong></h1><p>To start developing apps for HarmonyOS, you will need the HarmonyOS SDK and DevEco Studio, which is the recommended IDE. DevEco Studio simplifies the app creation process, from building and debugging to testing.</p><p>The SDK provides tools in the following key areas:</p><ul><li><p><strong>Application Framework</strong>: Includes ArkUI for UI development and Ability Kit for program services.</p></li><li><p><strong>System Services</strong>: Key management and networking libraries.</p></li><li><p><strong>Media Services</strong>: Tools for managing audio and media files.</p></li><li><p><strong>Graphics Services</strong>: ArkGraphics for 2D graphics and acceleration.</p></li><li><p><strong>Application Services</strong>: Libraries for game and location services.</p></li><li><p><strong>AI Capabilities</strong>: AI tools like the HiAI Foundation Kit.</p></li></ul><p>These tools allow developers to create powerful, cross-platform apps that provide a consistent experience across HarmonyOS devices.</p><h1><strong>App Overview</strong></h1><p>Now that we&#8217;ve covered the basics of HarmonyOS development, let&#8217;s dive into building our Note App using ArkUI and ArkTS. This Note App provides an intuitive, minimalist user interface with a tabbed layout. Users can easily navigate through different sections to add, view, update, and delete notes.</p><p>The app&#8217;s core features are organized under various tabs, offering a streamlined and straightforward experience. Users can quickly manage their notes, making the app ideal for everyday use.</p><p><strong>Note</strong>: To build this app, you should use SDK 5.0.0 (12) as the framework and DevEco Studio NEXT Developer Beta1 as the development environment.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PByG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1faad8e7-2585-4445-8d8c-bd16e91d0731_795x713.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PByG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1faad8e7-2585-4445-8d8c-bd16e91d0731_795x713.png 424w, https://substackcdn.com/image/fetch/$s_!PByG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1faad8e7-2585-4445-8d8c-bd16e91d0731_795x713.png 848w, https://substackcdn.com/image/fetch/$s_!PByG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1faad8e7-2585-4445-8d8c-bd16e91d0731_795x713.png 1272w, https://substackcdn.com/image/fetch/$s_!PByG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1faad8e7-2585-4445-8d8c-bd16e91d0731_795x713.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PByG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1faad8e7-2585-4445-8d8c-bd16e91d0731_795x713.png" width="795" height="713" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1faad8e7-2585-4445-8d8c-bd16e91d0731_795x713.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:713,&quot;width&quot;:795,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!PByG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1faad8e7-2585-4445-8d8c-bd16e91d0731_795x713.png 424w, https://substackcdn.com/image/fetch/$s_!PByG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1faad8e7-2585-4445-8d8c-bd16e91d0731_795x713.png 848w, https://substackcdn.com/image/fetch/$s_!PByG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1faad8e7-2585-4445-8d8c-bd16e91d0731_795x713.png 1272w, https://substackcdn.com/image/fetch/$s_!PByG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1faad8e7-2585-4445-8d8c-bd16e91d0731_795x713.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">App Overview</figcaption></figure></div><h1><strong>Preparing Database Operations</strong></h1><p>Before diving into the UI, let&#8217;s set up the database operations that our Note app will rely on for data management. In this section, we&#8217;ll create functions to create, insert, update, delete, and retrieve notes from a local database.</p><h2><strong>Step 1: Create the Database</strong></h2><p>Start by creating a new file named <strong>DBUtils</strong> to encapsulate all database operations. We&#8217;ll use ArkData relational database (RDB) APIs in DBUtils.</p><p>In <strong>DBUtils</strong>, we&#8217;ll define functions for each key operation in our Note app.</p><p>The<strong> createDb() </strong>function defines the database configuration (<code>STORE_CONFIG</code>) and creates a table named <code>NOTE_TABLE</code> if it doesn&#8217;t already exist. This ensures our database is ready for subsequent operations.</p><h2><strong>Step 2: Insert a New Note</strong></h2><p>The <strong>insertNote()</strong> function inserts a new note into the <code>NOTE_TABLE</code> by creating a <code>noteData</code> object, where <strong>"NOTE"</strong> is the column name, and its value is the note content.</p><h2><strong>Step 3: Update an Existing Note</strong></h2><p>The <strong>updateNote()</strong> function updates an existing note in the <code>NOTE_TABLE</code>. It creates an <code>updatedNoteData</code> object with the new content and applies a condition to match the old content.</p><h2><strong>Step 4: Delete a Note</strong></h2><p>The <strong>deleteNote()</strong> function deletes a note from the <code>NOTE_TABLE</code>. It creates a delete condition based on the note content and executes the delete operation.</p><h2><strong>Step 5: Get All Notes</strong></h2><p>The <strong>getAllNotes()</strong> function retrieves all notes from the <code>NOTE_TABLE</code>. It queries the database and extracts the note content into a list of notes, which is then returned.</p><h1><strong>Integrating Database Operations in UI Component</strong></h1><p>Now that our database is set up, we can focus on the UI component, where users will interact with the app, view their notes, and manage them through a tabbed interface.</p><h2><strong>Step 1: Initial Setup in Index.ets</strong></h2><p>In the <strong>Index.ets</strong> file, we initialize core UI elements, tabs, and set up initial states.</p><p><strong>State Variables</strong>:</p><ul><li><p><strong>currentIndex</strong>: Keeps track of the current tab.</p></li><li><p><strong>notes</strong>: Stores the list of notes fetched from the database.</p></li><li><p><strong>content</strong>, <strong>buttonText</strong>, <strong>oldNote</strong>: Used for managing note input, button labels, and previous note content for updates.</p></li></ul><h2><strong>Step 2: Initializing the Database</strong></h2><p>The <strong>aboutToAppear()</strong> method initializes the database when the component first loads. This lifecycle method ensures that the database setup happens just before the app appears on the screen.</p><h2><strong>Step 3: Loading Notes with loadNotes</strong></h2><p>The <strong>loadNotes()</strong> function uses the <strong>getAllNotes()</strong> method from <strong>DBUtils</strong> to fetch all notes from the database. It then updates the <code>notes</code> state with the list of notes.</p><h2><strong>Step 4: Handling Tabs with </strong><code>changeTab</code></h2><p>The <code>changeTab</code> function is responsible for switching between different tabs (e.g., &#8220;Add Note&#8221; and &#8220;My Notes&#8221;).</p><h2><strong>Step 5: Building the Tab Bar with tabBarBuilder</strong></h2><p>The <strong>tabBarBuilder()</strong> function creates a tab bar with icons and titles for each tab. It allows users to navigate between tabs and highlights the active tab.</p><h2><strong>Step 6: Saving or Updating Notes with saveOrUpdateNote</strong></h2><p>The <strong>saveOrUpdateNote()</strong> function checks whether to save a new note or update an existing one based on the input and button state (&#8220;Save&#8221; or &#8220;Update&#8221;).</p><p>The function:</p><ul><li><p>Ensures the content isn&#8217;t empty.</p></li><li><p>In the update flow, calls <strong>updateNote()</strong> to modify the note in the database and refresh the list.</p></li><li><p>In the save flow, calls <strong>insertNote()</strong> to add the note to the database.</p></li><li><p>Calls <strong>resetNoteState()</strong> to clear input fields after saving or updating.</p></li></ul><p>Now that all steps have been covered, we hope this guide has provided a clear and complete path to building your own Note App on HarmonyOS.</p><h1><strong>Conclusion</strong></h1><p>This Note App demonstrates how to build a functional, user-friendly app using <strong>ArkUI</strong> and <strong>ArkTS</strong> on HarmonyOS. By combining ArkUI&#8217;s component-based UI design with ArkTS&#8217;s powerful data management capabilities, developers can efficiently create apps that deliver smooth and responsive user experiences. With this foundational structure, you are now ready to extend your app with more advanced features or customizations that meet your users&#8217; needs.</p><p>Happy coding!</p><p></p><p>Original Source: <a href="https://medium.com/huawei-developers/building-a-note-app-with-arkui-and-arkts-on-harmonyos-67fd7c4c1086">Building a Note App With ArkUI and ArkTS on HarmonyOS | by Emine &#304;NAN | Huawei Developers | Medium</a></p><h1></h1>]]></content:encoded></item><item><title><![CDATA[The Road to Globalization of HarmonyOS Next Applications: Internationalization and Localization ]]></title><description><![CDATA[This article aims to deeply explore the technical details of the Huawei HarmonyOS Next system (up to API 12 as of now) in terms of application internationalization and localization, and is summarized]]></description><link>https://www.harmony-developers.com/p/the-road-to-globalization-of-harmonyos</link><guid isPermaLink="false">https://www.harmony-developers.com/p/the-road-to-globalization-of-harmonyos</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Sun, 11 May 2025 08:42:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2ab6a346-c588-44ae-8a57-0f42532ddfb5_971x593.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>This article aims to deeply explore the technical details of the Huawei HarmonyOS Next system (up to API 12 as of now) in terms of application internationalization and localization, and is summarized based on actual development practices. It mainly serves as a carrier for technical sharing and communication. Mistakes and omissions are inevitable. Colleagues are welcome to put forward valuable opinions and questions so that we can make progress together. This article is original content, and any form of reprint must indicate the source and the original author.<br>In today's era of globalization, application internationalization and localization have become key factors in enhancing user experience and expanding market share. The Huawei HarmonyOS Next system provides powerful tools and functions for developers to help create cross-language and cross-cultural applications. This article will introduce in detail the concepts, advantages, processes, and key steps of internationalization and localization of HarmonyOS Next applications, helping developers embark on the road to application globalization.</p><h2><strong>I. Concepts and Differences between Internationalization and Localization</strong></h2><h3><strong>(I) Internationalization (Internationalization, I18n)</strong></h3><p>Internationalization refers to the process of designing and developing an application so that it can adapt to different languages, regions, and cultures. It involves not only simple language translation but also the adaptation of various formats such as dates, times, numbers, currencies, weights and measures, as well as the universal design of interface layouts, icons, colors, and other elements. The goal of internationalization is to create an application that can be used globally without extensive code modifications. For example, in an internationalized application, the date format may be displayed in different styles depending on the user's region, such as "YYYY-MM-DD" (China) or "MM/DD/YYYY" (United States).</p><h3><strong>(II) Localization (Localization, L10n)</strong></h3><p>Localization is the process of customizing and optimizing an application for a specific target language and region on the basis of internationalization. This includes translating the interface text of the application into the local language, adjusting the interface layout to adapt to different text lengths and reading habits, and using local cultural elements and symbols. Localization ensures that the application can provide a natural, smooth, and user-expected experience in each target market. For example, when localizing an English application to Japan, not only should the text be translated into Japanese, but the interface layout may also need to be adjusted to adapt to the display of Japanese characters, and Japanese cultural elements may be used to enhance user affinity.</p><h3><strong>(III) Differences between the Two</strong></h3><p>Internationalization focuses on building the general framework and infrastructure of an application to enable it to support multiple languages and cultures; while localization is the personalized adaptation and optimization of an application for specific languages and regions. Internationalization is a global and forward-looking design concept, while localization is the actual implementation for specific markets on the basis of internationalization.</p><h2><strong>II. Advantages of Internationalization and Localization of HarmonyOS Next Applications</strong></h2><h3><strong>(I) Expanding the Global Market</strong></h3><p>Through internationalization and localization, applications can break through language and cultural barriers, attract users from different countries and regions, greatly expand market coverage, and increase the potential user base.</p><h3><strong>(II) Enhancing User Experience</strong></h3><p>Providing users with interfaces and functions that conform to their language habits and cultural backgrounds enables them to use the application more naturally and conveniently, thereby increasing user satisfaction and loyalty.</p><h3><strong>(II) Strengthening Competitiveness</strong></h3><p>In the global market competition, applications with internationalization and localization capabilities have an advantage, can better meet user needs, compete with local competitors, and enhance brand image and market share.</p><h3><strong>(IV) Reducing Development Costs</strong></h3><p>Adopting internationalization and localization design methods and following certain norms and standards during the development process can reduce the costs of separate development and maintenance for different languages and regions in the later stage.</p><h2><strong>III. Processes of Internationalization and Localization of HarmonyOS Next Applications</strong></h2><h3><strong>(I) Requirement Analysis</strong></h3><ol><li><p><strong>Target Market Research</strong>: Understand the potential markets of the application, including factors such as languages, cultures, user habits, and laws and regulations in different regions. For example, certain regions may have different cultural meanings for specific colors or icons, which need to be considered in the design.</p></li><li><p><strong>Function Requirement Evaluation</strong>: Determine the functions that the application needs to support in different language and cultural environments, such as multi-language input, payment methods in different regions, and localized push notifications. ### (II) Design Stage</p></li><li><p><strong>Interface Layout Design</strong>: Adopt a flexible layout method and reserve sufficient space to adapt to the length changes of different language texts. At the same time, consider functions such as interface mirroring to support the display requirements of right-to-left (RTL) languages such as Arabic.</p></li><li><p><strong>Resource Separation</strong>: Separate interface texts, pictures, audio, and other resources from the code logic to facilitate subsequent translation and replacement. For example, store all string resources in independent files instead of hard-coding them in the code. ### (III) Development Stage</p></li><li><p><strong>Using the Internationalization Framework</strong>: Utilize the internationalization and localization development services provided by HarmonyOS Next, such as the <code>Localization Kit</code>, to perform language and region-related settings, resource loading, and format conversions.</p></li><li><p><strong>Function Implementation and Adaptation</strong>: According to the requirement analysis, implement functions that support multiple languages, such as displaying the corresponding interface according to the user's language setting and handling date and time formats in different regions. ### (IV) Testing Stage</p></li><li><p><strong>Language Testing</strong>: Have local language experts or users test the translation accuracy, language fluency, and interface display of the application to ensure the quality of the application in different language environments.</p></li><li><p><strong>Localization Testing</strong>: Include interface layout testing, function compatibility testing, and cultural adaptability testing to check whether the application can operate normally in each target region and meet the expectations of local users.</p></li><li><p><strong>Pseudo-Localization Testing</strong>: Before formal localization, simulate the localization process by using pseudo-translated texts and special test regions (such as <code>en-XA</code>) to discover potential localization problems such as interface truncation and incorrect text direction. ### (V) Release and Maintenance Stage</p></li><li><p><strong>Multi-Language Version Release</strong>: Release the application in corresponding language versions according to different target markets.</p></li><li><p><strong>Continuous Optimization</strong>: Collect user feedback, promptly fix localization-related problems, and continuously update and optimize the internationalization and localization content of the application according to market changes and user needs. ## IV. Key Steps of Internationalization and Localization of HarmonyOS Next Applications ### (I) Setting the System Language and Region</p></li><li><p><strong>Obtaining the System Language and Region</strong>: Use the methods <code>i18n.System.getSystemLanguage()</code> and <code>i18n.System.getSystemRegion()</code> to obtain the language and region information of the current system.</p></li><li><p><strong>Setting the Application Preferred Language</strong>: The method <code>i18n.System.setAppPreferredLanguage()</code> can be used to set a specific preferred language for the application, so that the application loads the corresponding resources according to the user's setting or the default language when it starts. For example:</p></li></ol></blockquote><pre><code><code>import { i18n } from '@kit.LocalizationKit';
import {BusinessError } from '@kit.BasicServicesKit';
try {
    i18n.System.setAppPreferredLanguage("zh-Hans"); // Set the application preferred language to Simplified Chinese
} catch(error) {
    let err: BusinessError = error as BusinessError;
    console.error(`Failed to set the application preferred language, error code: ${err.code}, message: ${err.message}.`);
}
</code></code></pre><h3><strong>(II) Resource File Configuration and Management</strong></h3><ol><li><p><strong>Determining the Target Region</strong>: Clearly define the languages and regions that the application needs to support, referring to the region identifier (consisting of language, script, country/region, and extension parameters).</p></li><li><p><strong>Creating Resource Directories and Files</strong>: - Resource directories include the default (<code>base</code>) directory and qualifier directories (such as <code>resources/en_GB-vertical-car-mdpi</code>). The default directory stores general resources, and the qualifier directories are customized according to languages, scripts, etc., and are used to store resources for specific regions. - Create resource files (such as <code>.json</code> files) in the corresponding directories and classify and store resources such as strings, pictures, and audio. For example, store string resources in different languages in the <code>strings.json</code> file in the corresponding language directory.</p></li><li><p><strong>Resource Matching Rules</strong>: The application matches the user's language preference list with the resource directories and displays the most matching resources first. If no matching resources are found, the content in the default directory is used. ### (III) Interface Text Processing</p></li><li><p><strong>Avoiding Hard Coding</strong>: Extract all the text displayed on the interface to resource files and load them using relevant interfaces, avoiding directly hard-coding strings in the code. For example, define in the <code>strings.json</code> file:</p></li></ol><pre><code><code>{
    "name": "welcome_message",
    "value": "&#27426;&#36814;&#20351;&#29992;&#24212;&#29992;"
}
</code></code></pre><p>Then obtain and display this string in the code through the resource loading mechanism.</p><ol><li><p><strong>Supporting Singular and Plural Forms</strong>: According to the singular and plural rules of different languages, use methods such as <code>getPluralStringValueSync</code> to correctly handle the singular and plural forms of nouns or unit expressions. For example, in English, for the word "apple", display "apple" (singular) or "apples" (plural) depending on the quantity. ### (IV) Internationalization of Dates, Times, Numbers, and Weights and Measures</p></li><li><p><strong>Date and Time Formatting</strong>: - Use the <code>format</code> interface of the <code>DateTimeFormat</code> class to format date and time objects into appropriate strings according to the language and cultural habits of the user's region. For example:</p></li></ol><pre><code><code>import { intl } from '@kit.LocalizationKit';
let date = new Date(2021, 8, 17, 13, 4, 0);
let dateFormat1 = new intl.DateTimeFormat('zh-CN', {dateStyle: 'full', timeStyle: 'full'});
let formattedDate1 = dateFormat1.format(date); // Friday, September 17, 2021 China Standard Time 13:04:00
</code></code></pre><p>- At the same time, pay attention to handling daylight saving time transitions to ensure that the application displays the correct time during daylight saving time. The <code>Calendar</code> class can be used to obtain and set time zones, calculate time offsets related to daylight saving time, etc.</p><ol><li><p><strong>Number and Weights and Measures Formatting</strong>: - Through the <code>format</code> interface of the <code>NumberFormat</code> class, format numbers according to the user's region settings, including decimal separators, grouped displays, and currency symbols. For example:</p></li></ol><pre><code><code>import { intl } from '@kit.LocalizationKit';
let numberFormat1 = new intl.NumberFormat('zh-CN', {notation:'scientific', maximumSignificantDigits: 3});
let formattedNumber1 = numberFormat1.format(123400); // 1.23E5
</code></code></pre><p>- For weights and measures conversion, use the <code>unitConvert</code> interface of the <code>I18NUtil</code> class to perform unit conversion and formatting according to different weights and measures systems.</p><h3><strong>(V) Localization Testing and Optimization</strong></h3><ol><li><p><strong>Comprehensive Testing</strong>: Conduct language testing, localization testing, and pseudo-localization testing to cover all functions and interface elements of the application. During the testing process, check issues such as translation accuracy, interface layout rationality, and cultural adaptability.</p></li><li><p><strong>Problem Fixing and Optimization</strong>: According to the testing results, promptly fix the discovered problems and optimize the application. This may include adjusting the interface layout, modifying the translation text, optimizing resource loading, etc. At the same time, continuously monitor user feedback and continuously improve the internationalization and localization quality of the application. ### (VI) Continuous Update and Maintenance</p></li><li><p><strong>Language and Resource Updates</strong>: With the changes in the market and the evolution of user needs, promptly update the language resources of the application, including the update of translation texts and the support of new languages.</p></li><li><p><strong>Function Adaptation and Optimization</strong>: According to the user feedback and market needs in different regions, adapt and optimize the functions of the application to ensure that the application always maintains a good user experience globally. Through the above steps, we can gradually realize the internationalization and localization of HarmonyOS Next applications and create high-quality applications that adapt to the global market. In the actual development process, various language and cultural differences need to be fully considered, attention should be paid to details, and continuous optimization should be carried out to meet the diverse needs of users in different regions.</p></li></ol><p>Original source: <a href="https://dev.to/xun_wang_6384a403f9817c2/the-road-to-globalization-of-harmonyos-next-applications-internationalization-and-localization-21om#:~:text=This%20article%20will%20introduce%20in%20detail%20the%20concepts%2C,developers%20embark%20on%20the%20road%20to%20application%20globalization.">The Road to Globalization of HarmonyOS Next Applications: Internationalization and Localization - DEV Community</a></p>]]></content:encoded></item><item><title><![CDATA[HarmonyOS Next: Building Applications with Different Package Names Using Multi-Target Products in One Project ]]></title><description><![CDATA[In daily development, manually switching signature files and package names when dealing with multi-signature and multi-product build outputs is error-prone and time-consuming.]]></description><link>https://www.harmony-developers.com/p/harmonyos-next-building-applications</link><guid isPermaLink="false">https://www.harmony-developers.com/p/harmonyos-next-building-applications</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Thu, 08 May 2025 09:04:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cIbH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48e3a9fc-a22b-420d-8cf3-5eefc07ff37a_1077x592.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>Introduction</strong></h2><p>In daily development, manually switching signature files and package names when dealing with <strong>multi-signature</strong> and multi-product build outputs is error-prone and time-consuming. HarmonyOS provides custom hvigor plugins and multi-target product building capabilities. We can use hvigor plugins to dynamically modify project configurations, ensuring that a single codebase can switch between different package names while maintaining core functionality. This allows us to generate customized build products through multi-target product building.</p><h2><strong>I. Understanding Multi-Target Product Building</strong></h2><h3><strong>1. What is Multi-Target Product Building?</strong></h3><p>Simply put, multi-target products refer to highly customized output modules. Developers can build different HAP, HAR, HSP, APP, etc., by defining different build configurations to achieve differentiation between products. For detailed customization options, see: <a href="https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-target#section19846433183815">https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-target#section19846433183815</a></p><h3><strong>2. Build Schematic Diagram</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cIbH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48e3a9fc-a22b-420d-8cf3-5eefc07ff37a_1077x592.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cIbH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48e3a9fc-a22b-420d-8cf3-5eefc07ff37a_1077x592.png 424w, https://substackcdn.com/image/fetch/$s_!cIbH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48e3a9fc-a22b-420d-8cf3-5eefc07ff37a_1077x592.png 848w, https://substackcdn.com/image/fetch/$s_!cIbH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48e3a9fc-a22b-420d-8cf3-5eefc07ff37a_1077x592.png 1272w, https://substackcdn.com/image/fetch/$s_!cIbH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48e3a9fc-a22b-420d-8cf3-5eefc07ff37a_1077x592.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cIbH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48e3a9fc-a22b-420d-8cf3-5eefc07ff37a_1077x592.png" width="1077" height="592" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48e3a9fc-a22b-420d-8cf3-5eefc07ff37a_1077x592.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:592,&quot;width&quot;:1077,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image.png&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image.png" title="image.png" srcset="https://substackcdn.com/image/fetch/$s_!cIbH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48e3a9fc-a22b-420d-8cf3-5eefc07ff37a_1077x592.png 424w, https://substackcdn.com/image/fetch/$s_!cIbH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48e3a9fc-a22b-420d-8cf3-5eefc07ff37a_1077x592.png 848w, https://substackcdn.com/image/fetch/$s_!cIbH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48e3a9fc-a22b-420d-8cf3-5eefc07ff37a_1077x592.png 1272w, https://substackcdn.com/image/fetch/$s_!cIbH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48e3a9fc-a22b-420d-8cf3-5eefc07ff37a_1077x592.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>II. Implementing Multi-Target Product Building in a Project</strong></h2><p><em>(Source code reference branch: feature/multiTargetProduct)</em></p><h3><strong>1. Configuring Multi-Target Product Building</strong></h3><p>Multi-target product building requires modifying configuration files like <code>build-profile.json5</code> and <code>module.json5</code> to define different <code>product</code> and <code>target</code> entries. Developers can specify device types, source sets, resources, and assign different targets to products. The build tool generates targets based on these configurations and combines them into customized products.</p><h4><strong>Configure Signing Configs for Different Projects:</strong></h4><p>Define <code>default</code>, <code>demo_debug</code>, and <code>demo_release</code> signing configurations for debugging and release builds:</p><pre><code><code>"signingConfigs": [
  {
    "name": "default", // Default certificate
    "type": "HarmonyOS",
    "material": { /* ... default certificate details ... */ }
  },
  {
    "name": "demo_debug", // Debugging certificate
    "type": "HarmonyOS",
    "material": { /* ... debug certificate details ... */ }
  },
  {
    "name": "demo_release", // Release certificate
    "type": "HarmonyOS",
    "material": { /* ... release certificate details ... */ }
  }
]</code></code></pre><h4><strong>Define Products with Different Signing Configs:</strong></h4><p>Each product uses a specific signing configuration to generate differentiation outputs:</p><pre><code><code>"products": [
  {
    "name": "default",
    "signingConfig": "default", // Default product uses default certificate
    "compatibleSdkVersion": "5.0.1(13)",
    "runtimeOS": "HarmonyOS",
    "buildOption": { /* ... build options ... */ }
  },
  {
    "name": "products_debug",
    "signingConfig": "demo_debug", // Debug product uses debug certificate
    "compatibleSdkVersion": "5.0.1(13)",
    "runtimeOS": "HarmonyOS",
    "buildOption": { /* ... build options ... */ }
  },
  {
    "name": "products_release",
    "signingConfig": "demo_release", // Release product uses release certificate
    "compatibleSdkVersion": "5.0.1(13)",
    "runtimeOS": "HarmonyOS",
    "buildOption": { /* ... build options ... */ }
  }
]</code></code></pre><h4><strong>Link Products to Targets in HAP/HSP Modules:</strong></h4><p>Configure targets in <code>modules</code> to associate products with build outputs:</p><pre><code><code>"modules": [
  {
    "name": "entry",
    "srcPath": "./entry",
    "targets": [
      {
        "name": "default",
        "applyToProducts": [
          "default",
          "products_debug",
          "products_release"
        ]
      }
    ]
  }
]</code></code></pre><h3><strong>2. Switching Product Configurations and Output Packages</strong></h3><h4><strong>Manual Switching Interface:</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d6xg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecde517e-1886-4325-8c5b-ab4de0a7b79e_1846x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d6xg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecde517e-1886-4325-8c5b-ab4de0a7b79e_1846x1000.png 424w, https://substackcdn.com/image/fetch/$s_!d6xg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecde517e-1886-4325-8c5b-ab4de0a7b79e_1846x1000.png 848w, https://substackcdn.com/image/fetch/$s_!d6xg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecde517e-1886-4325-8c5b-ab4de0a7b79e_1846x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!d6xg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecde517e-1886-4325-8c5b-ab4de0a7b79e_1846x1000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d6xg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecde517e-1886-4325-8c5b-ab4de0a7b79e_1846x1000.png" width="1456" height="789" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ecde517e-1886-4325-8c5b-ab4de0a7b79e_1846x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:789,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image-20250422101824117.png&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image-20250422101824117.png" title="image-20250422101824117.png" srcset="https://substackcdn.com/image/fetch/$s_!d6xg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecde517e-1886-4325-8c5b-ab4de0a7b79e_1846x1000.png 424w, https://substackcdn.com/image/fetch/$s_!d6xg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecde517e-1886-4325-8c5b-ab4de0a7b79e_1846x1000.png 848w, https://substackcdn.com/image/fetch/$s_!d6xg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecde517e-1886-4325-8c5b-ab4de0a7b79e_1846x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!d6xg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecde517e-1886-4325-8c5b-ab4de0a7b79e_1846x1000.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>III. Building Different Package Names and Configurations on Multi-Target Products</strong></h2><p><em>(Source code reference branch: feature/differentPackageConfigurations)</em></p><h3><strong>1. Adding Signing and Product Configs for a Second App</strong></h3><h4><strong>New Signing Configuration for Second App:</strong></h4><pre><code><code>"signingConfigs": [
  // ... existing configs ...
  {
    "name": "demo_debug_test2", // Signing for the second app
    "type": "HarmonyOS",
    "material": { /* ... testDemo2 certificate details ... */ }
  }
]</code></code></pre><h4><strong>Define a New Product with Unique Identifiers:</strong></h4><p>Configure <code>label</code>, <code>icon</code>, <code>bundleName</code>, and <code>output</code> for differentiation. Use <code>buildProfileFields</code> for custom parameters:</p><pre><code><code>"products": [
  // ... existing products ...
  {
    "name": "products_debug_test2",
    "signingConfig": "demo_debug_test2",
    "compatibleSdkVersion": "5.0.1(13)",
    "runtimeOS": "HarmonyOS",
    "label": "$string:app_name_test2", // Second app's name
    "icon": "$media:app_icon_test2", // Second app's icon
    "bundleName": "com.atomicservice.6917571239128090930", // Second app's package name
    "buildOption": { /* ... build options ... */ },
    "output": { "artifactName": "products_debug_test2" } // Unique output directory
  }
]</code></code></pre><h3><strong>2. Implementation Results After Configuration</strong></h3><h4><strong>Output Product Information:</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xMTY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1fe14fd-90ff-4305-9c8f-4d94ae0cbd07_1846x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xMTY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1fe14fd-90ff-4305-9c8f-4d94ae0cbd07_1846x1000.png 424w, https://substackcdn.com/image/fetch/$s_!xMTY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1fe14fd-90ff-4305-9c8f-4d94ae0cbd07_1846x1000.png 848w, https://substackcdn.com/image/fetch/$s_!xMTY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1fe14fd-90ff-4305-9c8f-4d94ae0cbd07_1846x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!xMTY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1fe14fd-90ff-4305-9c8f-4d94ae0cbd07_1846x1000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xMTY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1fe14fd-90ff-4305-9c8f-4d94ae0cbd07_1846x1000.png" width="1456" height="789" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1fe14fd-90ff-4305-9c8f-4d94ae0cbd07_1846x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:789,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image-20250422101824117.png&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image-20250422101824117.png" title="image-20250422101824117.png" srcset="https://substackcdn.com/image/fetch/$s_!xMTY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1fe14fd-90ff-4305-9c8f-4d94ae0cbd07_1846x1000.png 424w, https://substackcdn.com/image/fetch/$s_!xMTY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1fe14fd-90ff-4305-9c8f-4d94ae0cbd07_1846x1000.png 848w, https://substackcdn.com/image/fetch/$s_!xMTY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1fe14fd-90ff-4305-9c8f-4d94ae0cbd07_1846x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!xMTY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1fe14fd-90ff-4305-9c8f-4d94ae0cbd07_1846x1000.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Desktop icon and application name after it takes effect:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TIyi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6950b23-8055-4cae-8e32-b413a880f44f_1536x910.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TIyi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6950b23-8055-4cae-8e32-b413a880f44f_1536x910.png 424w, https://substackcdn.com/image/fetch/$s_!TIyi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6950b23-8055-4cae-8e32-b413a880f44f_1536x910.png 848w, https://substackcdn.com/image/fetch/$s_!TIyi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6950b23-8055-4cae-8e32-b413a880f44f_1536x910.png 1272w, https://substackcdn.com/image/fetch/$s_!TIyi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6950b23-8055-4cae-8e32-b413a880f44f_1536x910.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TIyi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6950b23-8055-4cae-8e32-b413a880f44f_1536x910.png" width="1456" height="863" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b6950b23-8055-4cae-8e32-b413a880f44f_1536x910.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:863,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image-20250422111847105.png&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image-20250422111847105.png" title="image-20250422111847105.png" srcset="https://substackcdn.com/image/fetch/$s_!TIyi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6950b23-8055-4cae-8e32-b413a880f44f_1536x910.png 424w, https://substackcdn.com/image/fetch/$s_!TIyi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6950b23-8055-4cae-8e32-b413a880f44f_1536x910.png 848w, https://substackcdn.com/image/fetch/$s_!TIyi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6950b23-8055-4cae-8e32-b413a880f44f_1536x910.png 1272w, https://substackcdn.com/image/fetch/$s_!TIyi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6950b23-8055-4cae-8e32-b413a880f44f_1536x910.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>3. Querying and Using Custom Constants</strong></h3><p>Use <code>buildProfileFields</code> to define product-specific parameters for code differentiation.</p><h4><strong>Configure Custom Constants in Products:</strong></h4><pre><code><code>"products": [
  {
    "name": "default",
    "buildOption": {
      "arkOptions": {
        "buildProfileFields": {
          "isStartNet": false,
          "isDebug": true,
          "productsName": "default"
          // ... other custom parameters ...
        }
      }
    }
  },
  // ... repeat for other products with unique values ...
]</code></code></pre><h4><strong>Access Custom Configs in Code:</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RlqL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6af69-e270-4af0-80b1-42b736a60549_1536x910.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RlqL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6af69-e270-4af0-80b1-42b736a60549_1536x910.png 424w, https://substackcdn.com/image/fetch/$s_!RlqL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6af69-e270-4af0-80b1-42b736a60549_1536x910.png 848w, https://substackcdn.com/image/fetch/$s_!RlqL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6af69-e270-4af0-80b1-42b736a60549_1536x910.png 1272w, https://substackcdn.com/image/fetch/$s_!RlqL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6af69-e270-4af0-80b1-42b736a60549_1536x910.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RlqL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6af69-e270-4af0-80b1-42b736a60549_1536x910.png" width="1456" height="863" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03e6af69-e270-4af0-80b1-42b736a60549_1536x910.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:863,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image-20250422111847105.png&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image-20250422111847105.png" title="image-20250422111847105.png" srcset="https://substackcdn.com/image/fetch/$s_!RlqL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6af69-e270-4af0-80b1-42b736a60549_1536x910.png 424w, https://substackcdn.com/image/fetch/$s_!RlqL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6af69-e270-4af0-80b1-42b736a60549_1536x910.png 848w, https://substackcdn.com/image/fetch/$s_!RlqL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6af69-e270-4af0-80b1-42b736a60549_1536x910.png 1272w, https://substackcdn.com/image/fetch/$s_!RlqL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6af69-e270-4af0-80b1-42b736a60549_1536x910.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Import <code>BuildProfile</code> and use parameters in UI:</p><pre><code><code>import BuildProfile from 'BuildProfile';  
Column() {  
  Text(`productsName:${BuildProfile.productsName}`)  
  // ... other Text components for custom fields ...  
}  </code></code></pre><h4><strong>UI Display of Custom Parameters:</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OkPk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7292d563-6847-4c3c-a035-b3d3c1429f48_358x753.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OkPk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7292d563-6847-4c3c-a035-b3d3c1429f48_358x753.png 424w, https://substackcdn.com/image/fetch/$s_!OkPk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7292d563-6847-4c3c-a035-b3d3c1429f48_358x753.png 848w, https://substackcdn.com/image/fetch/$s_!OkPk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7292d563-6847-4c3c-a035-b3d3c1429f48_358x753.png 1272w, https://substackcdn.com/image/fetch/$s_!OkPk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7292d563-6847-4c3c-a035-b3d3c1429f48_358x753.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OkPk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7292d563-6847-4c3c-a035-b3d3c1429f48_358x753.png" width="358" height="753" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7292d563-6847-4c3c-a035-b3d3c1429f48_358x753.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:753,&quot;width&quot;:358,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image-20250422114531440.png&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image-20250422114531440.png" title="image-20250422114531440.png" srcset="https://substackcdn.com/image/fetch/$s_!OkPk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7292d563-6847-4c3c-a035-b3d3c1429f48_358x753.png 424w, https://substackcdn.com/image/fetch/$s_!OkPk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7292d563-6847-4c3c-a035-b3d3c1429f48_358x753.png 848w, https://substackcdn.com/image/fetch/$s_!OkPk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7292d563-6847-4c3c-a035-b3d3c1429f48_358x753.png 1272w, https://substackcdn.com/image/fetch/$s_!OkPk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7292d563-6847-4c3c-a035-b3d3c1429f48_358x753.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>IV. Conclusion</strong></h2><p>Multi-target product building allows rapid switching between different build configurations and solves package name differentiation for scenarios like multi-entity app submissions (e.g., domestic vs. foreign entities on AG). While this covers basic customization, advanced needs (e.g., dynamic <code>client_id</code>/<code>app_id</code> in <code>module.json5</code>) require integration with <strong>hvigor plugins</strong>. Future articles will explore using custom scripts to modify hard-coded configurations during builds.</p><h2><strong>VI. Source Code Repository</strong></h2><p><a href="https://gitee.com/qq1963861722/MultiBuildDemo.git">Repository Address</a></p><h2><strong>VII. Reference Materials</strong></h2><p><a href="https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-target">Multi-Target Product Building Practice - Huawei HarmonyOS Developers</a><br><a href="https://juejin.cn/post/7427050728719368202">HarmonyOS Multi-Environment Building Guide - Juejin</a></p><p></p><p>Original source links: <a href="https://leetcode.com/discuss/post/6725085/harmonyos-next-build-application-with-di-xjdd/https:/leetcode.com/discuss/post/6725085/harmonyos-next-build-application-with-di-xjdd/">HarmonyOS Next&#65306; Build Application with Different Package Names - Discuss - LeetCode</a> redirected from <a href="https://news.ycombinator.com/item?id=43924349">HarmonyOS Next&#65306; Build Application with Different Package Names | Hacker News</a></p>]]></content:encoded></item><item><title><![CDATA[Nanjing University OpenHarmony Technology Club was officially unveiled Cangjie programming language leads ecological innovation ]]></title><description><![CDATA[On April 24, 2025, the "Inaugural Meeting of Nanjing University OpenHarmony Technology Club and Basic Software and Ecological Application Forum" jointly organized by the Technical Steering Committee]]></description><link>https://www.harmony-developers.com/p/nanjing-university-openharmony-technology</link><guid isPermaLink="false">https://www.harmony-developers.com/p/nanjing-university-openharmony-technology</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Wed, 07 May 2025 21:08:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RA0a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22832d6f-931f-4aeb-b573-4281e97cb3da_830x585.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>On April 24, 2025, the "Inaugural Meeting of Nanjing University OpenHarmony Technology Club and Basic Software and Ecological Application Forum" jointly organized by the Technical Steering Committee of the OpenAtom OpenHarmony (hereinafter referred to as "OpenHarmony") project group and the School of Software of Nanjing University was held at the Xianlin Campus of Nanjing University. More than 200 representatives, including Lu Yanqing, Vice President of Nanjing University, and Chen Haibo, Chairman of OpenHarmony Technical Steering Committee, attended the conference, which focused on the technological breakthrough and integration of industry, education and research in Cangjie, a domestic independent programming language. This conference not only marks the further deepening of the industry-university-research cooperation between Nanjing University and OpenHarmony, but also highlights the outstanding value of the domestic independent innovation technology - Cangjie programming language in the era of intelligent connection of all things.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RA0a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22832d6f-931f-4aeb-b573-4281e97cb3da_830x585.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RA0a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22832d6f-931f-4aeb-b573-4281e97cb3da_830x585.webp 424w, https://substackcdn.com/image/fetch/$s_!RA0a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22832d6f-931f-4aeb-b573-4281e97cb3da_830x585.webp 848w, https://substackcdn.com/image/fetch/$s_!RA0a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22832d6f-931f-4aeb-b573-4281e97cb3da_830x585.webp 1272w, https://substackcdn.com/image/fetch/$s_!RA0a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22832d6f-931f-4aeb-b573-4281e97cb3da_830x585.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RA0a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22832d6f-931f-4aeb-b573-4281e97cb3da_830x585.webp" width="830" height="585" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22832d6f-931f-4aeb-b573-4281e97cb3da_830x585.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:585,&quot;width&quot;:830,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#22270;&#29255;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#22270;&#29255;" title="&#22270;&#29255;" srcset="https://substackcdn.com/image/fetch/$s_!RA0a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22832d6f-931f-4aeb-b573-4281e97cb3da_830x585.webp 424w, https://substackcdn.com/image/fetch/$s_!RA0a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22832d6f-931f-4aeb-b573-4281e97cb3da_830x585.webp 848w, https://substackcdn.com/image/fetch/$s_!RA0a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22832d6f-931f-4aeb-b573-4281e97cb3da_830x585.webp 1272w, https://substackcdn.com/image/fetch/$s_!RA0a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22832d6f-931f-4aeb-b573-4281e97cb3da_830x585.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Cangjie Language: A key technological breakthrough in the OpenHarmony ecosystem</strong></h2><p>In the technical forum of the conference, Feng Xinyu, director of OpenHarmony programming language TSG and professor of Nanjing University, delivered a technical report entitled "A New Generation of Programming Language for All-Scenario Applications - Cangjie". The technical advantages and ecological planning of Cangjie language are systematically explained:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dssv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33904111-2022-48e8-af06-642ce11bfbbd_830x553.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dssv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33904111-2022-48e8-af06-642ce11bfbbd_830x553.webp 424w, https://substackcdn.com/image/fetch/$s_!Dssv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33904111-2022-48e8-af06-642ce11bfbbd_830x553.webp 848w, https://substackcdn.com/image/fetch/$s_!Dssv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33904111-2022-48e8-af06-642ce11bfbbd_830x553.webp 1272w, https://substackcdn.com/image/fetch/$s_!Dssv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33904111-2022-48e8-af06-642ce11bfbbd_830x553.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dssv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33904111-2022-48e8-af06-642ce11bfbbd_830x553.webp" width="830" height="553" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33904111-2022-48e8-af06-642ce11bfbbd_830x553.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:553,&quot;width&quot;:830,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#22270;&#29255;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#22270;&#29255;" title="&#22270;&#29255;" srcset="https://substackcdn.com/image/fetch/$s_!Dssv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33904111-2022-48e8-af06-642ce11bfbbd_830x553.webp 424w, https://substackcdn.com/image/fetch/$s_!Dssv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33904111-2022-48e8-af06-642ce11bfbbd_830x553.webp 848w, https://substackcdn.com/image/fetch/$s_!Dssv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33904111-2022-48e8-af06-642ce11bfbbd_830x553.webp 1272w, https://substackcdn.com/image/fetch/$s_!Dssv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33904111-2022-48e8-af06-642ce11bfbbd_830x553.webp 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>1. Technical advantages</strong></p><ul><li><p><strong>Efficient development and performance balance:</strong> Static typing and automatic memory management are supported, and real-time response on mobile devices is ensured through concurrent garbage collection and a lightweight thread model.</p></li><li><p><strong>Full-stack optimization:</strong> The language, compiler, and runtime are co-designed, and the performance is significantly improved compared with similar languages, meeting the needs of smooth interaction of HarmonyOS native applications.</p></li><li><p><strong>Multi-paradigm fusion:</strong> Integrates functional and object-oriented features, and has built-in metaprogramming capabilities to support rapid DSL development in scenarios such as declarative UI and intelligent agent.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EjpL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611844c0-7f4f-4685-a281-85f9551bea79_830x553.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EjpL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611844c0-7f4f-4685-a281-85f9551bea79_830x553.webp 424w, https://substackcdn.com/image/fetch/$s_!EjpL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611844c0-7f4f-4685-a281-85f9551bea79_830x553.webp 848w, https://substackcdn.com/image/fetch/$s_!EjpL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611844c0-7f4f-4685-a281-85f9551bea79_830x553.webp 1272w, https://substackcdn.com/image/fetch/$s_!EjpL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611844c0-7f4f-4685-a281-85f9551bea79_830x553.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EjpL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611844c0-7f4f-4685-a281-85f9551bea79_830x553.webp" width="830" height="553" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/611844c0-7f4f-4685-a281-85f9551bea79_830x553.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:553,&quot;width&quot;:830,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#22270;&#29255;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#22270;&#29255;" title="&#22270;&#29255;" srcset="https://substackcdn.com/image/fetch/$s_!EjpL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611844c0-7f4f-4685-a281-85f9551bea79_830x553.webp 424w, https://substackcdn.com/image/fetch/$s_!EjpL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611844c0-7f4f-4685-a281-85f9551bea79_830x553.webp 848w, https://substackcdn.com/image/fetch/$s_!EjpL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611844c0-7f4f-4685-a281-85f9551bea79_830x553.webp 1272w, https://substackcdn.com/image/fetch/$s_!EjpL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611844c0-7f4f-4685-a281-85f9551bea79_830x553.webp 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>2. Ecological planning</strong></p><ul><li><p>At present, the Cangjie language has been implemented in scenarios such as device-side HarmonyOS native applications and cloud-side microservices, and has built an IDE plug-in ecosystem to achieve intelligent programming coordination with large models.</p></li><li><p>Cangjie plans to promote the construction of developer ecology through the "Cangjie Cup" competition, and carry out joint research on the cutting-edge technology of compilers with major universities to accelerate the maturity of the independent programming language system.</p></li></ul><h2><strong>Technology Club: The practice base of Cangjie language</strong></h2><p>Liu Qin, executive director of the OpenHarmony Technology Club of Nanjing University, clearly mentioned in the plan that the club will focus on the following actions around the Cangjie language:</p><ul><li><p><strong>Source Code Study and Project Incubation:</strong> Set up a special research group for Cangjie language, combine enterprise-level projects and academic resources to promote its technical iteration.</p></li><li><p><strong>Talent training:</strong> Through summer training camps and open source competitions (such as "Cangjie Cup"), we will cultivate compound talents with open source system research and development capabilities.</p></li><li><p><strong>Ecosystem co-construction:</strong> Collaborate with Huawei and other enterprises to apply the Cangjie language to cutting-edge fields such as RISC-V and AI test frameworks.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!laEe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dba4efc-cfb9-4476-be79-54daece1399d_831x591.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!laEe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dba4efc-cfb9-4476-be79-54daece1399d_831x591.webp 424w, https://substackcdn.com/image/fetch/$s_!laEe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dba4efc-cfb9-4476-be79-54daece1399d_831x591.webp 848w, https://substackcdn.com/image/fetch/$s_!laEe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dba4efc-cfb9-4476-be79-54daece1399d_831x591.webp 1272w, https://substackcdn.com/image/fetch/$s_!laEe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dba4efc-cfb9-4476-be79-54daece1399d_831x591.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!laEe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dba4efc-cfb9-4476-be79-54daece1399d_831x591.webp" width="831" height="591" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9dba4efc-cfb9-4476-be79-54daece1399d_831x591.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:591,&quot;width&quot;:831,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#22270;&#29255;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#22270;&#29255;" title="&#22270;&#29255;" srcset="https://substackcdn.com/image/fetch/$s_!laEe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dba4efc-cfb9-4476-be79-54daece1399d_831x591.webp 424w, https://substackcdn.com/image/fetch/$s_!laEe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dba4efc-cfb9-4476-be79-54daece1399d_831x591.webp 848w, https://substackcdn.com/image/fetch/$s_!laEe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dba4efc-cfb9-4476-be79-54daece1399d_831x591.webp 1272w, https://substackcdn.com/image/fetch/$s_!laEe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dba4efc-cfb9-4476-be79-54daece1399d_831x591.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Industry, university and research work together to create a new highland of domestic technology</strong></h2><p>Lu Yanqing, Vice President of Nanjing University, and Chen Haibo, Chairman of the OpenHarmony Technical Steering Committee, both emphasized that the establishment of the club is an important step to promote the innovation of domestic basic software. Relying on the advantages of multidisciplinary interdisciplinarity, Nanjing University will break through the "bottleneck" problem in key OpenHarmony technologies (such as Cangjie language and distributed architecture), and help China occupy a dominant position in the global operating system field.</p><p>Chen Haibo and Wu Gangshan jointly unveiled the establishment of the OpenHarmony Technology Club of Nanjing University. Subsequently, Chen Haibo awarded Liu Qin a plaque.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W3OU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c57f72-c6fc-4dad-b543-eebea70b7940_829x661.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W3OU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c57f72-c6fc-4dad-b543-eebea70b7940_829x661.webp 424w, https://substackcdn.com/image/fetch/$s_!W3OU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c57f72-c6fc-4dad-b543-eebea70b7940_829x661.webp 848w, https://substackcdn.com/image/fetch/$s_!W3OU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c57f72-c6fc-4dad-b543-eebea70b7940_829x661.webp 1272w, https://substackcdn.com/image/fetch/$s_!W3OU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c57f72-c6fc-4dad-b543-eebea70b7940_829x661.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W3OU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c57f72-c6fc-4dad-b543-eebea70b7940_829x661.webp" width="829" height="661" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/88c57f72-c6fc-4dad-b543-eebea70b7940_829x661.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:661,&quot;width&quot;:829,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#22270;&#29255;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#22270;&#29255;" title="&#22270;&#29255;" srcset="https://substackcdn.com/image/fetch/$s_!W3OU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c57f72-c6fc-4dad-b543-eebea70b7940_829x661.webp 424w, https://substackcdn.com/image/fetch/$s_!W3OU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c57f72-c6fc-4dad-b543-eebea70b7940_829x661.webp 848w, https://substackcdn.com/image/fetch/$s_!W3OU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c57f72-c6fc-4dad-b543-eebea70b7940_829x661.webp 1272w, https://substackcdn.com/image/fetch/$s_!W3OU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c57f72-c6fc-4dad-b543-eebea70b7940_829x661.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>OpenHarmony is an open source project incubated and operated by the OpenAtom Foundation, with the goal of building a framework and platform for the operating system of smart terminal devices in an open-source manner for the all-scenario, full-connected, and all-intelligent era, so as to promote the prosperity and development of the Internet of Everything industry. Over the past three years since OpenHarmony was open sourced, the community has grown rapidly, with more than 70 co-builders and more than 8,200 co-builders contributing more than 120 million lines of code. Up to now, under the leadership of the Technical Steering Committee of the OpenHarmony Project Group, the OpenHarmony community has jointly established OpenHarmony Technology Clubs or Developer Associations with more than 100 leading universities in China, by attracting teachers and students to participate in technology research and focusing on the cultivation of innovative talents, continuously deepening industry-university-research collaboration, and working with all sectors of society to promote the technological development and community prosperity of OpenHarmony.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rT0p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cef4163-9e1d-4b87-9e16-02879db999cf_830x588.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rT0p!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cef4163-9e1d-4b87-9e16-02879db999cf_830x588.webp 424w, https://substackcdn.com/image/fetch/$s_!rT0p!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cef4163-9e1d-4b87-9e16-02879db999cf_830x588.webp 848w, https://substackcdn.com/image/fetch/$s_!rT0p!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cef4163-9e1d-4b87-9e16-02879db999cf_830x588.webp 1272w, https://substackcdn.com/image/fetch/$s_!rT0p!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cef4163-9e1d-4b87-9e16-02879db999cf_830x588.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rT0p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cef4163-9e1d-4b87-9e16-02879db999cf_830x588.webp" width="830" height="588" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6cef4163-9e1d-4b87-9e16-02879db999cf_830x588.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:588,&quot;width&quot;:830,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#22270;&#29255;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#22270;&#29255;" title="&#22270;&#29255;" srcset="https://substackcdn.com/image/fetch/$s_!rT0p!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cef4163-9e1d-4b87-9e16-02879db999cf_830x588.webp 424w, https://substackcdn.com/image/fetch/$s_!rT0p!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cef4163-9e1d-4b87-9e16-02879db999cf_830x588.webp 848w, https://substackcdn.com/image/fetch/$s_!rT0p!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cef4163-9e1d-4b87-9e16-02879db999cf_830x588.webp 1272w, https://substackcdn.com/image/fetch/$s_!rT0p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cef4163-9e1d-4b87-9e16-02879db999cf_830x588.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Original source: <a href="https://juejin.cn/post/7501463799347806223?searchId=202505080459075C0F2E3336C45D8414FC">&#21335;&#20140;&#22823;&#23398;OpenHarmony&#25216;&#26415;&#20465;&#20048;&#37096;&#27491;&#24335;&#25581;&#29260; &#20179;&#39049;&#32534;&#31243;&#35821;&#35328;&#24341;&#39046;&#29983;&#24577;&#21019;&#26032;2025&#24180;4&#26376;24&#26085;&#65292;&#21335;&#20140;&#22823;&#23398;OpenHarm - &#25496;&#37329;</a></p>]]></content:encoded></item><item><title><![CDATA[HarmonyOS Next Private Repository Construction in Practice ]]></title><description><![CDATA[This article builds its own private repository based on the tools provided by the official.]]></description><link>https://www.harmony-developers.com/p/harmonyos-next-private-repository</link><guid isPermaLink="false">https://www.harmony-developers.com/p/harmonyos-next-private-repository</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Tue, 06 May 2025 22:49:24 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b8793509-20bb-4859-8ca3-cd036fddd9ec_825x417.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>Background</strong></h2><p>In Android and iOS development, dependencies and collaborations are often carried out in the form of binary products. Android uses Maven as the repository, and iOS has Pod as the repository. We can use open libraries provided by others on the officially provided platforms, which greatly improves everyone's development efficiency. However, some libraries related to a company's business do not want to be used by external personnel. Uploading them to external common repositories is not very safe. Many companies have built private repositories internally. On the one hand, it is more secure, and on the other hand, pushing and pulling products is usually faster.</p><p>HarmonyOS has the same issue. We can conveniently use open products from third parties on the official repository platform, but for a company's internal business, it still needs to rely on private repositories. This article builds its own private repository based on the tools provided by the official.</p><h2><strong>Introduction to HarmonyOS Shared Packages</strong></h2><p>HarmonyOS shared packages are divided into static shared packages and dynamic shared packages:</p><ul><li><p>HAR (Harmony Archive) is a static shared package that can contain code, C++ libraries, resources, and configuration files. Through HAR, multiple modules or multiple projects can share relevant codes such as ArkUI components and resources. HAR is different from HAP and cannot be independently installed and run on devices. It can only be referenced as a dependency of application modules.</p></li><li><p>HSP (Harmony Shared Package) is a dynamic shared package. Static shared packages will be packaged into each dependent HAP, resulting in a large package size and repeated packaging of multiple copies of public resources and codes into the application. Dynamic shared packages allow multiple HAPs to share the same public resource code. HSP only supports sharing within an application and does not support cross-application sharing.</p></li></ul><h2><strong>Building a Private Repository with the ohpm-repo Private Repository Tool</strong></h2><p>The official provides the ohpm-repo tool to help developers quickly build lightweight ohpm private repositories. It is compatible with the ohpm package manager and caches all dependencies on demand to accelerate installation in a private network.</p><p>ohpm-repo supports single-point deployment and multi-instance deployment:</p><ul><li><p>Single-point deployment: ohpm-repo is only deployed and used on one machine.</p></li><li><p>Multi-instance deployment: ohpm-repo will be deployed on multiple machines with the same configuration content and shared data storage space.</p></li></ul><h3><strong>Installation of the Dependent Environment</strong></h3><ol><li><p>ohpm-repo depends on node to run and supports node.js 16.x and above versions. Nodejs needs to be installed first, and the environment needs to be configured. NodeJs can be downloaded from the official website (<a href="https://nodejs.org/download/release/latest/">https://nodejs.org/download/release/latest/</a>).</p></li></ol><h3><strong>Downloading the ohpm-repo Tool</strong></h3><ol><li><p>Download the ohpm-repo tool. The download address is: <a href="https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-software-download-0000001507075446">https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-software-download-0000001507075446</a></p></li><li><p>Unzip the ohpm-repo tool.</p></li></ol><h3><strong>Configuring the ohpm-repo Environment Variables</strong></h3><ol><li><p>Configure the path of the bin directory in the unzipped directory of the ohpm-repo tool package to the system environment variable path: <code>export PATH=$OHPM-REPO-PATH/bin:$PATH</code></p></li><li><p>Execute the command <code>ohpm-repo -v</code> to view the version number and verify that the unzipped package is intact.</p></li></ol><h3><strong>Configuration of the ohpm-repo Service Configuration File</strong></h3><p>Enter the conf directory in the unzipped directory, open the config.yaml file. The default configuration is as follows:</p><pre><code><code>##### server configuration section #####
listen: 0.0.0.0:8088
# listen:
# - localhost:8088            # Listen to the local loopback address
# - http://localhost:8088     # Listen to the local loopback address
# - 0.0.0.0:8088              # Listen to all local addresses (INADDR_ANY)
# Protocol Configurable http or https&#65292;default http
# port: 1-65535(Windowssystems)/ 1024-65535(LinuxmaybeMacsystems&#65289;

# selectable (listen because of https You must configure the)
https_key: ''                 # https service-usable key pathways  (No configuration defaults to'')
https_cert: ''                # https service-usable crt pathways  (No configuration defaults to'')

##### server deploy root section #####
deploy_root: ''                # Installation root directory (No configuration defaults to `&lt;existing userhomedirectory (on computer hard drive)&gt;/ohpm-repo`)&#65292;Only absolute paths are supported&#65292;and the path directory must exist

##### server numeric limit section #####
max_package_size: 100          # Upload packet size limit inMB (0, 100]&#65292;&#19981;&#37197;&#32622;&#40664;&#35748;&#20026; 100
max_extract_size: 500          # Unpacked zip size limit&#65292;The unit isMB [max_package_size, 500]&#65292;No configuration defaults to 500
max_extract_file_num: 10240    # Limit the number of files in a zip archive after decompression (0, 102400]&#65292;No configuration defaults to 10240
user_rate_limit: 100           # User access frequency control in times/s (0, 10000]&#65292;No configuration defaults to 100
fetch_timeout: 60              # Request/response timeout in seconds (0, 3600]&#65292;No configuration defaults to 60
keep_alive_timeout: 60         # TCP Hold connection timeout&#65292;In seconds. (0, 3600]&#65292;&#19981;&#37197;&#32622;&#40664;&#35748;&#20026; 60
api_timeout: 60                # apitimeout&#65292;In seconds.(0, 3600]&#65292;No configuration defaults to 60
upload_lock_hour: 24           # After taking down all versions of a package, a time-limited ban on uploads of packages with the same name will be imposed.&#65292;&#21333;Bit is the hour. (0, 168]&#65292;non-configuration&#65292;default 24
upload_max_times: 100          # Limit on the number of uploads in a 24-hour period for a single user (0, 10000]&#65292;No configuration defaults to 100

##### metadata storage section #####
## Data storage type filedb respond in singing mysql Either/or, not both
db:                         # must yaml Writing in array form
  type: filedb
  config:                   # If you want to change the storage path and keep the old data, you need to change the number under the old path to the new path. Migration of documents to new paths
    path:./db              # Local data storage path, not configured defaults to &lt;deploy_root&gt;/db;

#db:                        # Must be written in yaml array form
#  type: mysql
#  config:
#    host: "localhost"      # Database host address
#    port: 3306             # database port (0,65535]
#    username: root         # User name of the database
#    password: "password"   # User password for the database (please configure it in plaintext, it will eventually be converted to ciphertext in the deployment directory)
#    database: "repo"       # database name

##### storage section #####
## File storage typefs,sftp &#21644; custom Three choices, not more.

store:                               # Must be written in yaml array form
  type: fs
  config:                            # If you want to change the storage path after uploading a resource, you need to migrate the data under the old path to the new path.
    path:./storage                  # The path to the triple repository store that has been shelved, without configuration the default is  &lt;deploy_root&gt;/storage;
    #server: http://localhost:8088   # Tripartite library download link, no default value configured

# The file storage type is sftp &#26102;&#65292;Configure up to three sftp services
#store:                               # Must be written in yaml array form
#  type: sftp                         # if and only if db The type of the mysql hour&#65292;store It is only when the type of the sftp
#  config:
#    location:
#      -
#        name: test_one_sftp          # Host name, name cannot be duplicated with other sftp configurations
#        host: "localhost"            # host address
#        port: 22                     # host port (0,65535]
#        read_username: "read"        # Name of the user with read access to the host
#        read_password: "password"    # Passwords for users with read access to the host (please configure plaintext, it will be converted to ciphertext in the deployment directory)
#        write_username: "write"      # Name of the user with write access to the host
#        write_password: "password"   # Passwords for users with write access to the host (please configure plaintext, it will be converted to ciphertext in the deployment directory)
#        path: /source22              # Path to a file relative to the sftp root directory, starts with / only, and the path folder must exist.
#      -
#        name: test_two_sftp
#        host: "localhost"
#        port: 24
#        read_username: "read"
#        read_password: "password"
#        write_username: "write"
#        write_password: "password"
#        path: /source24
#    #server: http://localhost:8088   # The address of the local repository download link, without configuring the default value of listen,
#store:
#  type: custom                                            # is a custom storage plugin type, the custom storage plugin development process is described in the guidance document
#  config:
#    export_name: CustomStorage                            # Class name of the plugin export
#    plugin_path:../plugins/CustomStorage.js              # The absolute path of the plugin or the path relative to the ohpm-repo package, it is recommended to place the plugin in the plugins directory of the package
#    custom_field: "test"                                  # Custom fields, get the value of a custom field by introducing the getStorageConfigInfo method of libs/common/getStorageConfigInfo.js
#    #server: http://localhost:8088                        # Local repository download link address, not configured to take the default value of listen
##### uplink section #####
uplink_cache_path:./uplink      # Cache path, no configuration defaults to &lt;deploy_root&gt;/uplink
uplink_cache_time: 168           # Remote packet metadata cache time, in hours, default 168 hours, range (0, 8760]

##### log section #####
logs_path:./logs                # log path, no configuration defaults to &lt;deploy_root&gt;/logs

##### log level section #####
# Log Levels: In descending order, the levels are all&#12289;trace&#12289;debug&#12289;info&#12289;warn&#12289;error&#12289;fatal&#12289;mark&#12289;off
# run&#65292;operate respond in singing access Not configured or misconfigured, defaults to info
loglevel_run: info
loglevel_operate: info
loglevel_access: info
</code></code></pre><p>It includes listening ports, https configuration, the private repository deployment directory deploy_root, service-related configurations, storage configurations, logs, etc. Just configure it according to the actual situation.</p><p>Regarding the storage module:<br>The db is the configuration item for metadata storage. The db supports local storage of fileDB and storage in the mysql database.<br>The store is the configuration item for file storage. The store supports local storage, sftp storage, and custom plugin storage.</p><p><strong>Methods for Modifying the Configuration File After the Private Repository is Successfully Started</strong>:</p><ul><li><p>When starting the private repository for the first time, execute the <strong>install</strong> command to specify the configuration file: Find the specified configuration file to modify its content, then re-execute install to specify the modified configuration file, and then execute start to start the private repository.</p></li><li><p>When starting the private repository for the first time, execute the <strong>install</strong> command without specifying the configuration file: The configuration file in the conf directory under the unzipped path of the private repository compression package is used by default. Modify the content of this file, and then re-execute the install and start operations.</p></li></ul><h3><strong>Installation and Startup</strong></h3><p>Execute <code>ohpm-repo install</code> to install. After the installation is completed, set the environment variables according to the configuration. After the setting is completed, execute <code>ohpm-repo start</code> to start the service.</p><h2><strong>Using Private Repository Shared Packages</strong></h2><p>By default, the client ohpm tool only pulls dependency packages from the official public repository. To pull from a private repository, additional configuration is required. There are two configuration methods:</p><ol><li><p>Configure this private repository for all projects: <code>ohpm config set registry &lt;Configured Private Warehouse Service Address&gt;/repos/ohpm</code></p></li><li><p>Configure for a certain dependency installation: <code>ohpm install @ohos/lottie --registry &lt;Configured Private Warehouse Service Address&gt;/repos/ohpm</code></p></li></ol><p>The <strong>configured private repository service address</strong> above refers to the address information of store.config.server in the configuration file. For example, if store.config.server is </p><p>http://127.0.0.1:8088</p><p>, then the registry is: <code>http://127.0.0.1:8088/repos/ohpm</code>. If store.config.server is not configured, the default value will be taken.</p><h2><strong>Publishing Shared Packages</strong></h2><p>Locally developed shared packages, whether static shared packages or dynamic shared packages, can be published through the ohpm command tool or using the Web page. For convenience and efficiency in general development work, we usually use the command line to publish.</p><ol><li><p>Generate an ssh key locally: <code>ssh-keygen -m PEM -t RSA -b 4096 -f &lt;your_key_path&gt;</code></p></li><li><p>Log in to the ohpm-repo private repository management address, click on the personal center in the upper right corner of the home page, and add a new public key. Paste the content of the public key file (<code>&lt;your_key_path&gt;.pub</code>) into the public key input box.</p></li><li><p>Set the private key path: <code>ohpm config set key_path &lt;your_key_path&gt;</code></p></li><li><p>Log in to the ohpm-repo private repository management address, click on the personal center in the upper right corner of the home page, and copy the publishing code.</p></li><li><p>Configure the publishing code to the.ohpmrc file: <code>ohpm config set publish_id &lt;your_publish_id&gt;</code></p></li><li><p>Publish the static shared library: <code>ohpm publish demo.har</code></p></li><li><p>Publish the dynamic shared package: <code>ohpm publish demo.tgz</code></p><ol><li><p>The HSP package of the dynamic shared package cannot be directly published in the private repository and needs to be converted into a.tgz package first.</p></li><li><p>Switching the compilation mode to the release mode will package out a.taz package.</p></li></ol></li></ol><h3><strong>Module Configuration</strong></h3><p>In the library module (at the same level as the src folder), add the following files:</p><ul><li><p>Newly create a README.md file: In the README.md file, it must include the introduction and reference method of the package, and more detailed introductions can also be added according to the content of the package.</p></li><li><p>Newly create a CHANGELOG.md file: Fill in the version update record of HAR.</p></li><li><p>Add a LICENSE file: The LICENSE license file.</p></li></ul><p>The README.md file will eventually be displayed on the private repository web platform, and the dependent users can use it directly according to the description in README.md, so it is best to describe it clearly.</p><p>Explanation of the oh_package.json5 configuration file:</p><pre><code><code>{  
    "parameterFile": "../dependencies.json5",  
    "keywords": [  
        "asr"  
    ],  
    "name": "@xx/base-asr",  
    "version": "1.0.0-rc.9",  
    "repository": "http://gerrit.google.com/mobile_harmony/base_asr",  
    "description": "asr sdk",  
    "main": "Index.ets",  
    "author": "qingkouwei",  
    "license": "Apache-2.0",  
    "dependencies": {  

    }  
}
</code></code></pre><p>The module name, version number, and description must meet the requirements. Otherwise, the upload to the private repository will fail. The version number can only increase sequentially and cannot be overwritten infinitely like a SNAPSHOT in Android.</p><h2><strong>Best Practices</strong></h2><p>In the actual development process, an engineering project may have multiple SDKs. After the SDKs are developed, they need to be integrated into other engineering projects. Sometimes, when locating problems and debugging, they may need to be frequently uploaded to the private repository, and other engineering projects rely on the packaged ones for debugging. In this way, it is particularly cumbersome and inefficient to compile the SDK each time and then execute commands to upload it, especially when an engineering project has multiple SDKs and these SDKs also have dependencies.</p><p>The best way is to be able to compile and upload to the private repository with one click through scripts, and upload them one by one according to the dependency relationship. It is also possible to package and upload a certain module separately.</p><p>First, create a version.json5 to store the SDK version:</p><pre><code><code>{  
  "project": {  
    "sdk_version": "1.1.0-rc.1",  
  }  
}
</code></code></pre><p>Automatic packaging:</p><pre><code><code>def run_commands(modulename, productname):  
    hvigor_home = '/Applications/DevEco-Studio.app/Contents/tools/hvigor'  

    # Packing Command
    command1 = 'node %s/bin/hvigorw.js --mode module -p product=default -p module=%s@default -p buildMode=debug assembleHar --analyze --parallel --incremental --daemon' %(hvigor_home,modulename)  

    # Wait for the first command to complete    
    process1.wait()  

    # Upload command   
    ohpm publish productname
    process2.wait()
</code></code></pre><p>Automatically modify the version number:</p><pre><code><code>
python
def changeVersionAModule():  
    with open('version.json5', 'r') as f:  
        data = json5.load(f)  
        versionName = data['project']['sdk_version']  

        with open('AModule/oh-package.json5', 'r') as f:  
            aData = json5.load(f)  
            aData['version'] = versionName  
            with open('AModule/oh-package.json5', 'w') as f:  
                json.dump(aData, f, indent=4)  

        with open('dependencies.json5', 'r') as depf:  
            depData = json5.load(depf)  
            depData</code></code></pre><div><hr></div><p>Original source: <a href="https://dev.to/qingkouwei/harmonyos-private-repository-construction-in-practice-4p35">HarmonyOS Next Private Repository Construction in Practice - DEV Community</a></p>]]></content:encoded></item><item><title><![CDATA[Why Open Source Apps Are a Big Deal and the Role of Self-Hosting ]]></title><description><![CDATA[Recent US tariffs have increased technology prices and disrupted global supply chains, making IT budgets less predictable and pushing organizations to seek more cost-effective and resilient solutions.]]></description><link>https://www.harmony-developers.com/p/why-open-source-apps-are-a-big-deal</link><guid isPermaLink="false">https://www.harmony-developers.com/p/why-open-source-apps-are-a-big-deal</guid><dc:creator><![CDATA[Benjamin Akhigbe]]></dc:creator><pubDate>Tue, 06 May 2025 22:22:23 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/675e6a75-23b6-4573-8959-2a8c3ecb803d_474x289.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Recent <strong><a href="https://blogs.idc.com/2025/04/04/the-impact-of-april-2-tariffs-on-it-spending/">US tariffs</a></strong> have increased technology prices and disrupted global supply chains, making IT budgets less predictable and pushing organizations to seek more cost-effective and resilient solutions. <strong>Services or software solutions aren&#8217;t taxed</strong>&#8230;yet??</p><p>Open source and self-hosted solutions help businesses <strong>reduce reliance on single vendors</strong>, which is crucial when supply chains are unstable and licensing costs can suddenly rise due to geopolitical events. By self-hosting, companies gain <strong>full control over their data</strong>, security, and compliance, avoiding risks tied to third-party providers and ensuring they can meet strict regulatory requirements. Open source software also enables rapid innovation and customization, allowing organizations to adapt quickly without waiting for commercial vendors to update their products.</p><p>Finally, these solutions <strong>offer long-term financial predictability</strong>, as businesses avoid recurring subscription fees and unexpected price hikes, which is especially important in a volatile economic environment</p><p>An open source application is software whose <strong>source code is publicly available</strong>. This means anyone can look at it, tweak it, improve it, or share it &#8211; all depending on the type of license it comes with (like MIT, GPL, <strong><a href="https://www.apache.org/">Apache</a></strong>, etc.). Unlike closed-source (a.k.a. proprietary) software, <strong>there are no secrets here</strong> &#8211; developers and users alike can see exactly how the app works and even help shape its future. Most open source apps are <strong>free to use</strong>, and you're generally allowed to use them for personal, educational, or even commercial purposes. Pretty sweet, right?</p><p><strong>FOSS</strong> (Free and Open Source Software) takes this even further by offering not just transparency but also the flexibility to <strong>customize and build software</strong> that perfectly fits your needs. It allows organizations to innovate rapidly, without waiting for commercial vendors to update their products, and it&#8217;s backed by a supportive community that helps shape its evolution. With FOSS, businesses can enjoy the freedom to modify, distribute, and use the software in any way they see fit, making it a powerful alternative to proprietary solutions.</p><p><strong>So, why are open source apps such a hit?</strong></p><p>For starters, they help <strong>keep costs down</strong> &#8211; making them a great choice for startups, schools, and nonprofits that want to avoid pricey software licenses without sacrificing quality. Thanks to large, active communities around many open source projects, development tends to move quickly &#8211; bugs get fixed fast, and new features are released regularly. Open source is also a fantastic <strong>resource for learning</strong>; if you're getting into programming, there&#8217;s no better way to explore real-world code and even contribute to meaningful projects. And that&#8217;s why we like it!</p><p><strong>And what do we also like?</strong></p><p>Self-hosting. Many open source apps can be hosted on your own server or infrastructure, giving you<strong> full control</strong> over your data, performance, and privacy. Whether it&#8217;s a project management tool, a file storage platform, or a web analytics dashboard &#8211; self-hosted solutions let you <strong>run things your way</strong>, without relying on third-party services. That&#8217;s especially valuable for teams that are privacy-conscious, working in regulated industries, or just want to avoid being dependent on external providers.</p><p><strong>Some examples</strong></p><p>When you combine these two things &#8211; <strong>open source and self-hosting</strong> &#8211; you get something like <strong><a href="https://mattermost.com/">Mattermost</a></strong>. Think of it as a privacy - first alternative to <strong><a href="https://slack.com/">Slack</a></strong> or <strong><a href="https://www.microsoft.com/hr-hr/microsoft-teams/group-chat-software">Microsoft Teams</a></strong> &#8211; but with a lot <strong>more control and flexibility.</strong> It offers everything you'd expect from a messaging platform: real-time chat, private and group messaging, file sharing, channel organization, and integrations. But it also goes a step further.</p><p>Another great example? <strong><a href="https://nextcloud.com/">Nextcloud</a></strong>. It&#8217;s like having your own personal <strong><a href="https://www.dropbox.com/official-teams-page?_tk=paid_sem_goog_biz_b&amp;_camp=21205014608&amp;_kw=dropbox%7Ce&amp;_ad=697020683404%7C%7Cc&amp;gad_source=1&amp;gbraid=0AAAAADubkg8m1BZF8NLkKFxM7e7Adi4hD&amp;gclid=CjwKCAjwn6LABhBSEiwAsNJrjuA0YFZcUstlpiPU-c3vk9jCZvxZ-GU8GC_Xj0s08LOiqqm0b7opoRoCeWAQAvD_BwE">Dropbox</a></strong>, <strong><a href="https://play.google.com/store/apps/details?id=com.google.android.apps.docs&amp;pli=1">Google Drive</a></strong>, and <strong><a href="https://www.office.com/">Microsoft Office</a></strong> <strong>suite all rolled into one</strong> &#8211; but totally under your control. You can host it yourself, sync files across devices, share documents securely, and even collaborate on text, spreadsheets, and video calls &#8211; all without handing over your data to big tech. It&#8217;s perfect for individuals, teams, or organizations that want powerful cloud features without the cloud compromise.</p><p>You can also find <strong><a href="https://www.gimp.org/">GIMP</a></strong> - a free and <strong>open-source image editor</strong> that offers everything you need for image editing. Whether it's basic tasks like cropping and adjusting colors or more advanced features like layers, masking, and plugin support, it&#8217;s all there. And the best part? You don&#8217;t need to worry about paying for licenses or sharing your data.</p><p>For servers, there's <strong><a href="https://www.proxmox.com/en/">Proxmox</a></strong> &#8211; a solution that stands out for its <strong>simplicity and rich feature </strong>set. With Proxmox, you get a user-friendly web interface that makes <strong>managing virtual environments</strong> a breeze. It lets you easily monitor performance, set up storage, and run multiple virtual machines or containers on a single physical host. Whether you're running a small business or managing a larger enterprise environment, it offers the flexibility and ease of use you need to keep everything running smoothly.</p><p>So, the next time you're selecting software or a tool for your business, <strong>take a look under the hood.</strong> If it&#8217;s open source, that&#8217;s usually a good sign. It&#8217;s more than just cost savings - it&#8217;s about gaining control, boosting flexibility, and staying ahead in a world that&#8217;s constantly shifting. Why settle for less when you can take the wheel and shape your own tech future?</p><p>Original source: <a href="https://www.linkedin.com/pulse/why-open-source-apps-big-deal-role-self-hosting-milan-puvaca-phd--kc8of/?trackingId=jO2Ztct3QSOKotGXpC2hQQ%3D%3D">Why Open Source Apps Are a Big Deal and the Role of Self-Hosting | LinkedIn, </a><strong><a href="https://www.linkedin.com/pulse/why-open-source-apps-big-deal-role-self-hosting-milan-puvaca-phd--kc8of/?trackingId=jO2Ztct3QSOKotGXpC2hQQ%3D%3D">Milan Puvaca, PhD.</a></strong></p>]]></content:encoded></item><item><title><![CDATA[The OpenHarmony Developer Conference 2025 will be officially announced on May 24, and the 5.1 Release version will be released ]]></title><description><![CDATA[Today is the official announcement that OpenHarmony Developer Conference 2025 will be held in Shenzhen on May 24.]]></description><link>https://www.harmony-developers.com/p/the-openharmony-developer-conference</link><guid isPermaLink="false">https://www.harmony-developers.com/p/the-openharmony-developer-conference</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Tue, 06 May 2025 19:38:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_Yi4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219e3097-34ac-466c-a53c-fb33fe93834c_834x523.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://www.ithome.com/">IT Home</a> reported on May 6 that the official announcement of the Open Source <a href="https://hmos.ithome.com/">HarmonyOS</a> Developer Conference 2025 will be held in Shenzhen <strong>on May 24</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_Yi4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219e3097-34ac-466c-a53c-fb33fe93834c_834x523.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_Yi4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219e3097-34ac-466c-a53c-fb33fe93834c_834x523.png 424w, https://substackcdn.com/image/fetch/$s_!_Yi4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219e3097-34ac-466c-a53c-fb33fe93834c_834x523.png 848w, https://substackcdn.com/image/fetch/$s_!_Yi4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219e3097-34ac-466c-a53c-fb33fe93834c_834x523.png 1272w, https://substackcdn.com/image/fetch/$s_!_Yi4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219e3097-34ac-466c-a53c-fb33fe93834c_834x523.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_Yi4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219e3097-34ac-466c-a53c-fb33fe93834c_834x523.png" width="834" height="523" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/219e3097-34ac-466c-a53c-fb33fe93834c_834x523.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:523,&quot;width&quot;:834,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:340853,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.harmony-developers.com/i/162999861?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219e3097-34ac-466c-a53c-fb33fe93834c_834x523.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_Yi4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219e3097-34ac-466c-a53c-fb33fe93834c_834x523.png 424w, https://substackcdn.com/image/fetch/$s_!_Yi4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219e3097-34ac-466c-a53c-fb33fe93834c_834x523.png 848w, https://substackcdn.com/image/fetch/$s_!_Yi4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219e3097-34ac-466c-a53c-fb33fe93834c_834x523.png 1272w, https://substackcdn.com/image/fetch/$s_!_Yi4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219e3097-34ac-466c-a53c-fb33fe93834c_834x523.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Taking the release of the open source OpenHarmony 5.1 Release as an opportunity, the conference invited open source operating system technology leaders and cutting-edge practice experts to showcase the technical innovation and phased achievements of the open source OpenHarmony to developers and ecological partners.</p><p>This conference will usher in <strong>the launch of the open source OpenHarmony 5.1 Release product, the co-construction of application technology components, and the launch of a large screen ecological SIG</strong>.</p><p>The official version of the open-source OpenHarmony 5.1.0 Release <a href="https://www.ithome.com/0/850/678.htm">was released on April 30 and launched on the Gitee platform</a>, upgrading API 18, further enhancing ArkUI and media capabilities, and improving standard web capabilities.</p><p>The agenda of the event is as follows:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ms9b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cab2500-40b8-484e-87bf-990c4be70550_796x687.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ms9b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cab2500-40b8-484e-87bf-990c4be70550_796x687.png 424w, https://substackcdn.com/image/fetch/$s_!ms9b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cab2500-40b8-484e-87bf-990c4be70550_796x687.png 848w, https://substackcdn.com/image/fetch/$s_!ms9b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cab2500-40b8-484e-87bf-990c4be70550_796x687.png 1272w, https://substackcdn.com/image/fetch/$s_!ms9b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cab2500-40b8-484e-87bf-990c4be70550_796x687.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ms9b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cab2500-40b8-484e-87bf-990c4be70550_796x687.png" width="796" height="687" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5cab2500-40b8-484e-87bf-990c4be70550_796x687.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:687,&quot;width&quot;:796,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:275923,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.harmony-developers.com/i/162999861?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cab2500-40b8-484e-87bf-990c4be70550_796x687.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ms9b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cab2500-40b8-484e-87bf-990c4be70550_796x687.png 424w, https://substackcdn.com/image/fetch/$s_!ms9b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cab2500-40b8-484e-87bf-990c4be70550_796x687.png 848w, https://substackcdn.com/image/fetch/$s_!ms9b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cab2500-40b8-484e-87bf-990c4be70550_796x687.png 1272w, https://substackcdn.com/image/fetch/$s_!ms9b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cab2500-40b8-484e-87bf-990c4be70550_796x687.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Original source: <a href="https://www.ithome.com/0/851/054.htm">The open source HarmonyOS Developer Conference 2025 will be officially announced on May 24, and the 5.1 Release version will be released - IT Home</a></p>]]></content:encoded></item><item><title><![CDATA[Based on the open source Hongmeng 5.0 in-depth customization: Zhida Chengyuan, a subsidiary of ArcherMind Technology, launched the Hongzhi automotive cockpit system ]]></title><description><![CDATA[IT Home reported on April 24 that according to OpenAtom OpenHarmony, Zhida Chengyuan, an automotive subsidiary of ArcherMind Technology, announced the launch of Hongzhi automotive cockpit system, providing an automotive cockpit system based on open source]]></description><link>https://www.harmony-developers.com/p/based-on-the-open-source-hongmeng</link><guid isPermaLink="false">https://www.harmony-developers.com/p/based-on-the-open-source-hongmeng</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Sun, 04 May 2025 23:55:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_cWq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e0d516-b14a-4235-995f-9cf801e97996_1080x609.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://www.ithome.com/">IT Home</a> reported on April 24 that according to OpenAtom OpenHarmony, Zhida Chengyuan, an automotive subsidiary of ArcherMind Technology, announced the launch of Hongzhi automotive cockpit system, providing an automotive cockpit system based on open source <a href="https://hmos.ithome.com/">Hongmeng</a> for the era of "software-defined vehicles". <strong>The system will debut at the 2025 Shanghai Motor Show</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_cWq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e0d516-b14a-4235-995f-9cf801e97996_1080x609.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_cWq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e0d516-b14a-4235-995f-9cf801e97996_1080x609.webp 424w, https://substackcdn.com/image/fetch/$s_!_cWq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e0d516-b14a-4235-995f-9cf801e97996_1080x609.webp 848w, https://substackcdn.com/image/fetch/$s_!_cWq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e0d516-b14a-4235-995f-9cf801e97996_1080x609.webp 1272w, https://substackcdn.com/image/fetch/$s_!_cWq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e0d516-b14a-4235-995f-9cf801e97996_1080x609.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_cWq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e0d516-b14a-4235-995f-9cf801e97996_1080x609.webp" width="1080" height="609" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2e0d516-b14a-4235-995f-9cf801e97996_1080x609.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:609,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:&quot;&#22522;&#20110;&#24320;&#28304;&#40511;&#33945; 5.0 &#28145;&#24230;&#23450;&#21046;&#65306;&#35802;&#36808;&#31185;&#25216;&#26071;&#19979;&#26234;&#36798;&#35802;&#36828;&#25512;&#20986;&#40511;&#24535;&#27773;&#36710;&#24231;&#33329;&#31995;&#32479;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="&#22522;&#20110;&#24320;&#28304;&#40511;&#33945; 5.0 &#28145;&#24230;&#23450;&#21046;&#65306;&#35802;&#36808;&#31185;&#25216;&#26071;&#19979;&#26234;&#36798;&#35802;&#36828;&#25512;&#20986;&#40511;&#24535;&#27773;&#36710;&#24231;&#33329;&#31995;&#32479;" srcset="https://substackcdn.com/image/fetch/$s_!_cWq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e0d516-b14a-4235-995f-9cf801e97996_1080x609.webp 424w, https://substackcdn.com/image/fetch/$s_!_cWq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e0d516-b14a-4235-995f-9cf801e97996_1080x609.webp 848w, https://substackcdn.com/image/fetch/$s_!_cWq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e0d516-b14a-4235-995f-9cf801e97996_1080x609.webp 1272w, https://substackcdn.com/image/fetch/$s_!_cWq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e0d516-b14a-4235-995f-9cf801e97996_1080x609.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>According to reports, the Hongzhi automotive cockpit system is based on <strong>the open source Hongmeng 5.0</strong> deep customization, innovative integration of the open source Hongmeng distributed architecture and Zhida Chengyuan's core technology in the field of automotive electronics, with efficient transplantation capabilities, can quickly adapt to Ouyeel Longquan 560, RK3588 and other chip platforms.</p><p>The cockpit system of Hongzhi Automobile is deeply optimized by the open source Hongmeng, and adopts the microkernel architecture to achieve a more streamlined kernel design and improve the execution efficiency and security. The system ensures reliability through multi-level permission management and hardware-level access control mechanisms, and has automotive-grade security protection, and supports Bluetooth, Wi-Fi, audio, video, and camera functions, and provides expansion interfaces <strong>to meet the needs of multi-modal interaction and high-bandwidth data throughput in the intelligent cockpit</strong>.</p><p>In addition, Hongzhi Automotive Cockpit System realizes multi-terminal collaborative experience of terminals, watches, IoT devices and PC devices through distributed soft bus (DSoftBus) capabilities. For example, the driver can check the vehicle status in real time through the smart watch and control it remotely, and the navigation information on the mobile phone can also be transferred to the central control with one click.</p><p>IT Home learned from ArcherMind Technology that the desktop of Hongzhi Automobile Cockpit System adopts a minimalist style, including navigation bar, multimedia card and map function module. The multimedia card supports song playback control, and the map module supports swipe browsing, gesture zoom, path planning, and display mode switching. In addition, the system is equipped with a convenient control bar for quick setting of various vehicle statuses.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;8dfcb943-f999-4d1c-b08c-5f92480681f5&quot;,&quot;duration&quot;:null}"></div><p>Original source: <a href="https://www.ithome.com/0/848/714.htm">In-depth customization based on open source HarmonyOS 5.0: Zhida Chengyuan, a subsidiary of ArcherMind Technology, launched Hongzhi Automotive Cockpit System - IT Home</a></p>]]></content:encoded></item><item><title><![CDATA[OpenHarmony 5.1.0 (API 18) is officially launched: further enhancing ArkUI and media capabilities, and improving standard web capabilities]]></title><description><![CDATA[The official version of OpenHarmony 5.1.0 Release was released on April 30 and the Gitee platform was launched, and API 18 was upgraded.]]></description><link>https://www.harmony-developers.com/p/openharmony-510-api-18-is-officially</link><guid isPermaLink="false">https://www.harmony-developers.com/p/openharmony-510-api-18-is-officially</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Sun, 04 May 2025 22:05:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a57ac7-4705-46d4-b94f-b290054c8d11_676x552.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p><a href="https://www.ithome.com/">IT Home</a> reported on May 4 that the open source <a href="https://hmos.ithome.com/">HarmonyOS</a> OpenHarmony is an open source project incubated and operated by the Open Atom Open Source Foundation, with the goal of building a framework and platform for the operating system of intelligent terminal devices for the era of full scenarios, full connections, and full intelligence, so as to promote the prosperity and development of the Internet of Everything industry.</p><p>The official version of OpenHarmony 5.1.0 Release was released on April 30 and the Gitee platform was launched, and API 18 was upgraded.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!J10r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4d9432a-f2ad-4eaf-ba4d-eddff3dd2e7d_1440x699.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!J10r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4d9432a-f2ad-4eaf-ba4d-eddff3dd2e7d_1440x699.webp 424w, https://substackcdn.com/image/fetch/$s_!J10r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4d9432a-f2ad-4eaf-ba4d-eddff3dd2e7d_1440x699.webp 848w, https://substackcdn.com/image/fetch/$s_!J10r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4d9432a-f2ad-4eaf-ba4d-eddff3dd2e7d_1440x699.webp 1272w, https://substackcdn.com/image/fetch/$s_!J10r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4d9432a-f2ad-4eaf-ba4d-eddff3dd2e7d_1440x699.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!J10r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4d9432a-f2ad-4eaf-ba4d-eddff3dd2e7d_1440x699.webp" width="1440" height="699" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4d9432a-f2ad-4eaf-ba4d-eddff3dd2e7d_1440x699.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:699,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&#24320;&#28304;&#40511;&#33945; OpenHarmony 5.1.0&#65288;API 18&#65289;&#27491;&#24335;&#19978;&#32447;&#65306;&#36827;&#19968;&#27493;&#22686;&#24378; ArkUI&#12289;&#23186;&#20307;&#33021;&#21147;&#65292;&#23436;&#21892;&#26631;&#20934; Web &#33021;&#21147;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="&#24320;&#28304;&#40511;&#33945; OpenHarmony 5.1.0&#65288;API 18&#65289;&#27491;&#24335;&#19978;&#32447;&#65306;&#36827;&#19968;&#27493;&#22686;&#24378; ArkUI&#12289;&#23186;&#20307;&#33021;&#21147;&#65292;&#23436;&#21892;&#26631;&#20934; Web &#33021;&#21147;" srcset="https://substackcdn.com/image/fetch/$s_!J10r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4d9432a-f2ad-4eaf-ba4d-eddff3dd2e7d_1440x699.webp 424w, https://substackcdn.com/image/fetch/$s_!J10r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4d9432a-f2ad-4eaf-ba4d-eddff3dd2e7d_1440x699.webp 848w, https://substackcdn.com/image/fetch/$s_!J10r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4d9432a-f2ad-4eaf-ba4d-eddff3dd2e7d_1440x699.webp 1272w, https://substackcdn.com/image/fetch/$s_!J10r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4d9432a-f2ad-4eaf-ba4d-eddff3dd2e7d_1440x699.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>Compared with the previous Release version (OpenHarmony 5.0.3, API 15), OpenHarmony 5.1.0 Release focuses on the following new features or enhancements:</p></blockquote><ul><li><p>ArkUI is further enhanced to provide richer component property settings, support more exquisite animations, and continue to supplement the ability of components to be called through C APIs.</p></li><li><p>Further enhance media capabilities, providing richer encoding and decoding capabilities, broadcast control capabilities, and media session management capabilities;</p></li><li><p>It further enriches the ability to set the details of application launch;</p></li><li><p>Further enhance the data processing capabilities of UDMF and RDB for distributed data management;</p></li><li><p>Standard web capabilities have been further refined, and more.</p></li></ul><blockquote><p>The official release notes attached to IT Home are as follows, which will be listed in the order of API versions:</p></blockquote><h3><strong>Apply the framework</strong></h3><ul><li><p>Added support for creating an application context based on a specified data encryption level to obtain the corresponding path.</p></li><li><p>Added support for obtaining the process name of the current process synchronously.</p></li><li><p>Added support for getting the reason why the app is pulled up (LAUNCH_REASON_MESSAGE).</p></li><li><p>Added support for HAR/HSP and so files to the startup framework.</p></li><li><p>Added support for specifying the maximum width and height (maxWindowWidth / maxWindowHeight) and minimum width and height (minWindowWidth / minWindowHeight) of the main window when starting Ability.</p></li><li><p>Added support for obtaining the detailed reason for the last exit of an app.</p></li><li><p>Added support for setting the color mode of UIAbility.</p></li><li><p>Added support for specifying the size of the new window (minWindowWidth, minWindowHeight, maxWindowWidth, maxWindowHeight) via the startAbility property startOptions.</p></li><li><p>C API added support for passing startOptions when starting Ability.</p></li><li><p>C API adds support for setting the display mode of window and dock bar icons when starting Ability.</p></li><li><p>A new batch of C API functions is added to obtain the file directories in the application-level sandbox.</p></li></ul><h3><strong>Application package management</strong></h3><blockquote><p>Added a new redirection configuration file module.json5: use the abilitySrcEntryDelegator to identify the name of the UIAbility that the current module needs to be redirected to, and use the abilityStageSrcEntryDelegator Identifies the name of the Module corresponding to UIAbility to which the current Module needs to be redirected (not the name of the current Module), and the two are used in combination to specify the target object of the redirect.</p></blockquote><h3><strong>ArkUI</strong></h3><ul><li><p>Enhancements to the text and input components. Include:</p><ul><li><p>The text component supports the NODE_IMMUTABLE_FONT_WEIGHT property, which does not change with the system font weight.</p></li><li><p>The text component supports sharing services for selected text and line wrapping by syllables.</p></li><li><p>Added support for setting the text selection menu to be displayed in a separate window.</p></li><li><p>The RichEditor component allows you to set the maximum number of lines.</p></li><li><p>The TextInput component supports setting the text omitted position.</p></li><li><p>The TextInput / TextArea / Search / RichEditor component supports splitting text lines evenly to the top and bottom of lines.</p></li><li><p>The TextInput / TextArea component extends the autofill type to include: license plate number, passport number, and so on.</p></li><li><p>The RichEditor component supports vibration effects when you press and hold the preview menu.</p></li><li><p>Added support for clearing the current pre-screen text content in the base type definition.</p></li></ul></li><li><p>Added the ability to fit round screens. Include:</p><ul><li><p>A new crown rotation event has been added, where the component is focused and twists the crown to obtain timestamp, angular velocity, angle of rotation, and crown action.</p></li><li><p>The arc list components, ArcList and ArcListItem, have been added to present continuous, multi-row data of the same type.</p></li><li><p>ArcAlphabetIndexer, a curved index bar component, is added, which can be sorted alphabetically for quick positioning.</p></li><li><p>ArcScrollBar has been added to add an external scrollbar to the arc list.</p></li><li><p>ArcButton, a curved button component, has been added, which provides highlight, normal, and warning buttons.</p></li></ul></li><li><p>Universal drag and drop capability enhanced. Include:</p><ul><li><p>Support encapsulation of custom placement animations.</p></li><li><p>Customizable controls trigger auto-scrolling when dragging to the edge of a scrollable component.</p></li></ul></li><li><p>The pop-up window capability has been enhanced. Include:</p><ul><li><p>You can set levelOrder to manage the display order of pop-up boxes, so that the pop-up boxes with higher levels are overlaid on top of the pop-up boxes with lower levels.</p></li><li><p>You can create and disable custom pop-up windows in custom content.</p></li><li><p>The Popup component supports setting the maximum width via maxWidth.</p></li><li><p>The half-modal popup-style pop-up window supports setting the display position relative to the target through placement, and setting whether the pop-up window can be overlaid on the target node through placementOnTarget.</p></li><li><p>Menu and Dialog support setting custom background blur via backgroundBlurStyleOptions and backgroundEffect.</p></li><li><p>Modal Transitions and MenuItem support!! Bind variables in both directions.</p></li><li><p>After a custom pop-up supports keyboard avoidance, use keyboardAvoidDistance to set the minimum distance between the pop-up window and the keyboard.</p></li><li><p>You can use showInSubWindow to set whether the half-modal is displayed in the sub-window, and you can use effectEdge to set the effect of scrolling on the edge of the half-modal panel.</p></li><li><p>The Menu supports vibration effects when popped up.</p></li></ul></li><li><p>The ability of the form selection component has been enhanced. Include:</p><ul><li><p>The SegmentButtonV2 component is added to create tab, single, or multi-select capsule segment buttons.</p></li><li><p>The TextPicker / TimePicker option triggers an event callback when the selected area is entered.</p></li><li><p>TimePicker / CalendarPicker supports configuring start and end times via start and end.</p></li><li><p>TimePicker supports setting 12-hour clock time through enableCascade to follow the time in the morning and afternoon.</p></li></ul></li><li><p>Scrolling and sliding components have been enhanced. Include:</p><ul><li><p>The Swiper / Tabs component adds a callback that is triggered when a selected element on the page changes, returning the index value of the currently selected or hidden element.</p></li><li><p>The Swiper component adds the ability to control whether a subcomponent stops autoplay when a finger or mouse is pressed on the screen, for example.</p></li><li><p>The Swiper component CAPI capability has been enhanced to set whether the cache node is displayed, the style of the numeric navigation points, and the navigation arrows.</p></li><li><p>The List component supports setting layout styles and scrolling effects (NODE_LIST_SCROLL_TO_INDEX_IN_GROUP, NODE_LIST_LANES, NODE_LIST_SCROLL_SNAP_ALIGN, NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION).</p></li></ul></li><li><p>The C API is added to support the gesture interruption event callback function that can be configured with user-defined data.</p></li><li><p>The C API is added to support obtaining the width, height, and coordinates of the event hit component.</p></li><li><p>Supports setting custom focus logic for components.</p></li><li><p>Gesture configuration parameters can be dynamically obtained, and the threshold of consecutive clicks can be returned.</p></li><li><p>Gesture event information can be returned in the onActionCancel callback triggered when the gesture is canceled.</p></li><li><p>Accessibility supports customizing the focus order, controlling the screen reading mode of the component, and setting the screen reading scrolling operation.</p></li><li><p>You can set the occupancy event of the EmbeddedComponent or UIExtensionComponent component to specify how the gesture event is responded.</p></li><li><p>You can move the current FrameNode to the specified location of the target FrameNode to implement cross-instance node migration.</p></li><li><p>NodeController adds lifecycle callback APIs (onAttach, onDetach, onWillBind, onWillUnbind, onBind, onUnbind, onUnbind, onUnbind) before and after the node is unbound.</p></li><li><p>Screenshots of UI components built by ComponentContent are supported.</p></li><li><p>Added APIs related to mouse axis events.</p></li><li><p>NavDestination adds OnActive and OnInActive lifecycles.</p></li><li><p>The event capability of the C API has been enhanced, and the ability to obtain the width, height, X coordinates, and Y coordinates of components hit by an event has been added.</p></li><li><p>UIContext adds support for creating UI instances that don&#8217;t depend on windows.</p></li><li><p>Added support for setting the callback parameters of the event to limit its execution interval.</p></li><li><p>The ImageAnimator component supports setting whether to determine whether to pause and play the component by the visibility of the system onVisibleAreaChange.</p></li></ul><h3><strong>Window management</strong></h3><ul><li><p>Added a monitoring callback for the completion of the pop-up animation of the soft keyboard.</p></li><li><p>The picture-in-picture window supports the creation of the parameter LocalStorage to achieve a page-level UI state storage unit, which can be used to track the main window instance under multiple instances.</p></li><li><p>Added support for creating virtual screens in window management.</p></li></ul><h3><strong>Graphic images</strong></h3><blockquote><p>A new batch of C API functions and enums have been added to support GPU rendering capabilities that draw directly to the screen buffer.</p></blockquote><h3><strong>Distributed data management</strong></h3><ul><li><p>RelationalStore adds rootDir configuration, which supports opening databases in non-database directories.</p></li><li><p>ArkData RDB provides a vector data storage approximation query solution.</p></li><li><p>Relational databases (RDS) support for obtaining column data types based on specified column indexes or column names.</p></li><li><p>UDMF adds support for converting incoming data into multi-style data structures. If the original data uses multiple records to carry different styles of the same data, you can use this API to convert the original data into a multi-style data structure.</p></li></ul><h3><strong>media</strong></h3><p><strong>audio</strong></p><ul><li><p>Added support for Float32 audio output.</p></li><li><p>Added support for spatial audio management.</p></li></ul><p><strong>Audio and video codecs</strong></p><ul><li><p>Added support for MPEG2, MPEG4, and H.263 for video decoding.</p></li></ul><p><strong>Playback controls</strong></p><ul><li><p>The player supports transparent transmission of SEI field data to applications, which is suitable for HTTP-FLV live streaming.</p></li><li><p>When you call AVPlayer to set a playback policy, you can add support for displaying playback policies such as showFirstFrameOnPrepare and preferredBufferDurationForPlaying after Prepare.</p></li><li><p>The player supports playing pre-downloaded video data.</p></li><li><p>When you call AVPlayer to set a playback policy, thresholdForAutoQuickPlay is supported.</p></li><li><p>Enhancements: Apps can create multiple SoundPool instances.</p></li><li><p>When you call AVPlayer to set a playback policy, the first frame of the video after Prepare (showFirstFrameOnPrepare) is displayed.</p></li><li><p>Added support for setting the target loop mode (setTargetLoopMode) through AV session command passing, and provides event listening callbacks for setting actions.</p></li><li><p>Added support for single-sentence/single-lyricText property for audio conversations.</p></li></ul><p><strong>Image</strong></p><ul><li><p>Added C API support for getting editable flags for images.</p></li></ul><p><strong>Recording</strong></p><ul><li><p>Added an enumeration of video fill modes during screen recording.</p></li><li><p>Added support for configuring the stable recording mode enableStableQualityMode18 in the audio and video recording configuration file.</p></li></ul><h3><strong>The language compiler runtime</strong></h3><ul><li><p>TaskPool supports the concurrency of task execution and the queuing policy of the specified task.</p></li><li><p>TaskPool supports canceling tasks in a task pool by task ID.</p></li><li><p>collections (ArkTS pods) adds support for the following methods in API 18: Array: from, isArray, of, copyWithin, lastIndexOf, some, reduceRight, reverse, toString, every, toLocaleStringTypedArray&#65306;toString&#12289;toLocaleString&#12289;lastIndexOf&#12289;reduceRight</p></li><li><p>Sendable allows you to replace the least recently used data with new data when you don&#8217;t have enough cache space.</p></li><li><p>Workers allow you to specify the priority of a task when you create it.</p></li></ul><h3><strong>safe</strong></h3><p>Added group-based access control for critical assets. By setting group attributes, multiple apps developed by the same developer can share data.</p><h3><strong>DFX</strong></h3><p>Added support for dumping raw heap snapshots of virtual machines for the current thread.</p><h3><strong>Enterprise customization</strong></h3><ul><li><p>Disable/enable feature restrictions: add MTP (mtpClient / mtpServer) and factory reset (resetFactory).</p></li><li><p>Added support for installing user certificates by system account.</p></li><li><p>Added support for adding, deleting, and switching system events for subscribing accounts.</p></li></ul><h3><strong>Basic communication</strong></h3><ul><li><p>Added the function of obtaining the virtual MAC address of the peer Bluetooth device on the Bluetooth socket server</p></li><li><p>Added the ability to obtain the original name of the peer Bluetooth device.</p></li><li><p>Added the ability to connect to the available profiles of peer Bluetooth devices, such as A2DP, HFP, HID and other protocol profiles.</p></li><li><p>Added the ability to persistently store the virtual MAC address of the peer Bluetooth device.</p></li><li><p>The new Bluetooth BLE scanning fence mode allows you to report a BLE broadcast packet to the fence when it is first scanned, and to leave the fence when it does not scan a BLE broadcast packet, and carry the BLE broadcast packet information.</p></li><li><p>Improve the device information searched by Bluetooth, and add RSSI (signal strength), name, and category information to obtain the device RSSI.</p></li><li><p>Added the function of reading and sending Bluetooth socket data asynchronously, and if the link is disconnected, an IO exception will be reported.</p></li></ul><h3><strong>Location Services</strong></h3><p>Added support for subscribing to Bluetooth scanning information reporting events for auxiliary positioning.</p><h3><strong>Network management</strong></h3><p>Added support for obtaining file descriptors for TLSSocket.</p><h3><strong>clipboard</strong></h3><p>The clipboard supports getting the number of times the content of the clipboard has changed.</p><h3><strong>Input</strong></h3><p>The input method framework adds support for setting the callback when the preview text is displayed, and supports subscribing to the event of the input method application operation text preview content.</p><h3><strong>Web</strong></h3><ul><li><p>You can get the element information of the last clicked area.</p></li><li><p>You can set whether the font weight is enabled for web components to change according to the system settings.</p></li><li><p>Support the audio and video in the web can be connected to the broadcast control center.</p></li><li><p>Compatible with W3C specifications, you can specify the type of file to be uploaded by accepting.</p></li><li><p>Provides a static method to clear the resource cache files in your app.</p></li><li><p>Added support for elements rendered on the same layer with a fixed width and height.</p></li></ul><h3><strong>Multimode inputs</strong></h3><p>Added support for setting callbacks for the specified button of the app operation in the foreground.</p><h3><strong>Upload and download</strong></h3><ul><li><p>Upload and download supports the ability to cache and download applications, and supports caching files to the sandbox directory or memory in advance.</p></li><li><p>The API for uploading and downloading the agent allows you to set the maximum speed limit of the task and the content-type field of the file to be uploaded in the form.</p></li></ul><h3><strong>Resource scheduling</strong></h3><ul><li><p>The background sub-process management module is added to provide the ability for applications to suppress and decompress sub-processes, so as to prevent sub-processes from occupying too much system resources and causing system lag.</p></li><li><p>The new growth time mission car key subtype CAR_KEY. The new growth time mission car key subtype CAR_KEY.</p></li><li><p>In the background agent reminder, you can set the resource ID for the reminder title and reminder content fields for global adaptation.</p></li></ul><h3><strong>globalization</strong></h3><ul><li><p>Added support for obtaining the user&#8217;s preferred temperature unit and the start day of the week.</p></li><li><p>Added support for refined formatting of date/number, which is convenient for more flexible use of formatting capabilities.</p></li><li><p>Added support for number formatting that returns rich text.</p></li><li><p>Added the ability to display paths locally, which can determine whether the path needs to be mirrored based on the input language.</p></li></ul><h3><strong>Test the framework</strong></h3><ul><li><p>Added the ability to find the ID and type of the widget that meet the requirements according to fuzzy matching/regular matching.</p></li><li><p>Added support for getting control prompt text and finding control based on control prompt text.</p></li><li><p>Added support for horizontal and vertical search controls, which is only applicable to controls that support swiping.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mL1C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a57ac7-4705-46d4-b94f-b290054c8d11_676x552.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mL1C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a57ac7-4705-46d4-b94f-b290054c8d11_676x552.png 424w, https://substackcdn.com/image/fetch/$s_!mL1C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a57ac7-4705-46d4-b94f-b290054c8d11_676x552.png 848w, https://substackcdn.com/image/fetch/$s_!mL1C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a57ac7-4705-46d4-b94f-b290054c8d11_676x552.png 1272w, https://substackcdn.com/image/fetch/$s_!mL1C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a57ac7-4705-46d4-b94f-b290054c8d11_676x552.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mL1C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a57ac7-4705-46d4-b94f-b290054c8d11_676x552.png" width="676" height="552" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1a57ac7-4705-46d4-b94f-b290054c8d11_676x552.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:552,&quot;width&quot;:676,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:152058,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.harmony-developers.com/i/162846236?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6105a17-8bcc-4fad-8fa2-96fc695ac6f1_1001x570.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mL1C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a57ac7-4705-46d4-b94f-b290054c8d11_676x552.png 424w, https://substackcdn.com/image/fetch/$s_!mL1C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a57ac7-4705-46d4-b94f-b290054c8d11_676x552.png 848w, https://substackcdn.com/image/fetch/$s_!mL1C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a57ac7-4705-46d4-b94f-b290054c8d11_676x552.png 1272w, https://substackcdn.com/image/fetch/$s_!mL1C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a57ac7-4705-46d4-b94f-b290054c8d11_676x552.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Source: <a href="https://harmonyoshub.com/openharmony-5-1-0-api-18-is-officially-launched-further-enhancing-arkui-and-media-capabilities-and-improving-standard-web-capabilities/">OpenHarmony 5.1.0 (API 18) is officially launched: further enhancing ArkUI and media capabilities, and improving standard web capabilities - HarmonyOSHub </a>+ <a href="https://www.ithome.com/0/850/678.htm">ITHome (China)</a></p>]]></content:encoded></item><item><title><![CDATA[China's first open-source HarmonyOS smart building model was released: automatic adjustment of lighting and air conditioning, real-time tracking of visitor tracks ]]></title><description><![CDATA[Country's first smart building model based on open source Hongmeng was officially released in Fuzhou Jianzong Building.]]></description><link>https://www.harmony-developers.com/p/chinas-first-open-source-harmonyos</link><guid isPermaLink="false">https://www.harmony-developers.com/p/chinas-first-open-source-harmonyos</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Tue, 29 Apr 2025 11:32:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rNn8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e807b02-08b6-4ae0-bd9b-25c4183f5607_1080x548.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://www.ithome.com/">IT Home</a> reported on April 29 that during today's 8th Digital China Construction Summit, Fuzhou Urban and Rural Construction Group Co., Ltd. (hereinafter referred to as "Urban and Rural Construction Group") and Shenzhen Kaihong Digital Industry Development Co., Ltd. (hereinafter referred to as "Shenzhen Kaihong") jointly built the <strong>country's first smart building model based on open source <a href="https://hmos.ithome.com/">Hongmeng</a> was officially released in Fuzhou Jianzong Building</strong>.</p><p>With the goal of "making buildings evolve into intelligent organic lifeforms", this project reconstructs the building management model through open-source HarmonyOS technology.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rNn8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e807b02-08b6-4ae0-bd9b-25c4183f5607_1080x548.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rNn8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e807b02-08b6-4ae0-bd9b-25c4183f5607_1080x548.webp 424w, https://substackcdn.com/image/fetch/$s_!rNn8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e807b02-08b6-4ae0-bd9b-25c4183f5607_1080x548.webp 848w, https://substackcdn.com/image/fetch/$s_!rNn8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e807b02-08b6-4ae0-bd9b-25c4183f5607_1080x548.webp 1272w, https://substackcdn.com/image/fetch/$s_!rNn8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e807b02-08b6-4ae0-bd9b-25c4183f5607_1080x548.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rNn8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e807b02-08b6-4ae0-bd9b-25c4183f5607_1080x548.webp" width="1080" height="548" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e807b02-08b6-4ae0-bd9b-25c4183f5607_1080x548.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:548,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:&quot;&#20840;&#22269;&#39318;&#20010;&#24320;&#28304;&#40511;&#33945;&#26234;&#24935;&#27004;&#23431;&#26679;&#26495;&#28857;&#21457;&#24067;&#65306;&#33258;&#21160;&#35843;&#33410;&#28783;&#20809;&#31354;&#35843;&#65292;&#35775;&#23458;&#36712;&#36857;&#23454;&#26102;&#36861;&#36394;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="&#20840;&#22269;&#39318;&#20010;&#24320;&#28304;&#40511;&#33945;&#26234;&#24935;&#27004;&#23431;&#26679;&#26495;&#28857;&#21457;&#24067;&#65306;&#33258;&#21160;&#35843;&#33410;&#28783;&#20809;&#31354;&#35843;&#65292;&#35775;&#23458;&#36712;&#36857;&#23454;&#26102;&#36861;&#36394;" srcset="https://substackcdn.com/image/fetch/$s_!rNn8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e807b02-08b6-4ae0-bd9b-25c4183f5607_1080x548.webp 424w, https://substackcdn.com/image/fetch/$s_!rNn8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e807b02-08b6-4ae0-bd9b-25c4183f5607_1080x548.webp 848w, https://substackcdn.com/image/fetch/$s_!rNn8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e807b02-08b6-4ae0-bd9b-25c4183f5607_1080x548.webp 1272w, https://substackcdn.com/image/fetch/$s_!rNn8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e807b02-08b6-4ae0-bd9b-25c4183f5607_1080x548.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Shenzhen Kaihong said that the urban and rural construction general and Shenzhen Kaihong in-depth cooperation, with open source Hongmeng technology as the core, with the "Kaihong security digital base" as the basic base, <strong>the smart building is like a "smart phone", to achieve cross-terminal interconnection of heterogeneous equipment in the building, unified data scheduling and efficient service collaboration</strong>.</p><p>Based on the open-source Hongmeng KaihongOS and KaihongOS Meta, the "smart brain" is installed for the construction of the building, so that it can perceive the environment like a human and make automatic decisions and adjust based on the full data collected by the device. After intelligent transformation, the construction of the general building has realized the real-time monitoring and linkage of the management module, and implemented multiple scenarios:</p><ul><li><p><strong>Energy consumption management:</strong> Intelligent monitoring of water and electrical equipment, combined with AI energy-saving models, automatic adjustment of lighting and air conditioning, is expected to achieve an overall energy saving rate of 10%-15%, and reduce carbon emissions by nearly 100 tons per year.</p></li><li><p><strong>Smart meeting room:</strong> Through the one-click switching of the conference mode through the Kaihong conference control terminal, the intelligent control of the equipment, the second-level projection and the automatic release of resources after the meeting are realized, the utilization rate of the meeting room is improved, and the green self-service conference mode reduces energy consumption and improves human efficiency;</p></li><li><p><strong>Visitor and security management:</strong> Visitors can make an appointment through the mini program, face recognition to enter the building and real-time trajectory tracking; During fire emergency drills, the digital twin platform pushes escape routes in real time to improve emergency response efficiency.</p></li><li><p><strong>Asset and vehicle management:</strong> visual management of the whole process of assets, real-time statistics of vehicle entry and exit data, and improvement of parking space efficiency;</p></li><li><p><strong>User-side empowerment:</strong> Customize the "General Construction Mini Program" to integrate work order management, remote light control, air conditioning presets and other functions to achieve "people-oriented" service upgrades.</p></li></ul><p>IT Home learned from the announcement of Shenzhen Kaihong that the results of the project show that the introduction of open source HarmonyOS technology has greatly improved the operation and maintenance efficiency of the building, and the energy consumption expenditure of the building has been significantly reduced. In addition, through data-driven decision-making, <strong>the life of building equipment is extended by 10%~15%.</strong></p><p>Shenzhen Kaihong revealed that in the future, buildings and buildings, buildings and surrounding roads, and urban infrastructure will be interconnected based on the distributed capabilities of open source Hongmeng, which <strong>can be combined into a larger "super phone",</strong> and there will be unlimited innovation possibilities based on "super phones".</p><p>Original source: <a href="https://www.ithome.com/0/849/889.htm">The country's first open-source HarmonyOS smart building model was released: automatic adjustment of lighting and air conditioning, real-time tracking of visitor trajectories - IT Home</a></p>]]></content:encoded></item><item><title><![CDATA[The open-source Hongmeng smart fuel dispenser is online and can be paid directly by scanning the code outside the gas station ]]></title><description><![CDATA[OpenAtom OpenHarmony today's news, the three member units of the Oil and Gas Special Committee of the Open Source Hongmeng Ecological Committee]]></description><link>https://www.harmony-developers.com/p/the-open-source-hongmeng-smart-fuel</link><guid isPermaLink="false">https://www.harmony-developers.com/p/the-open-source-hongmeng-smart-fuel</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Tue, 29 Apr 2025 09:39:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WrDV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F926b7d4d-d512-457f-9bce-832c71ecbc13_1080x1082.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://www.ithome.com/">IT Home</a> reported on April 29 that according to OpenAtom OpenHarmony today's news, the three member units of the Oil and Gas Special Committee of the Open Source <a href="https://hmos.ithome.com/">Hongmeng</a> Ecological Committee, Sanying United Technology Co., Ltd., Kunlun Digital Intelligence Technology Co., Ltd., and Shenzhen Zhengkaihong Technology Co., Ltd. jointly developed a <strong>smart fuel dispenser based on open source Hongmeng</strong>. Harbin Nangang Gongbin Road Station (hereinafter referred to as "Gongbin Road Gas Station") of PetroChina Heilongjiang Sales Branch was officially put into operation.</p><p><strong>This achievement marks a key step in the commercialization exploration of open source HarmonyOS in the oil and gas field</strong>, injecting new momentum into the digital transformation of the traditional oil and gas industry.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WrDV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F926b7d4d-d512-457f-9bce-832c71ecbc13_1080x1082.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WrDV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F926b7d4d-d512-457f-9bce-832c71ecbc13_1080x1082.webp 424w, https://substackcdn.com/image/fetch/$s_!WrDV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F926b7d4d-d512-457f-9bce-832c71ecbc13_1080x1082.webp 848w, https://substackcdn.com/image/fetch/$s_!WrDV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F926b7d4d-d512-457f-9bce-832c71ecbc13_1080x1082.webp 1272w, https://substackcdn.com/image/fetch/$s_!WrDV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F926b7d4d-d512-457f-9bce-832c71ecbc13_1080x1082.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WrDV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F926b7d4d-d512-457f-9bce-832c71ecbc13_1080x1082.webp" width="1080" height="1082" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/926b7d4d-d512-457f-9bce-832c71ecbc13_1080x1082.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1082,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:&quot;&#24320;&#28304;&#40511;&#33945;&#26234;&#24935;&#21152;&#27833;&#26426;&#19978;&#32447;&#20351;&#29992;&#65292;&#21487;&#22312;&#21152;&#27833;&#31449;&#23460;&#22806;&#30452;&#25509;&#25195;&#30721;&#25903;&#20184;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="&#24320;&#28304;&#40511;&#33945;&#26234;&#24935;&#21152;&#27833;&#26426;&#19978;&#32447;&#20351;&#29992;&#65292;&#21487;&#22312;&#21152;&#27833;&#31449;&#23460;&#22806;&#30452;&#25509;&#25195;&#30721;&#25903;&#20184;" srcset="https://substackcdn.com/image/fetch/$s_!WrDV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F926b7d4d-d512-457f-9bce-832c71ecbc13_1080x1082.webp 424w, https://substackcdn.com/image/fetch/$s_!WrDV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F926b7d4d-d512-457f-9bce-832c71ecbc13_1080x1082.webp 848w, https://substackcdn.com/image/fetch/$s_!WrDV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F926b7d4d-d512-457f-9bce-832c71ecbc13_1080x1082.webp 1272w, https://substackcdn.com/image/fetch/$s_!WrDV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F926b7d4d-d512-457f-9bce-832c71ecbc13_1080x1082.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In terms of core technology applications, <strong>the tanker is equipped with LightBeeOS, an industry distribution based on open source HarmonyOS</strong>, which has obtained EAL4+ security certification.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QtG1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F796f959c-a38d-491a-9044-b55de99c1e9a_770x1196.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QtG1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F796f959c-a38d-491a-9044-b55de99c1e9a_770x1196.webp 424w, https://substackcdn.com/image/fetch/$s_!QtG1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F796f959c-a38d-491a-9044-b55de99c1e9a_770x1196.webp 848w, https://substackcdn.com/image/fetch/$s_!QtG1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F796f959c-a38d-491a-9044-b55de99c1e9a_770x1196.webp 1272w, https://substackcdn.com/image/fetch/$s_!QtG1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F796f959c-a38d-491a-9044-b55de99c1e9a_770x1196.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QtG1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F796f959c-a38d-491a-9044-b55de99c1e9a_770x1196.webp" width="770" height="1196" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/796f959c-a38d-491a-9044-b55de99c1e9a_770x1196.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1196,&quot;width&quot;:770,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:&quot;&#24320;&#28304;&#40511;&#33945;&#26234;&#24935;&#21152;&#27833;&#26426;&#19978;&#32447;&#20351;&#29992;&#65292;&#21487;&#22312;&#21152;&#27833;&#31449;&#23460;&#22806;&#30452;&#25509;&#25195;&#30721;&#25903;&#20184;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="&#24320;&#28304;&#40511;&#33945;&#26234;&#24935;&#21152;&#27833;&#26426;&#19978;&#32447;&#20351;&#29992;&#65292;&#21487;&#22312;&#21152;&#27833;&#31449;&#23460;&#22806;&#30452;&#25509;&#25195;&#30721;&#25903;&#20184;" srcset="https://substackcdn.com/image/fetch/$s_!QtG1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F796f959c-a38d-491a-9044-b55de99c1e9a_770x1196.webp 424w, https://substackcdn.com/image/fetch/$s_!QtG1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F796f959c-a38d-491a-9044-b55de99c1e9a_770x1196.webp 848w, https://substackcdn.com/image/fetch/$s_!QtG1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F796f959c-a38d-491a-9044-b55de99c1e9a_770x1196.webp 1272w, https://substackcdn.com/image/fetch/$s_!QtG1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F796f959c-a38d-491a-9044-b55de99c1e9a_770x1196.webp 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Thanks to the technical characteristics of the open-source HarmonyOS distributed architecture, <strong>the fuel dispenser can also realize the interconnection with other IoT terminals, optimize the user's operation process in the refueling scenario, and realize the comprehensive upgrade of the human-computer interaction experience</strong>.</p><p>Taking the Gongbin Road gas station as an example, the four smart fuel dispensers deployed in the station are equipped with multimedia intelligent screens, and are equipped with hardware equipment such as voice intercom, voice broadcast, receipt printing, and QR code scanners.</p><p>IT Home noticed that with the blessing of open source Hongmeng, the device supports the synchronization of indoor EPS payment functions to the screen of the refueling terminal, and can call the payment information of the oil gun, <strong>which is convenient for users to realize outdoor scan code payment</strong>.</p><p>In addition, the <strong>fuel dispenser is also compatible with a variety of payment methods such as WeChat, Alipay, UnionPay, PetroChina e-Sharing Card, etc.,</strong> and supports barcode recognition of non-oil commodities and mixed payment of oil and non-oil commodities.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!72cd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d9a39f-a586-4a5b-8ec0-761d0b5593fd_1080x855.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!72cd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d9a39f-a586-4a5b-8ec0-761d0b5593fd_1080x855.webp 424w, https://substackcdn.com/image/fetch/$s_!72cd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d9a39f-a586-4a5b-8ec0-761d0b5593fd_1080x855.webp 848w, https://substackcdn.com/image/fetch/$s_!72cd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d9a39f-a586-4a5b-8ec0-761d0b5593fd_1080x855.webp 1272w, https://substackcdn.com/image/fetch/$s_!72cd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d9a39f-a586-4a5b-8ec0-761d0b5593fd_1080x855.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!72cd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d9a39f-a586-4a5b-8ec0-761d0b5593fd_1080x855.webp" width="1080" height="855" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1d9a39f-a586-4a5b-8ec0-761d0b5593fd_1080x855.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:855,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The indoor EPS payment function is synchronized to the large screen of the intelligent interactive terminal of the fuel dispenser, and the payment information of the fuel gun can be retrieved to realize the outdoor direct scanning code payment&quot;,&quot;title&quot;:&quot;&#24320;&#28304;&#40511;&#33945;&#26234;&#24935;&#21152;&#27833;&#26426;&#19978;&#32447;&#20351;&#29992;&#65292;&#21487;&#22312;&#21152;&#27833;&#31449;&#23460;&#22806;&#30452;&#25509;&#25195;&#30721;&#25903;&#20184;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The indoor EPS payment function is synchronized to the large screen of the intelligent interactive terminal of the fuel dispenser, and the payment information of the fuel gun can be retrieved to realize the outdoor direct scanning code payment" title="&#24320;&#28304;&#40511;&#33945;&#26234;&#24935;&#21152;&#27833;&#26426;&#19978;&#32447;&#20351;&#29992;&#65292;&#21487;&#22312;&#21152;&#27833;&#31449;&#23460;&#22806;&#30452;&#25509;&#25195;&#30721;&#25903;&#20184;" srcset="https://substackcdn.com/image/fetch/$s_!72cd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d9a39f-a586-4a5b-8ec0-761d0b5593fd_1080x855.webp 424w, https://substackcdn.com/image/fetch/$s_!72cd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d9a39f-a586-4a5b-8ec0-761d0b5593fd_1080x855.webp 848w, https://substackcdn.com/image/fetch/$s_!72cd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d9a39f-a586-4a5b-8ec0-761d0b5593fd_1080x855.webp 1272w, https://substackcdn.com/image/fetch/$s_!72cd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d9a39f-a586-4a5b-8ec0-761d0b5593fd_1080x855.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#9650; Synchronize the indoor EPS payment function to the large screen of the intelligent interactive terminal of the fuel dispenser, and the payment information of the fuel gun can be retrieved to realize the outdoor direct scanning code payment</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yZbj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f54a640-59c6-4eb0-8411-4be70a64a9dd_1080x860.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yZbj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f54a640-59c6-4eb0-8411-4be70a64a9dd_1080x860.webp 424w, https://substackcdn.com/image/fetch/$s_!yZbj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f54a640-59c6-4eb0-8411-4be70a64a9dd_1080x860.webp 848w, https://substackcdn.com/image/fetch/$s_!yZbj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f54a640-59c6-4eb0-8411-4be70a64a9dd_1080x860.webp 1272w, https://substackcdn.com/image/fetch/$s_!yZbj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f54a640-59c6-4eb0-8411-4be70a64a9dd_1080x860.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yZbj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f54a640-59c6-4eb0-8411-4be70a64a9dd_1080x860.webp" width="1080" height="860" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f54a640-59c6-4eb0-8411-4be70a64a9dd_1080x860.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:860,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Support WeChat Pay, Alipay, UnionPay, and PetroChina e-Card Member Payment&quot;,&quot;title&quot;:&quot;&#24320;&#28304;&#40511;&#33945;&#26234;&#24935;&#21152;&#27833;&#26426;&#19978;&#32447;&#20351;&#29992;&#65292;&#21487;&#22312;&#21152;&#27833;&#31449;&#23460;&#22806;&#30452;&#25509;&#25195;&#30721;&#25903;&#20184;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Support WeChat Pay, Alipay, UnionPay, and PetroChina e-Card Member Payment" title="&#24320;&#28304;&#40511;&#33945;&#26234;&#24935;&#21152;&#27833;&#26426;&#19978;&#32447;&#20351;&#29992;&#65292;&#21487;&#22312;&#21152;&#27833;&#31449;&#23460;&#22806;&#30452;&#25509;&#25195;&#30721;&#25903;&#20184;" srcset="https://substackcdn.com/image/fetch/$s_!yZbj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f54a640-59c6-4eb0-8411-4be70a64a9dd_1080x860.webp 424w, https://substackcdn.com/image/fetch/$s_!yZbj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f54a640-59c6-4eb0-8411-4be70a64a9dd_1080x860.webp 848w, https://substackcdn.com/image/fetch/$s_!yZbj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f54a640-59c6-4eb0-8411-4be70a64a9dd_1080x860.webp 1272w, https://substackcdn.com/image/fetch/$s_!yZbj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f54a640-59c6-4eb0-8411-4be70a64a9dd_1080x860.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#9650; Support WeChat Pay, Alipay, UnionPay, and PetroChina e-Card Member Payment</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QiUH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60013c43-c1df-4dc6-986f-703dcc7b0230_1x1.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QiUH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60013c43-c1df-4dc6-986f-703dcc7b0230_1x1.png 424w, https://substackcdn.com/image/fetch/$s_!QiUH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60013c43-c1df-4dc6-986f-703dcc7b0230_1x1.png 848w, https://substackcdn.com/image/fetch/$s_!QiUH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60013c43-c1df-4dc6-986f-703dcc7b0230_1x1.png 1272w, https://substackcdn.com/image/fetch/$s_!QiUH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60013c43-c1df-4dc6-986f-703dcc7b0230_1x1.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QiUH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60013c43-c1df-4dc6-986f-703dcc7b0230_1x1.png" width="1" height="1" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/60013c43-c1df-4dc6-986f-703dcc7b0230_1x1.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1,&quot;width&quot;:1,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;It supports scanning the barcode of non-oil commodities and mixed payment of oil and non-oil commodities&quot;,&quot;title&quot;:&quot;&#24320;&#28304;&#40511;&#33945;&#26234;&#24935;&#21152;&#27833;&#26426;&#19978;&#32447;&#20351;&#29992;&#65292;&#21487;&#22312;&#21152;&#27833;&#31449;&#23460;&#22806;&#30452;&#25509;&#25195;&#30721;&#25903;&#20184;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="It supports scanning the barcode of non-oil commodities and mixed payment of oil and non-oil commodities" title="&#24320;&#28304;&#40511;&#33945;&#26234;&#24935;&#21152;&#27833;&#26426;&#19978;&#32447;&#20351;&#29992;&#65292;&#21487;&#22312;&#21152;&#27833;&#31449;&#23460;&#22806;&#30452;&#25509;&#25195;&#30721;&#25903;&#20184;" srcset="https://substackcdn.com/image/fetch/$s_!QiUH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60013c43-c1df-4dc6-986f-703dcc7b0230_1x1.png 424w, https://substackcdn.com/image/fetch/$s_!QiUH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60013c43-c1df-4dc6-986f-703dcc7b0230_1x1.png 848w, https://substackcdn.com/image/fetch/$s_!QiUH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60013c43-c1df-4dc6-986f-703dcc7b0230_1x1.png 1272w, https://substackcdn.com/image/fetch/$s_!QiUH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60013c43-c1df-4dc6-986f-703dcc7b0230_1x1.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>&#9650; Support scanning the barcode payment of non-oil commodities and mixed payment of oil and non-oil commodities</p><p>At the O&amp;M level, with the help of the open-source HarmonyOS system base and equipment management capabilities, the smart fuel dispenser <strong>supports remote status monitoring, component life cycle management and other functions, and will combine industry data models</strong> to achieve a higher level of intelligent O&amp;M in the future.</p><p>Original source: <a href="https://www.ithome.com/0/849/873.htm">The open-source Hongmeng smart fuel dispenser is online and can be directly scanned to pay outside the gas station - IT Home</a></p>]]></content:encoded></item><item><title><![CDATA[HarmonyOS Next API 16 for HarmonyOS Flutter 3.22.0 is released]]></title><description><![CDATA[Welcome everyone to join the nut pie and build the HarmonyOS ecosystem, What&#8217;s new in Flutter 3.22 May 2024: WebAssembly, Graphics rendering enhancements, and more options for AI integration.]]></description><link>https://www.harmony-developers.com/p/harmonyos-next-api-16-for-harmonyos</link><guid isPermaLink="false">https://www.harmony-developers.com/p/harmonyos-next-api-16-for-harmonyos</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Sun, 27 Apr 2025 12:40:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rLtK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2932d326-d32c-4014-84e6-f0e73449b3a6_952x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;dc632249-127c-4811-9ffb-7c2edb7bcf02&quot;,&quot;duration&quot;:null}"></div><p></p><p>Welcome everyone to join the nut pie and build the HarmonyOS ecosystem: https://gitcode.com/nutpi</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rLtK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2932d326-d32c-4014-84e6-f0e73449b3a6_952x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rLtK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2932d326-d32c-4014-84e6-f0e73449b3a6_952x720.png 424w, https://substackcdn.com/image/fetch/$s_!rLtK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2932d326-d32c-4014-84e6-f0e73449b3a6_952x720.png 848w, https://substackcdn.com/image/fetch/$s_!rLtK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2932d326-d32c-4014-84e6-f0e73449b3a6_952x720.png 1272w, https://substackcdn.com/image/fetch/$s_!rLtK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2932d326-d32c-4014-84e6-f0e73449b3a6_952x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rLtK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2932d326-d32c-4014-84e6-f0e73449b3a6_952x720.png" width="952" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2932d326-d32c-4014-84e6-f0e73449b3a6_952x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:952,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:235666,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.harmony-developers.com/i/162255686?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F226373dd-7607-47c1-ad63-4e66796614bf_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rLtK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2932d326-d32c-4014-84e6-f0e73449b3a6_952x720.png 424w, https://substackcdn.com/image/fetch/$s_!rLtK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2932d326-d32c-4014-84e6-f0e73449b3a6_952x720.png 848w, https://substackcdn.com/image/fetch/$s_!rLtK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2932d326-d32c-4014-84e6-f0e73449b3a6_952x720.png 1272w, https://substackcdn.com/image/fetch/$s_!rLtK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2932d326-d32c-4014-84e6-f0e73449b3a6_952x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Flutter 3.22. We&#8217;re bringing WebAssembly to the stable channel, a fully featured Vulkan backend for Impeller on Android, promising smoother graphics and a major performance boost. We&#8217;re also introducing streamlined workflows with new widget state properties, dynamic view sizing, and improved form validation. But that&#8217;s not all &#8212; you&#8217;ll find flavor-conditional asset bundling, a preview of Vertex AI for Firebase in Dart, and updated DevTools to make your life easier.</p><p>In just a few months since our last update, we&#8217;ve merged an impressive 1595 pull requests from the Flutter community, with 37 new community members contributing to Flutter for the first time!</p><p>So, dive in and discover all the new features and enhancements that the Flutter community has brought to this latest release!</p><h1><strong>WebAssembly</strong></h1><p>With the release of Flutter 3.22, Wasm is now available on the stable channel, offering significant performance improvements. In our internal benchmarks using Chrome on an M1 MacBook, the Wonderous app&#8217;s frame rendering time improved by 2x on average and 3x in worst-case scenarios.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xkug!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ba975d-df93-42be-a7c8-22270295eb98_719x371.bin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xkug!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ba975d-df93-42be-a7c8-22270295eb98_719x371.bin 424w, https://substackcdn.com/image/fetch/$s_!xkug!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ba975d-df93-42be-a7c8-22270295eb98_719x371.bin 848w, https://substackcdn.com/image/fetch/$s_!xkug!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ba975d-df93-42be-a7c8-22270295eb98_719x371.bin 1272w, https://substackcdn.com/image/fetch/$s_!xkug!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ba975d-df93-42be-a7c8-22270295eb98_719x371.bin 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xkug!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ba975d-df93-42be-a7c8-22270295eb98_719x371.bin" width="719" height="371" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34ba975d-df93-42be-a7c8-22270295eb98_719x371.bin&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:371,&quot;width&quot;:719,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!xkug!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ba975d-df93-42be-a7c8-22270295eb98_719x371.bin 424w, https://substackcdn.com/image/fetch/$s_!xkug!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ba975d-df93-42be-a7c8-22270295eb98_719x371.bin 848w, https://substackcdn.com/image/fetch/$s_!xkug!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ba975d-df93-42be-a7c8-22270295eb98_719x371.bin 1272w, https://substackcdn.com/image/fetch/$s_!xkug!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ba975d-df93-42be-a7c8-22270295eb98_719x371.bin 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>These enhancements are vital for apps with animations and rich transitions, where maintaining a smooth frame rate is essential. Wasm helps achieve this by reducing performance bottlenecks, resulting in smoother animations and transitions. To start using Wasm with your Flutter web apps, check out our <a href="https://dart.dev/web/wasm">Dart Wasm documentation</a> and <a href="https://docs.flutter.dev/platform-integration/web/wasm">Flutter Wasm documentation</a>. For the full announcement, visit the <a href="https://medium.com/flutter/io24-5e211f708a37">Flutter at Google I/O blog post</a>.</p><h1><strong>Engine</strong></h1><p>Flutter 3.22 introduces significant updates to Impeller, the rendering engine that powers your Flutter applications. Key highlights include the completion of the Vulkan backend on Android for smoother graphics and improved performance, ongoing optimizations for blur effects and complex path rendering, and a new experimental API for testing with Impeller. In line with our <a href="https://github.com/flutter/flutter/wiki/Roadmap#core-framework--engine">roadmap</a>, we&#8217;re committed to enhancing Impeller&#8217;s quality and performance, including completing the iOS migration to Impeller and expanding Android support.</p><h2><strong>Impeller</strong></h2><h2><strong>Vulkan backend feature complete on Android</strong></h2><p>In this release, Impeller&#8217;s Vulkan backend for Android is feature complete. In particular, in the past few months, the team has been hard at work completing the implementation of <a href="https://github.com/flutter/engine/pull/50154">fast advanced blends</a>, support for custom fragment shaders with the <a href="https://github.com/flutter/engine/pull/49543">FragmentProgram API</a>, <a href="https://github.com/flutter/engine/pull/50730">PlatformView</a> support (though it requires a <a href="https://docs.flutter.dev/release/breaking-changes/android-surface-plugins">small API migration</a>), and fully implementing <a href="https://github.com/flutter/flutter/issues/134178">all blur styles</a>.</p><h2><strong>Android preview</strong></h2><p>In the 3.19 stable release, after releasing improvements in Impeller&#8217;s OpenGL backend, we invited users to try out Impeller on Android devices both with and without Vulkan support. Over the past few months, after evaluating the performance of the OpenGL backend and estimating the remaining work on the Vulkan backend, we have decided to focus our efforts on making the Vulkan backend production ready first.</p><p>Impeller solves the issue of shader compilation jank. Additionally, in our benchmarks it outperforms the legacy renderer on average, 90th, and 99th percentile frame times. We therefore believe that the performance of the Vulkan backend on Android is acceptable. In this release (3.22), an app that opts-in to Impeller will use the Vulkan backend where available. In a future release, this will become the default. When an app that opts-in to Impeller runs on a device that doesn&#8217;t support Vulkan, Flutter will gracefully fall back automatically to using OpenGL ES with Skia. No action is necessary on your part. In the future, when we believe the OpenGL ES Impeller backend is production ready, this fallback will also use Impeller.</p><p>As the Impeller preview on Android continues through the 3.22 stable cycle, we request that Flutter developers upgrade to the latest stable version, and file issues about any shortcomings noticed when <a href="https://docs.flutter.dev/perf/impeller#android">Impeller is enabled</a>. Feedback at this stage is invaluable to ensuring that Impeller is successful on Android and that we will be able to confidently make it the default renderer in a release later this year. The Android hardware ecosystem is very diverse. For that reason, the most helpful feedback about Impeller should include detailed information about the specific device and Android version where issues occurred.</p><h2><strong>Blur performance improvements</strong></h2><p>Blur has been <a href="https://github.com/flutter/engine/pull/47576">reimplemented</a> in Impeller for both iOS and Android. In particular, the new approach, which is similar to Skia&#8217;s, reduces the CPU and GPU time of blurs by nearly half in <a href="https://flutter-flutter-perf.skia.org/e/?begin=1699468487&amp;end=1710262311&amp;keys=X01fc3d52ebd6fbf38afef91d82ab8d2b&amp;requestType=0&amp;selected=commit%3D38815%26name%3D%252Carch%253Dintel%252Cbranch%253Dmaster%252Cconfig%253Ddefault%252Cdevice_type%253DiPhone_11%252Cdevice_version%253Dnone%252Chost_type%253Dmac%252Csub_result%253Daverage_frame_rasterizer_time_millis%252Ctest%253Dbackdrop_filter_perf_ios__timeline_summary%252C&amp;xbaroffset=38815">benchmarks</a>.</p><p>The chart below shows worst-case, 99%-ile, 90%-ile, and average frame rasterization times and GPU frame times in ms on an iPhone 11 device in a pathological benchmark intended to highlight blur performance. After rewriting Impeller&#8217;s blur, both the CPU and GPU cost of backdrop filter blurs has been nearly halved. This scale of this improvement translates to non-pathological cases as well, as would appear in typical apps.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!R8Ru!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe21ac66d-72c4-4fa7-ab7a-76d7a2e244bb_875x515.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!R8Ru!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe21ac66d-72c4-4fa7-ab7a-76d7a2e244bb_875x515.png 424w, https://substackcdn.com/image/fetch/$s_!R8Ru!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe21ac66d-72c4-4fa7-ab7a-76d7a2e244bb_875x515.png 848w, https://substackcdn.com/image/fetch/$s_!R8Ru!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe21ac66d-72c4-4fa7-ab7a-76d7a2e244bb_875x515.png 1272w, https://substackcdn.com/image/fetch/$s_!R8Ru!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe21ac66d-72c4-4fa7-ab7a-76d7a2e244bb_875x515.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!R8Ru!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe21ac66d-72c4-4fa7-ab7a-76d7a2e244bb_875x515.png" width="875" height="515" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e21ac66d-72c4-4fa7-ab7a-76d7a2e244bb_875x515.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:515,&quot;width&quot;:875,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!R8Ru!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe21ac66d-72c4-4fa7-ab7a-76d7a2e244bb_875x515.png 424w, https://substackcdn.com/image/fetch/$s_!R8Ru!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe21ac66d-72c4-4fa7-ab7a-76d7a2e244bb_875x515.png 848w, https://substackcdn.com/image/fetch/$s_!R8Ru!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe21ac66d-72c4-4fa7-ab7a-76d7a2e244bb_875x515.png 1272w, https://substackcdn.com/image/fetch/$s_!R8Ru!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe21ac66d-72c4-4fa7-ab7a-76d7a2e244bb_875x515.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">99%-ile, 90%-ile and average frame rasterization times and GPU frame times in ms on an iPhone 11 device in a pathological benchmark intended to highlight blur performance</figcaption></figure></div><h2><strong>Stencil-then-Cover</strong></h2><p>Impeller on both iOS and Android has <a href="https://github.com/flutter/engine/pull/51219">moved to a new rendering strategy</a> based on the Stencil-then-Cover approach described in the chapter &#8220;Drawing Filled, Concave Polygons Using the Stencil Buffer&#8221; in the <a href="http://www.opengl-redbook.com/">OpenGL Redbook</a>. Team members discussed more on this technique as it applies to Flutter in GitHub issue <a href="https://github.com/flutter/flutter/issues/123671">#123671</a>.</p><p>This approach solves the issue where the raster thread was spending too much time calculating tessellations for complex paths on the CPU for example, SVGs and <a href="https://github.com/flutter/flutter/issues/141961">Lottie animations</a>. After the change, the total frame time (UI thread on the CPU + raster thread on the CPU + GPU work) is much lower for frames that contain complex paths. Users will notice that Lottie animations and other complex paths render more smoothly, with lower CPU utilization, and slightly higher GPU utilization.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nvZ7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb67184b-1cbb-49bc-ae77-e72d137d15ae_1280x1280.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nvZ7!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb67184b-1cbb-49bc-ae77-e72d137d15ae_1280x1280.gif 424w, https://substackcdn.com/image/fetch/$s_!nvZ7!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb67184b-1cbb-49bc-ae77-e72d137d15ae_1280x1280.gif 848w, https://substackcdn.com/image/fetch/$s_!nvZ7!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb67184b-1cbb-49bc-ae77-e72d137d15ae_1280x1280.gif 1272w, https://substackcdn.com/image/fetch/$s_!nvZ7!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb67184b-1cbb-49bc-ae77-e72d137d15ae_1280x1280.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nvZ7!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb67184b-1cbb-49bc-ae77-e72d137d15ae_1280x1280.gif" width="1280" height="1280" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb67184b-1cbb-49bc-ae77-e72d137d15ae_1280x1280.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1280,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!nvZ7!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb67184b-1cbb-49bc-ae77-e72d137d15ae_1280x1280.gif 424w, https://substackcdn.com/image/fetch/$s_!nvZ7!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb67184b-1cbb-49bc-ae77-e72d137d15ae_1280x1280.gif 848w, https://substackcdn.com/image/fetch/$s_!nvZ7!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb67184b-1cbb-49bc-ae77-e72d137d15ae_1280x1280.gif 1272w, https://substackcdn.com/image/fetch/$s_!nvZ7!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb67184b-1cbb-49bc-ae77-e72d137d15ae_1280x1280.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">(Left) A Lottie animation. Previously, Impeller on a recent iPhone took 64ms / frame of raster thread CPU time to render it. (Right) The same animation on the same device after we landed the Stencil-then-Cover optimization. Raster times are nearly 10x faster.</figcaption></figure></div><p>While pleased with these improvements, there is still more work to do. Among other opportunities, we are aware that polyline generation remains prominent in CPU profiles, and we intend to investigate shifting this work to the GPU, as well.</p><h2><strong>New API</strong></h2><p>While still experimental, flutter test now accepts the <code>--enable-impeller </code>flag, which exercises Impeller using the Vulkan backend.</p><h1><strong>Framework</strong></h1><h2><strong>Widget state properties</strong></h2><p><code>MaterialState</code> has been moved outside of the Material library and renamed <code>WidgetState</code>, in order to make it available to Cupertino, the base Flutter framework, and package authors. For more information on migrating to the new WidgetState, see the <a href="https://docs.flutter.dev/release/breaking-changes/material-state">migration guide</a>.</p><h2><strong>Dynamic view sizing</strong></h2><p><a href="https://github.com/flutter/flutter/pull/140918">Enhancements</a> to dynamic view sizing benefits developers building responsive layouts, ensuring better UI adaptability across various device screens.</p><h2><strong>Improved form validation</strong></h2><p>Thanks to the <a href="https://github.com/flutter/flutter/pull/135578">contributions</a> of Flutter community member <a href="https://github.com/SharbelOkzan">SharbelOkzan</a>, Flutter 3.22 comes with more flexible form validation methods allowing developers to create more robust user input handling, enhancing both usability and security.</p><h2><strong>Covariants in 2D APIs</strong></h2><p>Reducing the need for type casts in 2D graphics APIs simplifies development workflows and enhances performance, important for games and complex animations.</p><h2><strong>Flavor-conditional asset bundling</strong></h2><p>Developers using the <a href="https://docs.flutter.dev/deployment/flavors">flavors</a> feature can now configure individual assets to be bundled only when building for a specific flavor. For more information, check out <a href="https://docs.flutter.dev/deployment/flavors#conditionally-bundling-assets-based-on-flavor">Conditionally bundling assets based on flavor</a>.</p><h2><strong>Transformation of assets using Dart packages</strong></h2><p>Users can now configure Dart packages to transform their app&#8217;s assets as they are bundled. For more information, check out <a href="http://docs.flutter.dev/ui/assets/asset-transformation">Transforming assets at built time</a>.</p><h1><strong>Android</strong></h1><h2><strong>Deep linking</strong></h2><p>Deep links can significantly improve the user experience in your Flutter app, acting as shortcuts that seamlessly guide users to specific content within your app, boosting engagement, and driving sales. While Universal Links for iOS and App Links for Android are highly recommended for their security and user-friendly nature, setting them up can be a bit tricky.</p><p>In the last Flutter stable release, we introduced a deep link validator tool within DevTools that supports checking web configuration for Android apps. In this version, we added a new set of features to help verify setups within your Android manifest files.</p><p>For more information on using this tool, check out <a href="https://docs.flutter.dev/tools/devtools/deep-links">Validate deep links</a>.</p><h2><strong>Predictive back gesture</strong></h2><p>Flutter now adds more support for Android&#8217;s upcoming predictive back feature, where users can peek at the previous route or even the previous app during a back gesture. This is still behind a feature flag on Android devices, but you can find details on how to try it out yourself <a href="https://github.com/flutter/flutter/issues/132504#issuecomment-2025776552">on GitHub</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gHl6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F161c5a90-37c0-4e82-b518-42a593d81ab3_400x888.bin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gHl6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F161c5a90-37c0-4e82-b518-42a593d81ab3_400x888.bin 424w, https://substackcdn.com/image/fetch/$s_!gHl6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F161c5a90-37c0-4e82-b518-42a593d81ab3_400x888.bin 848w, https://substackcdn.com/image/fetch/$s_!gHl6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F161c5a90-37c0-4e82-b518-42a593d81ab3_400x888.bin 1272w, https://substackcdn.com/image/fetch/$s_!gHl6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F161c5a90-37c0-4e82-b518-42a593d81ab3_400x888.bin 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gHl6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F161c5a90-37c0-4e82-b518-42a593d81ab3_400x888.bin" width="400" height="888" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/161c5a90-37c0-4e82-b518-42a593d81ab3_400x888.bin&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:888,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!gHl6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F161c5a90-37c0-4e82-b518-42a593d81ab3_400x888.bin 424w, https://substackcdn.com/image/fetch/$s_!gHl6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F161c5a90-37c0-4e82-b518-42a593d81ab3_400x888.bin 848w, https://substackcdn.com/image/fetch/$s_!gHl6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F161c5a90-37c0-4e82-b518-42a593d81ab3_400x888.bin 1272w, https://substackcdn.com/image/fetch/$s_!gHl6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F161c5a90-37c0-4e82-b518-42a593d81ab3_400x888.bin 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B-oH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb08822d-9cf1-4979-a7c0-38e37114f22e_400x894.bin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B-oH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb08822d-9cf1-4979-a7c0-38e37114f22e_400x894.bin 424w, https://substackcdn.com/image/fetch/$s_!B-oH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb08822d-9cf1-4979-a7c0-38e37114f22e_400x894.bin 848w, https://substackcdn.com/image/fetch/$s_!B-oH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb08822d-9cf1-4979-a7c0-38e37114f22e_400x894.bin 1272w, https://substackcdn.com/image/fetch/$s_!B-oH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb08822d-9cf1-4979-a7c0-38e37114f22e_400x894.bin 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B-oH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb08822d-9cf1-4979-a7c0-38e37114f22e_400x894.bin" width="400" height="894" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db08822d-9cf1-4979-a7c0-38e37114f22e_400x894.bin&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:894,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!B-oH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb08822d-9cf1-4979-a7c0-38e37114f22e_400x894.bin 424w, https://substackcdn.com/image/fetch/$s_!B-oH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb08822d-9cf1-4979-a7c0-38e37114f22e_400x894.bin 848w, https://substackcdn.com/image/fetch/$s_!B-oH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb08822d-9cf1-4979-a7c0-38e37114f22e_400x894.bin 1272w, https://substackcdn.com/image/fetch/$s_!B-oH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb08822d-9cf1-4979-a7c0-38e37114f22e_400x894.bin 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Flutter tool enforces version requirements on Gradle, AGP, Java, and Kotlin</strong></h2><p>In this release, the Flutter tool enforces a policy regarding the versions that it supports for Gradle, the Android Gradle Plugin (AGP), Java, and Kotlin. Initially, the tool only provides warnings.</p><p>Currently, the supported version ranges are as follows:</p><ul><li><p>Gradle &#8212; Fully supported 7.0.2 to current, warn otherwise</p></li><li><p>AGP &#8212; Fully supported 7.0.0 to current, warn otherwise</p></li><li><p>Java &#8212; Fully supported Java 11 to current, warn otherwise</p></li><li><p>Kotlin &#8212; Fully supported 1.5.0 to current, warn otherwise</p></li></ul><p>In the next major release these warnings will become errors, which can be overridden with the flag <code>--android-skip-build-dependency-validation</code>. More generally speaking, the tool provides a warning for at least one release before fully dropping support (generating an error) for a given version of these dependencies.</p><p>This policy was discussed in an <a href="https://docs.google.com/document/d/1qeeM5QG-jiafttSgvc7yvC19IDRggFFZQTktBVxL6sI/edit?resourcekey=0-HLEAiBOMxAlQxDs-mEeffw">associated design spec</a>. Comments and feedback are always welcome.</p><h2><strong>Support for using Gradle Kotlin DSL in Gradle build scripts on Android</strong></h2><p>Gradle Kotlin DSL is now supported in Flutter, providing an alternative to the traditional Gradle Groovy DSL. This support allows for a better code editing experience, featuring auto-completion, quick access to documentation, source navigation, and context-aware refactoring.</p><p>This initial support was contributed by GitHub user <a href="https://github.com/bartekpacia">bartekpacia</a>. Developers can now choose to rewrite their Gradle build scripts in Kotlin to take advantage of these benefits, although the Flutter tool doesn&#8217;t yet allow for selecting Kotlin over Groovy when using <code>flutter create</code>.</p><p>For more details, check out the <a href="https://github.com/flutter/flutter/pull/140744">PR 140744</a> by <a href="https://github.com/bartekpacia">bartekpacia</a>.</p><h2><strong>Platform views improvements</strong></h2><p><strong>Heads up for all Flutter app developers</strong>! If you&#8217;re using Flutter to build apps that rely on native Android components (like maps, web views, or certain UI elements), we have some important news.</p><p>Due to a bug in Android 14, apps built with older versions of Flutter might not work properly on devices running this new Android version.</p><p>Flutter 3.22 fixes this issue and improves the overall performance of these native components in your Android apps. So, to ensure your app runs smoothly on all Android devices, make sure to rebuild and release your app with Flutter 3.22.</p><p>This update also includes behind-the-scenes improvements to make platform views on Android more reliable and performant overall.</p><h2><strong>End of support for KitKat</strong></h2><p>Flutter&#8217;s minimum supported Android version is now Lollipop (API 21). Beginning with Flutter&#8217;s 3.22 stable release, Flutter will no longer work on devices running Android KitKat (API 19). For more details, see our <a href="https://docs.flutter.dev/release/breaking-changes/android-kitkat-deprecation">deprecation guide</a>.</p><h1><strong>iOS</strong></h1><h2><strong>Platform view performance</strong></h2><p>We understand that platform view performance on iOS has been a pain point for many Flutter developers. This has been especially noticeable within scroll views when using platform views.</p><p>Recent updates directly address these concerns, with significant improvements in scenarios like embedding multiple inline ads within an article. Here are some key improvements <a href="https://github.com/flutter/flutter/pull/144745">in our benchmark</a>:</p><ul><li><p><strong>Reduced GPU usage:</strong> GPU usage has been reduced by 50%, leading to less power consumption and a potentially smoother user experience.</p></li><li><p><strong>Improved frame rendering: </strong>Average frame render times have decreased by 1.66ms (33%).</p></li><li><p><strong>Minimized jank: </strong>Worst-case frame render times have been reduced by 3.8ms (21%).</p></li></ul><p>If you&#8217;ve previously experienced performance challenges when using multiple platform views (like ads, maps, etc) within scrolling views, these optimizations offer the potential for a more fluid and responsive scrolling experience. Please give it a try and let us know what you think.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!20mq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06504736-de3d-45cd-b540-1529d153d8cb_875x361.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!20mq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06504736-de3d-45cd-b540-1529d153d8cb_875x361.png 424w, https://substackcdn.com/image/fetch/$s_!20mq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06504736-de3d-45cd-b540-1529d153d8cb_875x361.png 848w, https://substackcdn.com/image/fetch/$s_!20mq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06504736-de3d-45cd-b540-1529d153d8cb_875x361.png 1272w, https://substackcdn.com/image/fetch/$s_!20mq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06504736-de3d-45cd-b540-1529d153d8cb_875x361.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!20mq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06504736-de3d-45cd-b540-1529d153d8cb_875x361.png" width="875" height="361" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06504736-de3d-45cd-b540-1529d153d8cb_875x361.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:361,&quot;width&quot;:875,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!20mq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06504736-de3d-45cd-b540-1529d153d8cb_875x361.png 424w, https://substackcdn.com/image/fetch/$s_!20mq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06504736-de3d-45cd-b540-1529d153d8cb_875x361.png 848w, https://substackcdn.com/image/fetch/$s_!20mq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06504736-de3d-45cd-b540-1529d153d8cb_875x361.png 1272w, https://substackcdn.com/image/fetch/$s_!20mq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06504736-de3d-45cd-b540-1529d153d8cb_875x361.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I8ED!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa107b732-a651-4820-bcd8-8b72113f8471_875x539.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I8ED!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa107b732-a651-4820-bcd8-8b72113f8471_875x539.png 424w, https://substackcdn.com/image/fetch/$s_!I8ED!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa107b732-a651-4820-bcd8-8b72113f8471_875x539.png 848w, https://substackcdn.com/image/fetch/$s_!I8ED!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa107b732-a651-4820-bcd8-8b72113f8471_875x539.png 1272w, https://substackcdn.com/image/fetch/$s_!I8ED!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa107b732-a651-4820-bcd8-8b72113f8471_875x539.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I8ED!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa107b732-a651-4820-bcd8-8b72113f8471_875x539.png" width="875" height="539" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a107b732-a651-4820-bcd8-8b72113f8471_875x539.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:539,&quot;width&quot;:875,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!I8ED!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa107b732-a651-4820-bcd8-8b72113f8471_875x539.png 424w, https://substackcdn.com/image/fetch/$s_!I8ED!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa107b732-a651-4820-bcd8-8b72113f8471_875x539.png 848w, https://substackcdn.com/image/fetch/$s_!I8ED!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa107b732-a651-4820-bcd8-8b72113f8471_875x539.png 1272w, https://substackcdn.com/image/fetch/$s_!I8ED!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa107b732-a651-4820-bcd8-8b72113f8471_875x539.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Ecosystem</strong></h1><h2><strong>Vertex AI for Firebase Dart SDK preview release</strong></h2><p>The Vertex AI for Firebase product has been released to public preview and includes the Dart SDK. This enables you to use the Gemini API to build generative AI features for your Dart or Flutter app, with production, performance and enterprise scale in mind. The SDK is integrated with <a href="https://firebase.google.com/docs/app-check">Firebase App Check</a>, which protects your API calls, and safeguards your backend infrastructure from serious threats like billing fraud, phishing, and app impersonation. Jump into the <a href="https://firebase.google.com/docs/vertex-ai/get-started?platform=flutter">Getting Started for Dart</a> and start using it with no cost with a promo code</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nON0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff91254a-a86f-467c-8eb1-021ea1d627ac_875x236.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nON0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff91254a-a86f-467c-8eb1-021ea1d627ac_875x236.png 424w, https://substackcdn.com/image/fetch/$s_!nON0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff91254a-a86f-467c-8eb1-021ea1d627ac_875x236.png 848w, https://substackcdn.com/image/fetch/$s_!nON0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff91254a-a86f-467c-8eb1-021ea1d627ac_875x236.png 1272w, https://substackcdn.com/image/fetch/$s_!nON0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff91254a-a86f-467c-8eb1-021ea1d627ac_875x236.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nON0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff91254a-a86f-467c-8eb1-021ea1d627ac_875x236.png" width="875" height="236" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff91254a-a86f-467c-8eb1-021ea1d627ac_875x236.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:236,&quot;width&quot;:875,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!nON0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff91254a-a86f-467c-8eb1-021ea1d627ac_875x236.png 424w, https://substackcdn.com/image/fetch/$s_!nON0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff91254a-a86f-467c-8eb1-021ea1d627ac_875x236.png 848w, https://substackcdn.com/image/fetch/$s_!nON0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff91254a-a86f-467c-8eb1-021ea1d627ac_875x236.png 1272w, https://substackcdn.com/image/fetch/$s_!nON0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff91254a-a86f-467c-8eb1-021ea1d627ac_875x236.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The <a href="https://ai.google.dev/gemini-api/docs/get-started/dart">Google AI Dart SDK</a> remains available, and is recommended for prototyping only. Google AI has free-of-charge access (within limits and where available) and pay-as-you-go pricing. If you have been prototyping with the Google AI Dart SDK, and are ready to migrate to Vertex AI for Firebase, check out the <a href="https://firebase.google.com/docs/vertex-ai/migrate-to-vertex-ai?platform=flutter">migration guide</a>.</p><h2><strong>DevTools updates</strong></h2><p>We continue to improve DevTools, the suite of performance and debugging tools for Dart and Flutter. This release includes performance improvements, general polish, and new features like including CPU samples in the timeline, advanced filtering, and support for importing and exporting memory snapshots.</p><p>Other notable improvements were shipped with the <code>devtools_extensions</code> and <code>devtools_app_shared</code> packages that support DevTools extension authors. We added support for connecting an extension to the new Dart Tooling Daemon (DTD), which allows DevTools extensions to access public methods registered by other DTD clients, such as an IDE, as well as allowing access to a minimal file system API for interacting with the development project.</p><p>To learn more about all the updates included in Flutter 3.22 check out the release notes for DevTools <a href="https://docs.flutter.dev/tools/devtools/release-notes/release-notes-2.32.0">2.32.0</a>, <a href="https://docs.flutter.dev/tools/devtools/release-notes/release-notes-2.33.0">2.33.0</a>, and <a href="https://docs.flutter.dev/tools/devtools/release-notes/release-notes-2.34.1">2.34.1</a>.</p><h2><strong>Google Mobile Ads SDK for Flutter</strong></h2><p>For those of you monetizing your Flutter apps with Ads, we&#8217;ve got some exciting news: Google Mobile Ads for Flutter has just released a major update to version 5.0.1!</p><p><strong>Enhanced support for User Messaging Platform (UMP) SDK: </strong>The update adds support for the latest APIs from the Android UMP SDK version 2.2.0 and iOS UMP SDK version 2.4.0. The UMP SDK is crucial for complying with privacy regulations, making it easier for you to obtain user consent for personalized ads. This new version introduces several new APIs to simplify the consent gathering process.</p><p><strong>Expanded mediation partners:</strong> We&#8217;ve broadened your ad monetization horizons by offering integrations with popular ad partners, including <a href="https://pub.dev/packages/gma_mediation_unity">Unity</a>, <a href="https://pub.dev/packages/gma_mediation_meta">Meta</a>, <a href="https://pub.dev/packages/gma_mediation_applovin">AppLovin</a>, <a href="https://pub.dev/packages/gma_mediation_ironsource">Iron Source</a>, <a href="https://pub.dev/packages/gma_mediation_mintegral">Mintegral</a>, <a href="https://pub.dev/packages/gma_mediation_pangle">Pangle</a>, <a href="https://pub.dev/packages/gma_mediation_dtexchange">DT Exchange</a>, <a href="https://pub.dev/packages/gma_mediation_inmobi">InMobi</a>, and<a href="https://pub.dev/packages/gma_mediation_liftoffmonetize"> Liftoff.</a> You can now maximize your app revenue with expanded mediation options and simplified implementation.</p><p>We encourage you to try out these new features in your Flutter apps and let us know which other mediation partners you&#8217;d like to see us support. Your feedback is invaluable as we continue to enhance the Google Mobile Ads SDK for Flutter.</p><h1><strong>Breaking Changes and Deprecations</strong></h1><h2><strong>Removal of v1 Android embedding</strong></h2><p>Deletion of version one of the Android embedding is under way. This will likely have no effect on most apps, as</p><ol><li><p>Version two has been the default for many years</p></li><li><p>The Flutter tool would already block building version one apps, unless specifically overridden with the flag<code> -- ignore-deprecation</code>.</p></li></ol><p>This release breaks Flutter tool support for v1 apps completely. <strong>It is no longer possible to override.</strong></p><p><strong>Plugin authors, please note</strong>: when the v1 android embedding was initially deprecated a migration doc was written for plugin authors at <a href="https://docs.flutter.dev/release/breaking-changes/plugin-api-migration">https://docs.flutter.dev/release/breaking-changes/plugin-api-migration</a>. As part of this migration, it was recommended that plugin authors keep support for apps using the v1 embedding, by including in their <code>*Plugin.java</code> a method with the signature</p><p><code>public static void registerWith(@NonNull io.flutter.plugin.common.PluginRegistry.Registrar registrar)</code></p><p>We plan to fully delete the v1 Android embedding in the next release, <strong>at which point plugins that include a method with this signature will no longer compile</strong> (as it makes reference to a type from the v1 android embedding).</p><p>It currently serves no purpose, as this release has broken apps using the v1 embedding. We recommend that plugin authors release updated versions of their plugins with the v1 code removed as soon as possible, to avoid breakage in future versions of Flutter. For an example, check out <a href="https://github.com/flutter/packages/pull/6494">PR 6494</a>, which removed the plugins maintained by the Flutter team.</p><h2><strong>Deprecations removed in 3.22</strong></h2><p><a href="https://docs.flutter.dev/release/breaking-changes">Breaking changes</a> in this release include deprecated APIs that expired after the release of v3.19. To see all affected APIs, along with additional context and migration guidance, see the <a href="https://docs.flutter.dev/release/breaking-changes/3-19-deprecations">deprecation guide for this release</a>. Many of these are supported by <a href="https://docs.flutter.dev/development/tools/flutter-fix">Flutter fix</a>, including quick fixes in the IDE. Bulk fixes can be evaluated and applied with the <code>dart fix</code> command-line tool.</p><p>As always, many thanks to the community for <a href="https://github.com/flutter/tests/blob/master/README.md">contributing tests</a> &#8212; these help us identify these breaking changes. To learn more, check out <a href="https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes">Flutter&#8217;s breaking change policy</a>.</p><h1><strong>Conclusion</strong></h1><p>At the heart of Flutter&#8217;s success is you &#8212; our amazing community. This release wouldn&#8217;t be possible without your countless contributions and unwavering passion. From the bottom of our hearts, thank you.</p><p>Ready to explore Flutter 3.22? Dive into the full release notes and changelog, fire up your terminal, and run <code>flutter upgrade</code>. We can&#8217;t wait to see what you build!</p><p>HarmonyOS Next API 16 for HarmonyOS Flutter 3.22.0 is released</p><p>Welcome everyone to join the nut pie and build the HarmonyOS ecosystem: https://gitcode.com/nutpi</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://groups.google.com/g/flutter-announce/c/Bfo_SgCKTKw?pli=1" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!J0am!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8441bb07-1c4f-4157-a38c-6c143f8aa94c_1280x281.png 424w, https://substackcdn.com/image/fetch/$s_!J0am!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8441bb07-1c4f-4157-a38c-6c143f8aa94c_1280x281.png 848w, https://substackcdn.com/image/fetch/$s_!J0am!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8441bb07-1c4f-4157-a38c-6c143f8aa94c_1280x281.png 1272w, https://substackcdn.com/image/fetch/$s_!J0am!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8441bb07-1c4f-4157-a38c-6c143f8aa94c_1280x281.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!J0am!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8441bb07-1c4f-4157-a38c-6c143f8aa94c_1280x281.png" width="1280" height="281" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8441bb07-1c4f-4157-a38c-6c143f8aa94c_1280x281.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:281,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:149643,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://groups.google.com/g/flutter-announce/c/Bfo_SgCKTKw?pli=1&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.harmony-developers.com/i/162255686?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8441bb07-1c4f-4157-a38c-6c143f8aa94c_1280x281.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!J0am!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8441bb07-1c4f-4157-a38c-6c143f8aa94c_1280x281.png 424w, https://substackcdn.com/image/fetch/$s_!J0am!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8441bb07-1c4f-4157-a38c-6c143f8aa94c_1280x281.png 848w, https://substackcdn.com/image/fetch/$s_!J0am!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8441bb07-1c4f-4157-a38c-6c143f8aa94c_1280x281.png 1272w, https://substackcdn.com/image/fetch/$s_!J0am!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8441bb07-1c4f-4157-a38c-6c143f8aa94c_1280x281.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><p>Flutter 3.22.1 to the stable channel; This hotfix release addresses the following issues:</p><p>dart/55714 - Fixes a bug in the CFE which could manifest as compilation errors of Flutter web apps when compiled with dart2wasm.</p><p>dart/55758 - Fixes a bug in the pub client, such that dart run will not interfere with Flutter l10n (at least for most cases).</p><p>What&#8217;s new in Flutter 3.22</p><p>WebAssembly, Graphics rendering enhancements, and more options for AI integration - Flutter app framework development up to May 2024 <a href="https://medium.com/flutter/whats-new-in-flutter-3-22-fbde6c164fe3">https://medium.com/flutter/whats-new-in-flutter-3-22-fbde6c164fe3 </a></p><p>3.29.2[2] Edit this on Wikidata / 13 March 2025; 40 days ago current version <a href="https://en.wikipedia.org/wiki/Flutter_(software)">https://en.wikipedia.org/wiki/Flutter_(software)</a></p>]]></content:encoded></item><item><title><![CDATA[How are 3rd party keyboards made: Implementing a Custom Keyboard on HarmonyOS and OpenHarmony ]]></title><description><![CDATA[This sample introduces how to implement a custom keyboard. The custom keyboard can be bound to the system keyboard so that they can switch to each other.]]></description><link>https://www.harmony-developers.com/p/how-are-3rd-party-keyboards-made</link><guid isPermaLink="false">https://www.harmony-developers.com/p/how-are-3rd-party-keyboards-made</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Sat, 26 Apr 2025 07:02:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3rmO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc0c8b-4154-4e73-8800-37657a73f91e_693x471.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3rmO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc0c8b-4154-4e73-8800-37657a73f91e_693x471.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3rmO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc0c8b-4154-4e73-8800-37657a73f91e_693x471.png 424w, https://substackcdn.com/image/fetch/$s_!3rmO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc0c8b-4154-4e73-8800-37657a73f91e_693x471.png 848w, https://substackcdn.com/image/fetch/$s_!3rmO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc0c8b-4154-4e73-8800-37657a73f91e_693x471.png 1272w, https://substackcdn.com/image/fetch/$s_!3rmO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc0c8b-4154-4e73-8800-37657a73f91e_693x471.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3rmO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc0c8b-4154-4e73-8800-37657a73f91e_693x471.png" width="693" height="471" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3bc0c8b-4154-4e73-8800-37657a73f91e_693x471.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:471,&quot;width&quot;:693,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132074,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.harmony-developers.com/i/162181205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc0c8b-4154-4e73-8800-37657a73f91e_693x471.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3rmO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc0c8b-4154-4e73-8800-37657a73f91e_693x471.png 424w, https://substackcdn.com/image/fetch/$s_!3rmO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc0c8b-4154-4e73-8800-37657a73f91e_693x471.png 848w, https://substackcdn.com/image/fetch/$s_!3rmO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc0c8b-4154-4e73-8800-37657a73f91e_693x471.png 1272w, https://substackcdn.com/image/fetch/$s_!3rmO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc0c8b-4154-4e73-8800-37657a73f91e_693x471.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h1><strong>Implementing a Custom Keyboard</strong></h1><h3><strong>Overview</strong></h3><p>This sample introduces how to implement a custom keyboard. The custom keyboard can be bound to the system keyboard so that they can switch to each other. The <strong>onAreaChange</strong> function can be used to obtain the custom keyboard height and set layout avoidance. This sample also describes technical scenarios such as keyboard switching, custom keyboard cursor, and custom keyboard layout avoidance.</p><h3><strong>Preview</strong></h3><p><strong>Layout avoidance</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Iuf5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dca993f-a42c-4b44-9dff-0475ca576650_348x720.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Iuf5!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dca993f-a42c-4b44-9dff-0475ca576650_348x720.gif 424w, https://substackcdn.com/image/fetch/$s_!Iuf5!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dca993f-a42c-4b44-9dff-0475ca576650_348x720.gif 848w, https://substackcdn.com/image/fetch/$s_!Iuf5!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dca993f-a42c-4b44-9dff-0475ca576650_348x720.gif 1272w, https://substackcdn.com/image/fetch/$s_!Iuf5!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dca993f-a42c-4b44-9dff-0475ca576650_348x720.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Iuf5!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dca993f-a42c-4b44-9dff-0475ca576650_348x720.gif" width="348" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8dca993f-a42c-4b44-9dff-0475ca576650_348x720.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:348,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image" title="image" srcset="https://substackcdn.com/image/fetch/$s_!Iuf5!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dca993f-a42c-4b44-9dff-0475ca576650_348x720.gif 424w, https://substackcdn.com/image/fetch/$s_!Iuf5!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dca993f-a42c-4b44-9dff-0475ca576650_348x720.gif 848w, https://substackcdn.com/image/fetch/$s_!Iuf5!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dca993f-a42c-4b44-9dff-0475ca576650_348x720.gif 1272w, https://substackcdn.com/image/fetch/$s_!Iuf5!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dca993f-a42c-4b44-9dff-0475ca576650_348x720.gif 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Keyboard Switching</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!St3w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315d67f5-7cbb-4b96-8820-a869b7213a41_348x720.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!St3w!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315d67f5-7cbb-4b96-8820-a869b7213a41_348x720.gif 424w, https://substackcdn.com/image/fetch/$s_!St3w!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315d67f5-7cbb-4b96-8820-a869b7213a41_348x720.gif 848w, https://substackcdn.com/image/fetch/$s_!St3w!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315d67f5-7cbb-4b96-8820-a869b7213a41_348x720.gif 1272w, https://substackcdn.com/image/fetch/$s_!St3w!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315d67f5-7cbb-4b96-8820-a869b7213a41_348x720.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!St3w!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315d67f5-7cbb-4b96-8820-a869b7213a41_348x720.gif" width="348" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/315d67f5-7cbb-4b96-8820-a869b7213a41_348x720.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:348,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image" title="image" srcset="https://substackcdn.com/image/fetch/$s_!St3w!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315d67f5-7cbb-4b96-8820-a869b7213a41_348x720.gif 424w, https://substackcdn.com/image/fetch/$s_!St3w!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315d67f5-7cbb-4b96-8820-a869b7213a41_348x720.gif 848w, https://substackcdn.com/image/fetch/$s_!St3w!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315d67f5-7cbb-4b96-8820-a869b7213a41_348x720.gif 1272w, https://substackcdn.com/image/fetch/$s_!St3w!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315d67f5-7cbb-4b96-8820-a869b7213a41_348x720.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>How to Use</p><ol><li><p>On the home page, tap the text box for binding a custom keyboard. The custom keyboard is displayed, with layout avoidance upwards.</p></li><li><p>Tap the 123, ABC, and Chinese tabs on the keyboard to switch between the numeric keypad, English keyboard, and system keyboard. In this way, a text box can be bound to both the custom keyboard and system keyboard.</p></li><li><p>Common keyboard operations are supported, including text input, cursor setting, uppercase/lowercase change, copy, paste, and deletion.</p></li></ol><div><hr></div><pre><code><code>&#9500;&#9472;&#9472;entry/src/main/ets&#9;                 // Code area
&#9474;  &#9500;&#9472;&#9472;constants
&#9474;  &#9474;  &#9492;&#9472;&#9472;Constants.ets                   // Common constants
&#9474;  &#9500;&#9472;&#9472;entryability
&#9474;  &#9474;  &#9492;&#9472;&#9472;EntryAbility.ets                // Entry ability
&#9474;  &#9500;&#9472;&#9472;model
&#9474;  &#9474;  &#9492;&#9472;&#9472;KeyboardController.ets          // Custom keyboard controller
&#9474;  &#9500;&#9472;&#9472;pages
&#9474;  &#9474;  &#9492;&#9472;&#9472;MainPage.ets                    // Main page
&#9474;  &#9500;&#9472;&#9472;view
&#9474;  &#9474;  &#9500;&#9472;&#9472;CustomKeyboard.ets              // Custom keyboard
&#9474;  &#9474;  &#9500;&#9472;&#9472;EnglishKeyboard.ets             // English keyboard
&#9474;  &#9474;  &#9500;&#9472;&#9472;NumberKeyboard.ets              // Numeric keyboard
&#9474;  &#9474;  &#9500;&#9472;&#9472;TabButton.ets                   // Tab button on the top of the keyboard
&#9474;  &#9474;  &#9500;&#9472;&#9472;TabView.ets                     // Tab component on the top of the keyboard
&#9474;  &#9474;  &#9492;&#9472;&#9472;TextInputComponent.ets          // TextInput component bound to the custom keyboard
&#9474;  &#9492;&#9472;&#9472;viewmodel
&#9474;     &#9492;&#9472;&#9472;MenuModel.ets                   // Keyboard button data
&#9492;&#9472;&#9472;entry/src/main/resources              // App resource directory
</code></code></pre><div><hr></div><h3><strong>How to Implement</strong></h3><ol><li><p>To implement a custom keyboard, the <strong>customKeyboard</strong> attribute of the <strong>TextInput</strong> component is bound to <strong>builder</strong>.</p></li><li><p>To switch between the custom keyboard and the system keyboard, the <strong>customKeyboard</strong> attribute of the <strong>TextInput</strong> component is set to <strong>null</strong> and is bound to the system keyboard.</p></li><li><p>To set the cursor position, the system listens for the <strong>onTextSelectionChange</strong> and <strong>onChange</strong> events of the <strong>TextInput</strong> component.</p></li><li><p>To implement the copy and paste functions, the system listens for the <strong>onPaste</strong> and <strong>onCut</strong> events of the <strong>TextInput</strong> component.</p></li><li><p>To implement layout avoidance, the <strong>keyboardHeightChange</strong> event of the window module is used to obtain the system keyboard height, and the <strong>onAreaChange</strong> event is used to obtain the custom keyboard height.</p></li></ol><p></p><h3><strong>Permissions</strong></h3><p>N/A</p><h3><strong>Dependencies</strong></h3><p>N/A</p><h3><strong>Constraints</strong></h3><ol><li><p>The sample is only supported on Huawei phones with standard systems.</p></li><li><p>The HarmonyOS version must be HarmonyOS 5.0.0 Release or later.</p></li><li><p>The DevEco Studio version must be DevEco Studio 5.0.0 Release or later.</p></li><li><p>The HarmonyOS SDK version must be HarmonyOS 5.0.0 Release SDK or later.</p></li></ol><p>Original source: <a href="https://gitee.com/harmonyos_samples/CustomizeKeyboard">HarmonyOS_Samples/CustomizeKeyboard via Gitee</a></p>]]></content:encoded></item><item><title><![CDATA[Flutter App Development: Hongmeng HarmonyOS NEXT Beta Porting]]></title><description><![CDATA[Flutter app porting to HarmonyOS 5]]></description><link>https://www.harmony-developers.com/p/flutter-app-development-hongmeng</link><guid isPermaLink="false">https://www.harmony-developers.com/p/flutter-app-development-hongmeng</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Sat, 26 Apr 2025 00:42:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!n7sM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fae8f03-6117-41c0-bfa4-4bbe209d5500_1280x717.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!n7sM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fae8f03-6117-41c0-bfa4-4bbe209d5500_1280x717.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!n7sM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fae8f03-6117-41c0-bfa4-4bbe209d5500_1280x717.webp 424w, https://substackcdn.com/image/fetch/$s_!n7sM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fae8f03-6117-41c0-bfa4-4bbe209d5500_1280x717.webp 848w, https://substackcdn.com/image/fetch/$s_!n7sM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fae8f03-6117-41c0-bfa4-4bbe209d5500_1280x717.webp 1272w, https://substackcdn.com/image/fetch/$s_!n7sM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fae8f03-6117-41c0-bfa4-4bbe209d5500_1280x717.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!n7sM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fae8f03-6117-41c0-bfa4-4bbe209d5500_1280x717.webp" width="1280" height="717" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fae8f03-6117-41c0-bfa4-4bbe209d5500_1280x717.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:717,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;HarmonyOS.webp&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="HarmonyOS.webp" title="HarmonyOS.webp" srcset="https://substackcdn.com/image/fetch/$s_!n7sM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fae8f03-6117-41c0-bfa4-4bbe209d5500_1280x717.webp 424w, https://substackcdn.com/image/fetch/$s_!n7sM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fae8f03-6117-41c0-bfa4-4bbe209d5500_1280x717.webp 848w, https://substackcdn.com/image/fetch/$s_!n7sM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fae8f03-6117-41c0-bfa4-4bbe209d5500_1280x717.webp 1272w, https://substackcdn.com/image/fetch/$s_!n7sM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fae8f03-6117-41c0-bfa4-4bbe209d5500_1280x717.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Technical architecture</h2><p>This article is applicable to the migration and adaptation of Flutter applications to the HarmonyOS system, and the technical solution is based on:</p><ul><li><p>Flutter OHOS branch (of company, river etc) (3.13.9+)</p></li><li><p>HarmonyOS SDK 5.0.0(12)</p></li><li><p>OpenHarmony API 10</p></li><li><p>HVigor build system</p></li></ul><h2>Environment preparation</h2><h3>1. Basic environment configuration</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FuVz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb7f7d72-17e4-44a1-a13e-18027ff8329c_1075x601.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FuVz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb7f7d72-17e4-44a1-a13e-18027ff8329c_1075x601.webp 424w, https://substackcdn.com/image/fetch/$s_!FuVz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb7f7d72-17e4-44a1-a13e-18027ff8329c_1075x601.webp 848w, https://substackcdn.com/image/fetch/$s_!FuVz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb7f7d72-17e4-44a1-a13e-18027ff8329c_1075x601.webp 1272w, https://substackcdn.com/image/fetch/$s_!FuVz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb7f7d72-17e4-44a1-a13e-18027ff8329c_1075x601.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FuVz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb7f7d72-17e4-44a1-a13e-18027ff8329c_1075x601.webp" width="1075" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb7f7d72-17e4-44a1-a13e-18027ff8329c_1075x601.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:1075,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;DevEco.png&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="DevEco.png" title="DevEco.png" srcset="https://substackcdn.com/image/fetch/$s_!FuVz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb7f7d72-17e4-44a1-a13e-18027ff8329c_1075x601.webp 424w, https://substackcdn.com/image/fetch/$s_!FuVz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb7f7d72-17e4-44a1-a13e-18027ff8329c_1075x601.webp 848w, https://substackcdn.com/image/fetch/$s_!FuVz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb7f7d72-17e4-44a1-a13e-18027ff8329c_1075x601.webp 1272w, https://substackcdn.com/image/fetch/$s_!FuVz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb7f7d72-17e4-44a1-a13e-18027ff8329c_1075x601.webp 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>subassemblyrequestVerify the commandDevEco Studio&#8805;4.0 Beta2<code>hdc -v</code>HarmonyOS SDK&#8805;5.0.0(12)<code>hvigor -v</code>Node.js&#8805;18.15.0<code>node -v</code></p><h3>2. Signature configuration template</h3><pre><code>json5</code></pre><p><code>// build-profile.json5 { "signAlg": "SHA256withECDSA", "storeFile": "${user directory}/.ohos/config/default_ohos_xxx.p12", "keyAlias": "debugKey", "profile": "${user directory}/.ohos/config/default_ohos_xxx.p7b", "compatibleSdkVersion": "5.0.0(12)" }</code></p><h3>3. Flutter OHOS environment configuration</h3><h4>3.1 Install the Flutter OHOS branch</h4><pre><code>bash</code></pre><p></p><p><code># Customised branches of cloning git clone -b ohos https://gitee.com/openharmony-sig/flutter.git export FLUTTER_HOME="D:/flutter_ohos" export PATH="$PATH:$FLUTTER_HOME/bin" # Verify Installation flutter --version # The expected output contains&#65306;Channel ohos &#8226; Framework Revision xxxx</code></p><h2>Key adaptation steps</h2><h3>1. Project Initialization Configuration</h3><h4>Step 1: Create a HarmonyOS module</h4><pre><code>bash</code></pre><p><code># In the Flutter project root directory, run flutter create --template=module --platforms=ohos .</code></p><h4>Step 2: Configure the hybrid project</h4><pre><code>json5</code></pre><p><code>// ohos/oh-package.json5 { "name": "flutter_harmony", "version": "1.0.0", "dependencies": { "@ohos/flutter_module": "file:./entry" } }</code></p><h3>2. Renovation of entrance documents</h3><h4>HarmonyOS ingress ability configuration</h4><pre><code>typescript</code></pre><p><code>// ohos/entry/src/main/ets/entryability/EntryAbility.ts import flutter from '@ohos/flutter_module'; export default class EntryAbility extends Ability { onCreate(want: Want) { flutter.init(this.context); flutter.run({ entry: 'lib/main.dart' }); } }</code></p><h3>3. Key points of the Flutter project transformation</h3><h4>3.1 Platform Conditional Compilation</h4><pre><code>dart</code></pre><p><code>// Platform judgement logic const bool kIsOHOS = bool.fromEnvironment('dart.library.ohos'); void initPlatform() { if (kIsOHOS) { // Initialisation of the Hongmeng platform initOHOSComponents(); } else { // Other platform initialisation initMobileComponents(); } }</code></p><h4>3.2 Platform channel adaptation</h4><pre><code>dart</code></pre><p><code>// Native Communication Adaptation const _channel = MethodChannel('com.example/native'); Future&lt;void&gt; callNativeFeature() async { if (kIsOHOS) { return _channel.invokeMethod('ohos_feature'); } return _channel.invokeMethod('android_feature'); }</code></p><h4>3.3 Resource File Adjustments</h4><pre><code>yaml</code></pre><p><code># pubspec.yaml Adjustment example flutter: assets: - assets/images/common/ - assets/images/ohos/ # Resources earmarked for Hong Kong - assets/fonts/ohos/ # Hongmeng Font Optimisation</code></p><h3>4. Hybrid engineering build configuration</h3><h3>4. Project configuration implications</h3><h4>4.1 Multi-platform configuration management</h4><pre><code>bash</code></pre><p><code># Project restructuring lib/ &#9500;&#9472;&#9472; common/ # Cross-platform common code &#9500;&#9472;&#9472; ohos/ # Hongmeng-specific realisation &#9474; &#9500;&#9472;&#9472; services/ &#9474; &#9492;&#9472;&#9472; widgets/ &#9492;&#9472;&#9472; android/ # Native Android Implementation</code></p><h4>4.2 HarmonyOS module build.gradle configuration</h4><pre><code>groovy</code></pre><p><code>// ohos/entry/build.gradle ohos { compileSdkVersion 5 buildTypes { release { proguardOpt { enable true rulesFiles 'proguard-rules.pro' } } } }</code></p><h4>4.3 Plug-in Compatibility</h4><pre><code>yaml</code></pre><p><code># pubspec.yaml conditionally dependent dependencies: shared_preferences: ^2.2.1 shared_preferences_ohos: ^1.0.0 url_launcher: ^6.1.9 url_launcher_ohos: ^2.0.0 dependency_overrides: shared_preferences: ohos: shared_preferences_ohos url_launcher: ohos: url_launcher_ohos</code></p><h4>4.4 Build Configuration Changes</h4><pre><code>groovy</code></pre><p><code>// android/build.gradle Need to comment out Android specific configurations // android { // compileSdkVersion 33 // ndkVersion "25.1.8937393" // }</code></p><h2>Fourth, build the deployment process</h2><h3>1. Standard build commands</h3><pre><code>bash</code></pre><p><code># debug mode hvigor assembleDebug --mode module # production environment hvigor assembleRelease --mode module</code></p><h3>2. Device deployment requirements</h3><p>projectrequestSystem versionOpenHarmony &#8805;4.0Device typeDevices powered by the ArkUI engineSignature verificationA debugging certificate needs to be preset</p><h2>5. Best Practices</h2><h3>1. Recommendations for environment configuration</h3><pre><code>bash</code></pre><p><code># Configuring Huawei Mirror Sources npm config set registry https://repo.huaweicloud.com/repository/npm/</code></p><h3>2. Example of permission adaptation</h3><pre><code>dart</code></pre><p><code>Future&lt;void&gt; checkHarmonyPermission() async { final status = await PermissionHandlerOhos.requestPermission( Permission.ohosPermission(permissionId: 'ohos.permission.INTERNET') ); if (!status.isGranted) { throw Exception('Requires authorisation of network access'); } }</code></p><h2>6. Test and verification</h2><h3>1. Test the framework configuration</h3><pre><code>json5</code></pre><p><code>// oh-package.json5 "devDependencies": { "@ohos/hypium": "^1.0.6" }</code></p><h3>2. Key verification items</h3><ul><li><p>Cross-platform component rendering consistency</p></li><li><p>System-level function calls (camera, positioning, etc.)</p></li><li><p>Hybrid Stack Management(Flutter+HarmonyOS)</p></li></ul><h2>7. Description of common dependencies</h2><p>Dependency typeRecommended componentsFeature descriptionBasic framework@ohos/flutter_ohosFlutter runtime environmentSystem interactionurl_launcher_ohosHarmonyOS IntentHardware accesspermission_handler_ohosPermission management adaptationBlended renderingwebview_flutter_ohosSystem WebView integration</p><h2>postscript</h2><p>Initial learning of Flutter and HarmonyOS NEXT hybrid development, in the hybrid development architecture, the design quality of the Platform Abstraction Layer directly affects the subsequent maintenance cost. It is recommended to establish a unified platform difference handling specification at the beginning of the project.</p><p><br>Original Link&#65306;<a href="https://juejin.cn/post/7481217307647836187">https://juejin.cn/post/7481217307647836187<br></a></p>]]></content:encoded></item><item><title><![CDATA[OpenHarmony open source predecessor and lightweight ancestor is LiteOS. What is it? an IoT operating system and middleware]]></title><description><![CDATA[LiteOS &#8211; an IoT operating system and middleware]]></description><link>https://www.harmony-developers.com/p/openharmony-open-source-predecessor</link><guid isPermaLink="false">https://www.harmony-developers.com/p/openharmony-open-source-predecessor</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Thu, 17 Apr 2025 09:49:52 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8737de39-1812-4fcc-a452-f85ba13f47f7_800x443.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>LiteOS &#8211; an IoT operating system and middleware</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wlA8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79885955-7cc0-400c-b19a-6535d2870175_100x100.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wlA8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79885955-7cc0-400c-b19a-6535d2870175_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!wlA8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79885955-7cc0-400c-b19a-6535d2870175_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!wlA8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79885955-7cc0-400c-b19a-6535d2870175_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!wlA8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79885955-7cc0-400c-b19a-6535d2870175_100x100.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wlA8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79885955-7cc0-400c-b19a-6535d2870175_100x100.png" width="100" height="100" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79885955-7cc0-400c-b19a-6535d2870175_100x100.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:100,&quot;width&quot;:100,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C - &#28909;&#38376;&#39033;&#30446; - Gitee.com&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C - &#28909;&#38376;&#39033;&#30446; - Gitee.com" title="C - &#28909;&#38376;&#39033;&#30446; - Gitee.com" srcset="https://substackcdn.com/image/fetch/$s_!wlA8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79885955-7cc0-400c-b19a-6535d2870175_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!wlA8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79885955-7cc0-400c-b19a-6535d2870175_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!wlA8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79885955-7cc0-400c-b19a-6535d2870175_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!wlA8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79885955-7cc0-400c-b19a-6535d2870175_100x100.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><h2><strong>Introduction to LiteOS</strong></h2><p>The ancestor of HarmonyOS and OpenHarmony shared lineage of distributed operating systems. LiteOS was an <a href="https://gitee.com/LiteOS/LiteOS">open-source</a>, lightweight operating system designed specifically for Internet of Things (IoT) devices and embedded systems. It was developed and maintained by <strong>Huawei </strong>for 5 years on the Chinese Gitee repo site from 2015 to its disbandment in December 2020, with <a href="https://www.huawei.com/en/huaweitech/publication/84/lite-os-smart-iot#:~:text=Huawei%20has%20shipped%20more%20than%2050%20million%20units,doorbells%2C%20security%20cameras%2C%20and%20other%20smart%20home%20devices.">50 million units of Huawei IoT products from smart devices to smart wearables</a>, 3 months after the first OpenHarmony 1.0 version under OpenAtom that carried the LiteOS kernel built for microcontrollers on the LiteOS M kernel module variant and ARM-based development boards called LiteOS A kernel module variant derived from the original operating system. LiteOS is optimized for low-power consumption, high-performance networking, and flexible connectivity in smart devices. It offers a rich middleware framework that facilitates rapid application development, making it suitable for a wide range of IoT applications.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iQRH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc71e1eb5-6f4c-496d-93a5-58c06fe7377a_474x267.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iQRH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc71e1eb5-6f4c-496d-93a5-58c06fe7377a_474x267.jpeg 424w, https://substackcdn.com/image/fetch/$s_!iQRH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc71e1eb5-6f4c-496d-93a5-58c06fe7377a_474x267.jpeg 848w, https://substackcdn.com/image/fetch/$s_!iQRH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc71e1eb5-6f4c-496d-93a5-58c06fe7377a_474x267.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!iQRH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc71e1eb5-6f4c-496d-93a5-58c06fe7377a_474x267.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iQRH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc71e1eb5-6f4c-496d-93a5-58c06fe7377a_474x267.jpeg" width="474" height="267" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c71e1eb5-6f4c-496d-93a5-58c06fe7377a_474x267.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:267,&quot;width&quot;:474,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Huawei announces LiteOS, a 10KB IoT operating system | TechNave&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Huawei announces LiteOS, a 10KB IoT operating system | TechNave" title="Huawei announces LiteOS, a 10KB IoT operating system | TechNave" srcset="https://substackcdn.com/image/fetch/$s_!iQRH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc71e1eb5-6f4c-496d-93a5-58c06fe7377a_474x267.jpeg 424w, https://substackcdn.com/image/fetch/$s_!iQRH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc71e1eb5-6f4c-496d-93a5-58c06fe7377a_474x267.jpeg 848w, https://substackcdn.com/image/fetch/$s_!iQRH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc71e1eb5-6f4c-496d-93a5-58c06fe7377a_474x267.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!iQRH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc71e1eb5-6f4c-496d-93a5-58c06fe7377a_474x267.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Key Features of LiteOS</strong></h2><p>LiteOS offers a variety of features tailored for IoT environments:</p><ol><li><p><strong>Lightweight Design:</strong> With a minimal footprint, LiteOS is ideal for devices with limited memory and processing power.</p></li><li><p><strong>Real-Time Capabilities:</strong> Ensures low latency and fast response times, crucial for time-sensitive applications.</p></li><li><p><strong>Scalability:</strong> LiteOS can run on small embedded devices as well as larger systems with complex requirements.</p></li><li><p><strong>Flexible Connectivity:</strong> Supports multiple communication protocols, including Wi-Fi, Bluetooth, ZigBee, and LoRa.</p></li><li><p><strong>Security Features:</strong> Offers data encryption, secure boot mechanisms, and access control to ensure device security.</p></li><li><p><strong>Middleware Integration:</strong> LiteOS simplifies integration with cloud platforms and third-party services.</p></li><li><p><strong>Cross-Platform Compatibility:</strong> Supports ARM Cortex-M, RISC-V, and other architectures commonly used in IoT devices.</p></li></ol><h2><strong>Architecture of LiteOS</strong></h2><p>LiteOS follows a layered architecture that improves modularity and efficiency. The core layers include:</p><ul><li><p><strong>Kernel Layer:</strong> Provides real-time scheduling, memory management, and hardware abstraction.</p></li><li><p><strong>Middleware Layer:</strong> Offers libraries and APIs for communication protocols, device management, and data synchronization.</p></li><li><p><strong>Application Layer:</strong> Includes customizable applications for specific IoT use cases, supporting both user-defined code and pre-built templates.</p></li><li><p><strong>Driver Layer:</strong> Facilitates hardware integration by providing standardized driver interfaces.</p></li></ul><h2><strong>Development Environment</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XyN-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdffb7da-b58b-4994-aadf-bc265b746f9f_474x358.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XyN-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdffb7da-b58b-4994-aadf-bc265b746f9f_474x358.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XyN-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdffb7da-b58b-4994-aadf-bc265b746f9f_474x358.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XyN-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdffb7da-b58b-4994-aadf-bc265b746f9f_474x358.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XyN-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdffb7da-b58b-4994-aadf-bc265b746f9f_474x358.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XyN-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdffb7da-b58b-4994-aadf-bc265b746f9f_474x358.jpeg" width="474" height="358" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fdffb7da-b58b-4994-aadf-bc265b746f9f_474x358.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:358,&quot;width&quot;:474,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;LiteOS_Studio&#23433;&#35013;&#20013;&#25991;&#21253;_liteos studio&#24590;&#20040;&#20013;&#25991;-CSDN&#21338;&#23458;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="LiteOS_Studio&#23433;&#35013;&#20013;&#25991;&#21253;_liteos studio&#24590;&#20040;&#20013;&#25991;-CSDN&#21338;&#23458;" title="LiteOS_Studio&#23433;&#35013;&#20013;&#25991;&#21253;_liteos studio&#24590;&#20040;&#20013;&#25991;-CSDN&#21338;&#23458;" srcset="https://substackcdn.com/image/fetch/$s_!XyN-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdffb7da-b58b-4994-aadf-bc265b746f9f_474x358.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XyN-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdffb7da-b58b-4994-aadf-bc265b746f9f_474x358.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XyN-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdffb7da-b58b-4994-aadf-bc265b746f9f_474x358.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XyN-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdffb7da-b58b-4994-aadf-bc265b746f9f_474x358.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>LiteOS is designed for easy development and integration with multiple hardware platforms. The development environment includes:</p><ul><li><p><strong>IDE Support:</strong> Compatible with common IDEs like Keil, IAR, and GCC for streamlined coding and debugging.</p></li><li><p><strong>API Libraries:</strong> Provides extensive libraries for networking, security, and peripheral control.</p></li><li><p><strong>Device Drivers:</strong> Pre-built drivers simplify development by handling sensor, actuator, and communication module interfacing.</p></li><li><p><strong>Cloud Integration:</strong> Seamlessly integrates with <strong>Huawei Cloud</strong>, <strong>AWS</strong>, and other IoT cloud platforms for data storage and remote management.</p></li></ul><h2><strong>Applications of LiteOS</strong></h2><p>LiteOS is widely adopted across various industries that require reliable, energy-efficient IoT solutions. Common applications include:</p><ul><li><p><strong>Smart Home Devices:</strong> For controlling lighting, security cameras, and appliances.</p></li><li><p><strong>Wearable Devices:</strong> Provides lightweight functionality for fitness trackers and health-monitoring gadgets.</p></li><li><p><strong>Industrial IoT (IIoT):</strong> Enables predictive maintenance, asset tracking, and automation systems.</p></li><li><p><strong>Smart Cities:</strong> Supports traffic monitoring, environmental sensors, and public safety systems.</p></li><li><p><strong>Automotive Systems:</strong> Manages in-vehicle data communication and sensor networks.</p></li></ul><h2><strong>Advantages of LiteOS</strong></h2><ul><li><p><strong>Minimal Resource Consumption:</strong> Designed to operate efficiently on devices with limited RAM and processing power.</p></li><li><p><strong>Fast Boot Time:</strong> Optimized for rapid system startup, crucial for time-sensitive applications.</p></li><li><p><strong>Flexible Deployment:</strong> Its modular structure enables developers to customize features as per device requirements.</p></li><li><p><strong>Strong Security Framework:</strong> Provides encryption, secure communication protocols, and authentication mechanisms.</p></li><li><p><strong>Extensive Ecosystem:</strong> Supports a wide range of hardware platforms, enabling flexibility for developers.</p></li></ul><h2><strong>Challenges of LiteOS</strong></h2><p>Despite its strengths, LiteOS faces a few challenges:</p><ul><li><p><strong>Limited Community Support:</strong> Compared to established platforms like FreeRTOS or Zephyr, LiteOS has a smaller developer community.</p></li><li><p><strong>Learning Curve:</strong> Developers unfamiliar with Huawei&#8217;s ecosystem may require additional time to master LiteOS features.</p></li><li><p><strong>Vendor Dependency:</strong> Some advanced features are optimized for Huawei hardware and cloud services, limiting cross-platform flexibility in certain cases.</p></li></ul><h3><strong>Conclusion</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/openharmony/manifest/blob/OpenHarmony_1.0.1_release/default.xml" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SsGq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d4b23a2-7c80-40a4-a1e6-154f28d4361a_680x468.png 424w, https://substackcdn.com/image/fetch/$s_!SsGq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d4b23a2-7c80-40a4-a1e6-154f28d4361a_680x468.png 848w, https://substackcdn.com/image/fetch/$s_!SsGq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d4b23a2-7c80-40a4-a1e6-154f28d4361a_680x468.png 1272w, https://substackcdn.com/image/fetch/$s_!SsGq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d4b23a2-7c80-40a4-a1e6-154f28d4361a_680x468.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SsGq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d4b23a2-7c80-40a4-a1e6-154f28d4361a_680x468.png" width="680" height="468" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d4b23a2-7c80-40a4-a1e6-154f28d4361a_680x468.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:468,&quot;width&quot;:680,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://github.com/openharmony/manifest/blob/OpenHarmony_1.0.1_release/default.xml&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!SsGq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d4b23a2-7c80-40a4-a1e6-154f28d4361a_680x468.png 424w, https://substackcdn.com/image/fetch/$s_!SsGq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d4b23a2-7c80-40a4-a1e6-154f28d4361a_680x468.png 848w, https://substackcdn.com/image/fetch/$s_!SsGq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d4b23a2-7c80-40a4-a1e6-154f28d4361a_680x468.png 1272w, https://substackcdn.com/image/fetch/$s_!SsGq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d4b23a2-7c80-40a4-a1e6-154f28d4361a_680x468.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mzdZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa832a7b9-377f-4ecf-9297-507a3959ef63_1369x307.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mzdZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa832a7b9-377f-4ecf-9297-507a3959ef63_1369x307.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mzdZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa832a7b9-377f-4ecf-9297-507a3959ef63_1369x307.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mzdZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa832a7b9-377f-4ecf-9297-507a3959ef63_1369x307.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mzdZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa832a7b9-377f-4ecf-9297-507a3959ef63_1369x307.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mzdZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa832a7b9-377f-4ecf-9297-507a3959ef63_1369x307.jpeg" width="1369" height="307" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a832a7b9-377f-4ecf-9297-507a3959ef63_1369x307.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:307,&quot;width&quot;:1369,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!mzdZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa832a7b9-377f-4ecf-9297-507a3959ef63_1369x307.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mzdZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa832a7b9-377f-4ecf-9297-507a3959ef63_1369x307.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mzdZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa832a7b9-377f-4ecf-9297-507a3959ef63_1369x307.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mzdZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa832a7b9-377f-4ecf-9297-507a3959ef63_1369x307.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>LiteOS was a powerful and lightweight operating system designed to meet the demands of modern IoT devices. With its real-time performance, flexible connectivity options, and secure framework, LiteOS is an excellent choice for developers creating energy-efficient and scalable IoT solutions. By leveraging LiteOS&#8217;s middleware capabilities and cloud integration features, businesses can accelerate their IoT deployments while ensuring robust performance and security.</p><p>Huawei's in-house independent open-source LiteOS was RTOS rich and POSIX compatible, targeted solely for the Internet of Things with its <a href="https://www.datacenterdynamics.com/en/news/huawei-launches-10kb-operating-system-for-iot/">10KB footprint</a> that can power on AA batteries, competing with POSIX-based NuttX but didn&#8217;t have any Unix-like roots. It was once mistaken as a fork of a <a href="https://lanterns.eecs.utk.edu/software/liteos/">different Unix-like RTOS operating system of the same name from the University of Tennessee</a>.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Differences and commonalities between HarmonyOS and OpenHarmony]]></title><description><![CDATA[The &#8220;two sides of the same coin&#8221; of Hongmeng]]></description><link>https://www.harmony-developers.com/p/differences-and-commonalities-between</link><guid isPermaLink="false">https://www.harmony-developers.com/p/differences-and-commonalities-between</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Thu, 17 Apr 2025 09:01:30 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ec2ea9cd-0e27-42cb-bc2c-5525bd56e350_474x266.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oNaJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec278a23-59c7-4242-858f-3ab742f1925c_1017x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oNaJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec278a23-59c7-4242-858f-3ab742f1925c_1017x580.png 424w, https://substackcdn.com/image/fetch/$s_!oNaJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec278a23-59c7-4242-858f-3ab742f1925c_1017x580.png 848w, https://substackcdn.com/image/fetch/$s_!oNaJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec278a23-59c7-4242-858f-3ab742f1925c_1017x580.png 1272w, https://substackcdn.com/image/fetch/$s_!oNaJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec278a23-59c7-4242-858f-3ab742f1925c_1017x580.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oNaJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec278a23-59c7-4242-858f-3ab742f1925c_1017x580.png" width="1017" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec278a23-59c7-4242-858f-3ab742f1925c_1017x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:1017,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:215092,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.harmony-developers.com/i/161522572?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec278a23-59c7-4242-858f-3ab742f1925c_1017x580.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oNaJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec278a23-59c7-4242-858f-3ab742f1925c_1017x580.png 424w, https://substackcdn.com/image/fetch/$s_!oNaJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec278a23-59c7-4242-858f-3ab742f1925c_1017x580.png 848w, https://substackcdn.com/image/fetch/$s_!oNaJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec278a23-59c7-4242-858f-3ab742f1925c_1017x580.png 1272w, https://substackcdn.com/image/fetch/$s_!oNaJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec278a23-59c7-4242-858f-3ab742f1925c_1017x580.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>The &#8220;two sides of the same coin&#8221; of Hongmeng</h4><h3>OpenHarmony: Open Source Empowerment</h3><p>OpenHarmony has basic code contributed by Huawei and is incubated and operated by the Open Atom Open Source Foundation. It is completely free and open source, providing an open source operating system base for the entire industry.</p><p>It is positioned for the entire industry and supports free customization by third-party manufacturers, from mobile phones to IoT devices, automobiles, etc., to build a neutral and open distributed operating system ecosystem.</p><h4>HarmonyOS: Business closed loop</h4><p>HarmonyOS is a closed-source commercial system under the Huawei brand, which requires authorization for use and focuses on Huawei's "1+8+N" full-scenario strategy.</p><p>Deeply optimize the collaborative experience of Huawei hardware, such as mobile phones, tablets, PCs, wearable devices, etc., create the core operating system for high-end smart devices, and support Huawei's closed ecological loop.</p><h5>Goal difference</h5><p>OpenHarmony aims to build a neutral and open distributed operating system ecosystem to promote the prosperity and development of the Internet of Things industry.</p><p>The goal of HarmonyOS is to create a core operating system for high-end smart devices, support Huawei's closed ecological loop, and provide users with the ultimate full-scenario smart experience.</p><p>It was given to the Atomic Foundation for incubation and operation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dhDh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b2adaa-97c4-4de6-b28d-733e294ce8cb_1242x678.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dhDh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b2adaa-97c4-4de6-b28d-733e294ce8cb_1242x678.png 424w, https://substackcdn.com/image/fetch/$s_!dhDh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b2adaa-97c4-4de6-b28d-733e294ce8cb_1242x678.png 848w, https://substackcdn.com/image/fetch/$s_!dhDh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b2adaa-97c4-4de6-b28d-733e294ce8cb_1242x678.png 1272w, https://substackcdn.com/image/fetch/$s_!dhDh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b2adaa-97c4-4de6-b28d-733e294ce8cb_1242x678.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dhDh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b2adaa-97c4-4de6-b28d-733e294ce8cb_1242x678.png" width="1242" height="678" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7b2adaa-97c4-4de6-b28d-733e294ce8cb_1242x678.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:678,&quot;width&quot;:1242,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:339973,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.harmony-developers.com/i/161522572?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b2adaa-97c4-4de6-b28d-733e294ce8cb_1242x678.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dhDh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b2adaa-97c4-4de6-b28d-733e294ce8cb_1242x678.png 424w, https://substackcdn.com/image/fetch/$s_!dhDh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b2adaa-97c4-4de6-b28d-733e294ce8cb_1242x678.png 848w, https://substackcdn.com/image/fetch/$s_!dhDh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b2adaa-97c4-4de6-b28d-733e294ce8cb_1242x678.png 1272w, https://substackcdn.com/image/fetch/$s_!dhDh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b2adaa-97c4-4de6-b28d-733e294ce8cb_1242x678.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>The same technical foundation</h4><h5>01</h5><h5>code sharing</h5><p>The basic functions of HarmonyOS (such as distributed architecture, kernel, and driver) are derived from OpenHarmony born out of <a href="https://archive.fosdem.org/2021/stands.fosdem.org/stands/openharmony_project/OSTC_and_OpenHarmo_y_what_you_need_to_know.pdf">Open Source Technology Center division since 2012 R&amp;D with LiteOS in parallel and 2015 development at Huawei</a> after standalone original LiteOS real time operating system released as the original author and then donated to OpenAtom Foundation in June 2020 to maintain development and repo officially went live in September 2020, as 1.0 after HarmonyOS launch in August 2019 with HarmonyOS 2.0 beta underlining dual-frame OpenHarmony enhancement technologies together during the same month of September 2020 with accessible open source LiteOS kernel derived from LiteOS and shortly accessible Linux kernel on 1.1.0 LTS (after HarmonyOS 1). The underlying technologies of the two are highly interoperable, and the cost for developers to switch between the two is low to zero.</p><p>For example, distributed soft bus technology is used in both to achieve seamless interconnection between devices, quickly discover and connect devices, and efficiently transmit tasks and data.</p><h5>02</h5><h5>Unified development language</h5><p>ArkTS (Ark Language) is used as the main development language to support cross-device application development. Developers only need to master one language to develop applications on different devices. ArkTS language has the characteristics of high performance and easy development, and can meet the development needs from lightweight IoT devices to high-end smart devices.</p><h5>03</h5><h5>Distributed capabilities</h5><p>Share the distributed technology of "device as a service, service as a device" to achieve seamless multi-terminal collaboration, such as file transfer and cross-terminal screen projection.</p><p>For example, on OpenHarmony and HarmonyOS devices, users can quickly transfer files on their phones to tablets or computers to achieve efficient office work.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0k3y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd355d294-b48a-4a51-a4b2-17a85fe71e20_968x562.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0k3y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd355d294-b48a-4a51-a4b2-17a85fe71e20_968x562.png 424w, https://substackcdn.com/image/fetch/$s_!0k3y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd355d294-b48a-4a51-a4b2-17a85fe71e20_968x562.png 848w, https://substackcdn.com/image/fetch/$s_!0k3y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd355d294-b48a-4a51-a4b2-17a85fe71e20_968x562.png 1272w, https://substackcdn.com/image/fetch/$s_!0k3y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd355d294-b48a-4a51-a4b2-17a85fe71e20_968x562.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0k3y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd355d294-b48a-4a51-a4b2-17a85fe71e20_968x562.png" width="968" height="562" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d355d294-b48a-4a51-a4b2-17a85fe71e20_968x562.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:562,&quot;width&quot;:968,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!0k3y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd355d294-b48a-4a51-a4b2-17a85fe71e20_968x562.png 424w, https://substackcdn.com/image/fetch/$s_!0k3y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd355d294-b48a-4a51-a4b2-17a85fe71e20_968x562.png 848w, https://substackcdn.com/image/fetch/$s_!0k3y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd355d294-b48a-4a51-a4b2-17a85fe71e20_968x562.png 1272w, https://substackcdn.com/image/fetch/$s_!0k3y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd355d294-b48a-4a51-a4b2-17a85fe71e20_968x562.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Technical differences - system architecture and customizability</h4><h5>openness</h5><p>OpenHarmony is completely open source and supports deep third-party customization, such as modifying the kernel and adding hardware drivers. It is suitable for manufacturers with technical strength to carry out personalized development.</p><p>HarmonyOS is closed source, and only Huawei and authorized partners can optimize it based on the framework. Customization is limited, but it can ensure the stability and security of the system.</p><h5>Hardware adaptation</h5><p>OpenHarmony supports all categories of devices, from MCU-level sensors to high-end mobile phones. It is highly flexible and can meet the hardware requirements of different industries and scenarios.</p><p>HarmonyOS focuses on the hardware of Huawei and a few partners, such as Kirin chips and Hongmeng cockpit, giving priority to adapting to its own devices and providing a deeply optimized hardware collaboration experience. System update</p><p>OpenHarmony is community-driven, and version iterations rely on open source contributions, such as participation from universities and enterprises. The speed of updates is affected by community activity.</p><p>Huawei leads the update of HarmonyOS to ensure long-term maintenance of devices, such as the 3-year (5-6)* system upgrade policy, to provide users with a stable user experience.</p><h4>Technological Differences&#8212;&#8212;Ecology and Compatibility</h4><h5>Application ecology</h5><p>OpenHarmony requires third parties to build their own ecosystem to support native Hongmeng applications and some Android applications (through virtual machines). Ecosystem construction takes time.</p><p>HarmonyOS was compatible with Android applications in the early days and quickly enriched its ecosystem. In 2025, HarmonyOS NEXT completely abandoned Android compatibility and turned to a pure-blooded Hongmeng ecosystem, with the proportion of native applications increasing to more than 80%.</p><h5>Device collaboration</h5><p>OpenHarmony provides basic distributed interfaces, and manufacturers need to independently develop cross-device functions. It is suitable for manufacturers with technical strength to conduct in-depth customization.</p><p>HarmonyOS is deeply integrated with Huawei's "Super Terminal", connecting multiple devices with one click, such as mobile phone + tablet + car machine, seamlessly flowing, providing users with the ultimate multi-device collaborative experience.</p><h5>business characteristics</h5><p>OpenHarmony does not have pre-installed Huawei services (such as HMS Core) libraries, and manufacturers need to integrate them themselves. It is suitable for manufacturers with independent service needs.</p><p>HarmonyOS has built-in HMS Core (Huawei Mobile Services) libraries, supports exclusive features such as Petal Maps, Harmony Intelligence Celia (Pangu-MindSpore) and Huawei Wallet, and provides users with a wealth of Huawei-specific services.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5jW7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590f86f0-4530-4f1e-8e35-5f0b075e6314_990x496.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5jW7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590f86f0-4530-4f1e-8e35-5f0b075e6314_990x496.png 424w, https://substackcdn.com/image/fetch/$s_!5jW7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590f86f0-4530-4f1e-8e35-5f0b075e6314_990x496.png 848w, https://substackcdn.com/image/fetch/$s_!5jW7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590f86f0-4530-4f1e-8e35-5f0b075e6314_990x496.png 1272w, https://substackcdn.com/image/fetch/$s_!5jW7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590f86f0-4530-4f1e-8e35-5f0b075e6314_990x496.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5jW7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590f86f0-4530-4f1e-8e35-5f0b075e6314_990x496.png" width="990" height="496" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/590f86f0-4530-4f1e-8e35-5f0b075e6314_990x496.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:496,&quot;width&quot;:990,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:173401,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.harmony-developers.com/i/161522572?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590f86f0-4530-4f1e-8e35-5f0b075e6314_990x496.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5jW7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590f86f0-4530-4f1e-8e35-5f0b075e6314_990x496.png 424w, https://substackcdn.com/image/fetch/$s_!5jW7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590f86f0-4530-4f1e-8e35-5f0b075e6314_990x496.png 848w, https://substackcdn.com/image/fetch/$s_!5jW7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590f86f0-4530-4f1e-8e35-5f0b075e6314_990x496.png 1272w, https://substackcdn.com/image/fetch/$s_!5jW7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590f86f0-4530-4f1e-8e35-5f0b075e6314_990x496.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Ecological differentiation and typical scenes</h4><h5>OpenHarmony Ecosystem</h5><p>Participants: Third-party manufacturers such as JD.com, OPPO, Midea, and Gree, who build their own brand systems. For example, OPPO's Pantanal system is based on OpenHarmony.</p><p>Scenarios: IoT terminals (smart home appliances, industrial equipment), educational equipment, and in-vehicle systems (such as BAIC Arcfox Hongmeng car machine), promoting the intelligent upgrade of various industries.</p><h5>HarmonyOS Ecosystem</h5><p>Core equipment: Huawei mobile phones (Mate/P series), tablets (MatePad), notebooks (MateBook), smart watches (Watch GT), smart screens (Vision), etc.</p><p>Advantageous scenarios: multi-terminal collaborative office (such as dragging mobile phone files to PC for editing), distributed photography (combined shooting of multiple device lenses), and Hongmeng cockpit (Wenjie series cars), providing users with a seamless full-scenario intelligent experience.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ADku!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ab572e-01d0-48e5-987e-7d014a2fa8dc_1194x589.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ADku!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ab572e-01d0-48e5-987e-7d014a2fa8dc_1194x589.png 424w, https://substackcdn.com/image/fetch/$s_!ADku!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ab572e-01d0-48e5-987e-7d014a2fa8dc_1194x589.png 848w, https://substackcdn.com/image/fetch/$s_!ADku!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ab572e-01d0-48e5-987e-7d014a2fa8dc_1194x589.png 1272w, https://substackcdn.com/image/fetch/$s_!ADku!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ab572e-01d0-48e5-987e-7d014a2fa8dc_1194x589.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ADku!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ab572e-01d0-48e5-987e-7d014a2fa8dc_1194x589.png" width="1194" height="589" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1ab572e-01d0-48e5-987e-7d014a2fa8dc_1194x589.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:589,&quot;width&quot;:1194,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:248487,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.harmony-developers.com/i/161522572?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ab572e-01d0-48e5-987e-7d014a2fa8dc_1194x589.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ADku!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ab572e-01d0-48e5-987e-7d014a2fa8dc_1194x589.png 424w, https://substackcdn.com/image/fetch/$s_!ADku!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ab572e-01d0-48e5-987e-7d014a2fa8dc_1194x589.png 848w, https://substackcdn.com/image/fetch/$s_!ADku!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ab572e-01d0-48e5-987e-7d014a2fa8dc_1194x589.png 1272w, https://substackcdn.com/image/fetch/$s_!ADku!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ab572e-01d0-48e5-987e-7d014a2fa8dc_1194x589.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Developer entrance and technical route</h4><h5>OpenHarmony (Oniro) Development</h5><p><em>Official website: <a href="https://gitee.com/openharmony">Gitee Open Source Community</a></em></p><p><em>Oniro: <a href="https://github.com/eclipse-oniro4openharmony">GitHub Open Source Community</a></em></p><h5>Development direction:</h5><p><em>Northbound (application layer):</em> ArkUI interface development and distributed application design to meet application requirements in different scenarios.</p><p><em>Southbound (device layer):</em> hardware driver development, embedded device adaptation, such as MCU-level chips, to promote the intelligence of hardware devices.</p><p><em>System layer:</em> kernel optimization and framework expansion require community contribution review to improve system performance and stability.</p><h5>HarmonyOS development</h5><p>Official website: <a href="https://developer.huawei.com/consumer/en/">Huawei Developer Alliance</a></p><p>China: <a href="https://developer.huawei.com/consumer/cn/">&#21326;&#20026;&#24320;&#21457;&#32773;&#32852;&#30431;-HarmonyOS&#24320;&#21457;&#32773;&#23448;&#32593;&#65292;&#20849;&#24314;&#40511;&#33945;&#29983;&#24577;</a></p><p><em>Development direction:</em> Focus on application development and leverage HMS Core capabilities</p><p>(such as AI, payment, and maps), adapted to Huawei's full-scenario devices, and providing users with a rich application experience.</p><p><em>Tool chain:</em> DevEco Studio is a one-stop development platform that supports low-code development and cross-end deployment to improve development efficiency.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Xski!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20fce9ec-7a38-47a6-a8e5-152da3492867_939x506.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Xski!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20fce9ec-7a38-47a6-a8e5-152da3492867_939x506.png 424w, https://substackcdn.com/image/fetch/$s_!Xski!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20fce9ec-7a38-47a6-a8e5-152da3492867_939x506.png 848w, https://substackcdn.com/image/fetch/$s_!Xski!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20fce9ec-7a38-47a6-a8e5-152da3492867_939x506.png 1272w, https://substackcdn.com/image/fetch/$s_!Xski!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20fce9ec-7a38-47a6-a8e5-152da3492867_939x506.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Xski!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20fce9ec-7a38-47a6-a8e5-152da3492867_939x506.png" width="939" height="506" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20fce9ec-7a38-47a6-a8e5-152da3492867_939x506.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:506,&quot;width&quot;:939,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:224913,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.harmony-developers.com/i/161522572?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20fce9ec-7a38-47a6-a8e5-152da3492867_939x506.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Xski!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20fce9ec-7a38-47a6-a8e5-152da3492867_939x506.png 424w, https://substackcdn.com/image/fetch/$s_!Xski!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20fce9ec-7a38-47a6-a8e5-152da3492867_939x506.png 848w, https://substackcdn.com/image/fetch/$s_!Xski!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20fce9ec-7a38-47a6-a8e5-152da3492867_939x506.png 1272w, https://substackcdn.com/image/fetch/$s_!Xski!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20fce9ec-7a38-47a6-a8e5-152da3492867_939x506.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Key trends and milestones</h4><h5>Core Actions for 2025</h5><p>HarmonyOS NEXT has been fully launched, and the pure-blooded HarmonyOS ecosystem has taken shape. It no longer relies on Android applications, and the proportion of native applications has increased to more than 80%, marking the maturity of the HarmonyOS ecosystem.</p><p>The OpenHarmony ecosystem is expanding, and it is expected that the number of third-party devices will exceed 1 billion, covering smart homes, industrial Internet and other fields, and promoting the development of the Internet of Everything. The OpenHarmony overseas plan has been launched this year.</p><h5>01</h5><h5>long term goals</h5><p>Breaking the iOS/Android monopoly, forming the world's third largest operating system ecosystem driven by the dual wheels of "open source OpenHarmony + commercial HarmonyOS", providing more choices for global users.</p><p>Promote the implementation of "Internet of Everything" and realize the ultimate form of device as a service, such as seamless integration of smart cars and smart homes, to provide users with a more convenient and intelligent life experience. 1+8+N ecosystem.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2kgl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b409f6-2254-4c5a-8dbb-f9a783d07d18_891x557.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2kgl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b409f6-2254-4c5a-8dbb-f9a783d07d18_891x557.png 424w, https://substackcdn.com/image/fetch/$s_!2kgl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b409f6-2254-4c5a-8dbb-f9a783d07d18_891x557.png 848w, https://substackcdn.com/image/fetch/$s_!2kgl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b409f6-2254-4c5a-8dbb-f9a783d07d18_891x557.png 1272w, https://substackcdn.com/image/fetch/$s_!2kgl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b409f6-2254-4c5a-8dbb-f9a783d07d18_891x557.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2kgl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b409f6-2254-4c5a-8dbb-f9a783d07d18_891x557.png" width="891" height="557" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26b409f6-2254-4c5a-8dbb-f9a783d07d18_891x557.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:557,&quot;width&quot;:891,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:184589,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.harmony-developers.com/i/161522572?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b409f6-2254-4c5a-8dbb-f9a783d07d18_891x557.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2kgl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b409f6-2254-4c5a-8dbb-f9a783d07d18_891x557.png 424w, https://substackcdn.com/image/fetch/$s_!2kgl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b409f6-2254-4c5a-8dbb-f9a783d07d18_891x557.png 848w, https://substackcdn.com/image/fetch/$s_!2kgl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b409f6-2254-4c5a-8dbb-f9a783d07d18_891x557.png 1272w, https://substackcdn.com/image/fetch/$s_!2kgl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b409f6-2254-4c5a-8dbb-f9a783d07d18_891x557.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Core conclusion</h4><h5>symbiotic relationship</h5><p>OpenHarmony is the cornerstone of the ecosystem, providing an open source foundation for the entire industry; HarmonyOS is a business pioneer, creating a high-end device ecosystem. The two complement each other rather than oppose each other, and jointly promote the development of the Hongmeng ecosystem.</p><h5>Select suggestions</h5><p>Third-party manufacturers: Build their own brand systems based on OpenHarmony to lower technical barriers and quickly enter the market.</p><p>Developers: Prioritize HarmonyOS development to access Huawei's high-end device ecosystem, or participate in the OpenHarmony community to contribute underlying technologies and enhance your own technical capabilities.</p><h5>Industry impact</h5><p>The Hongmeng dual-track system is expected to reshape the global operating system landscape, provide strategic support for "Chinese chips + Chinese systems", and promote the independent and controllable development of China's technology industry.</p><p>A cornerstone of incubation</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-wKf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f71cec8-2760-4ec9-8a57-a9b823ac74df_618x447.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-wKf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f71cec8-2760-4ec9-8a57-a9b823ac74df_618x447.png 424w, https://substackcdn.com/image/fetch/$s_!-wKf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f71cec8-2760-4ec9-8a57-a9b823ac74df_618x447.png 848w, https://substackcdn.com/image/fetch/$s_!-wKf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f71cec8-2760-4ec9-8a57-a9b823ac74df_618x447.png 1272w, https://substackcdn.com/image/fetch/$s_!-wKf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f71cec8-2760-4ec9-8a57-a9b823ac74df_618x447.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-wKf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f71cec8-2760-4ec9-8a57-a9b823ac74df_618x447.png" width="618" height="447" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f71cec8-2760-4ec9-8a57-a9b823ac74df_618x447.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:447,&quot;width&quot;:618,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:175900,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.harmony-developers.com/i/161522572?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f71cec8-2760-4ec9-8a57-a9b823ac74df_618x447.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-wKf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f71cec8-2760-4ec9-8a57-a9b823ac74df_618x447.png 424w, https://substackcdn.com/image/fetch/$s_!-wKf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f71cec8-2760-4ec9-8a57-a9b823ac74df_618x447.png 848w, https://substackcdn.com/image/fetch/$s_!-wKf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f71cec8-2760-4ec9-8a57-a9b823ac74df_618x447.png 1272w, https://substackcdn.com/image/fetch/$s_!-wKf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f71cec8-2760-4ec9-8a57-a9b823ac74df_618x447.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>How to balance the openness of the open source ecosystem and the closedness of the commercial ecosystem is the key to whether Hongmeng can challenge iOS/Android in the future. It is necessary to find a suitable balance between openness and closedness to ensure the prosperity of the ecosystem and protect commercial interests.</p><p>Thinking is actually walking on this leg.</p><p></p><blockquote><p><em><strong>Differences and commonalities between HarmonyOS and OpenHarmony</strong></em></p><p><em>Differences and commonalities between HarmonyOS and OpenHarmony</em></p><p><em>Gone through Tencent, BMW, research institute, finance. Worked in private enterprises, foreign companies, and central enterprises. Ten years of deep cultivation in the field of large application development. OpenHarmony&#65292;HarmonyOS&#65292;Flutter&#65292;H5&#65292;Android&#65292;iOS. He is currently working as an application architect at HarmonyOS. Officially certified as a creator by HarmonyOS.</em></p><p><em>Since the release of the Java (Java SDK) version of HarmonyOS in 2021, I have continued to pay attention to the development of the HarmonyOS ecosystem. In the process of in-depth understanding, I became more and more interested in HarmonyOS, and in 2023, I officially devoted myself to the development of open source HarmonyOS, learning ArkUI and ArkTS. Now, I'm further involved in the development of HarmonyOS head apps.</em></p><p><em>In the past few years of development, I have accumulated a wealth of experience and many profound insights. I am well aware that "the truth becomes clearer the more it is debated", and good learning, summary and communication can not only promote the improvement of the knowledge framework, but also highly consistent with the concept of open source code.</em></p><p><em>Only through full exchange, learning and summarization can the truth be tested in practice, just as advocated by the Feynman learning method. Therefore, I hope to share what I have learned, felt, and understood with my peers who are also learning about HarmonyOS development, so as to provide you with useful references. If you have any comments or questions, please feel free to communicate with me.</em></p></blockquote><p></p><p>Translated from -</p><p>Original source BiliBili: <strong><a href="https://www.bilibili.com/video/BV16LoTYNEEP/?spm_id_from=333.337.search-card.all.click&amp;vd_source=97c4bc44d1f801f8bda51d89e34e99ad">Differences and commonalities between HarmonyOS and OpenHarmony (China, Mandarin) </a>by GeorgeGcs_ 2025-04-16</strong></p>]]></content:encoded></item><item><title><![CDATA[Huawei Developer Conference HDC 2025 is scheduled for June 20~22, and early bird tickets will go on sale tomorrow ]]></title><description><![CDATA[After the HarmonyOS 5 build, consumers are eagerly looking forward to HarmonyOS 6. The company may introduce a new software version at the HDC 2025 event.]]></description><link>https://www.harmony-developers.com/p/huawei-developer-conference-hdc-2025</link><guid isPermaLink="false">https://www.harmony-developers.com/p/huawei-developer-conference-hdc-2025</guid><dc:creator><![CDATA[Harmony OS Developers]]></dc:creator><pubDate>Wed, 16 Apr 2025 13:44:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee518436-a356-43a0-b032-4cbb23fb9113_1024x510.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://www.ithome.com/">IT Home</a> reported on April 16 that the official announcement of the Huawei Developer Conference HDC 2025 will be on June <strong>20~22</strong>, and early bird tickets will go on sale on April 17 (tomorrow).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Xl-G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6405124d-d1d2-4520-a1ca-f86be17dd283_1316x1017.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Xl-G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6405124d-d1d2-4520-a1ca-f86be17dd283_1316x1017.webp 424w, https://substackcdn.com/image/fetch/$s_!Xl-G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6405124d-d1d2-4520-a1ca-f86be17dd283_1316x1017.webp 848w, https://substackcdn.com/image/fetch/$s_!Xl-G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6405124d-d1d2-4520-a1ca-f86be17dd283_1316x1017.webp 1272w, https://substackcdn.com/image/fetch/$s_!Xl-G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6405124d-d1d2-4520-a1ca-f86be17dd283_1316x1017.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Xl-G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6405124d-d1d2-4520-a1ca-f86be17dd283_1316x1017.webp" width="1316" height="1017" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6405124d-d1d2-4520-a1ca-f86be17dd283_1316x1017.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1017,&quot;width&quot;:1316,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Xl-G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6405124d-d1d2-4520-a1ca-f86be17dd283_1316x1017.webp 424w, https://substackcdn.com/image/fetch/$s_!Xl-G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6405124d-d1d2-4520-a1ca-f86be17dd283_1316x1017.webp 848w, https://substackcdn.com/image/fetch/$s_!Xl-G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6405124d-d1d2-4520-a1ca-f86be17dd283_1316x1017.webp 1272w, https://substackcdn.com/image/fetch/$s_!Xl-G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6405124d-d1d2-4520-a1ca-f86be17dd283_1316x1017.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Huawei Developer Conference HDC 2025 single-day ticket is 198 yuan, and the highest VIP early bird ticket is 4298 yuan.</p><p><a href="https://developer.huaweicloud.com/hdc/hdc2025/hdc2025.html">https://developer.huaweicloud.com/hdc/hdc2025/hdc2025.html</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XTJG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eaceb9-313c-4d26-aaad-cece7c224a4e_596x2656.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XTJG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eaceb9-313c-4d26-aaad-cece7c224a4e_596x2656.webp 424w, https://substackcdn.com/image/fetch/$s_!XTJG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eaceb9-313c-4d26-aaad-cece7c224a4e_596x2656.webp 848w, https://substackcdn.com/image/fetch/$s_!XTJG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eaceb9-313c-4d26-aaad-cece7c224a4e_596x2656.webp 1272w, https://substackcdn.com/image/fetch/$s_!XTJG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eaceb9-313c-4d26-aaad-cece7c224a4e_596x2656.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XTJG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eaceb9-313c-4d26-aaad-cece7c224a4e_596x2656.webp" width="596" height="2656" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b6eaceb9-313c-4d26-aaad-cece7c224a4e_596x2656.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2656,&quot;width&quot;:596,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XTJG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eaceb9-313c-4d26-aaad-cece7c224a4e_596x2656.webp 424w, https://substackcdn.com/image/fetch/$s_!XTJG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eaceb9-313c-4d26-aaad-cece7c224a4e_596x2656.webp 848w, https://substackcdn.com/image/fetch/$s_!XTJG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eaceb9-313c-4d26-aaad-cece7c224a4e_596x2656.webp 1272w, https://substackcdn.com/image/fetch/$s_!XTJG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eaceb9-313c-4d26-aaad-cece7c224a4e_596x2656.webp 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The invitation letter attached to IT Home is as follows:</p><blockquote><p>Dear Developers,</p><p>Every line of code is the spark that changes the world; With every attempt, a footnote is written for the digital future. From the beginning of Hongmeng to the sea of stars, from the opening of Pangu to the tide of intelligence, we always believe that the power of technology begins with small and becomes persistent. In June 2025, we sincerely invite you to Songshan Lake, Dongguan, to work with developers around the world to weave the warp and weft of the intelligent era with code at the Huawei Developer Conference (HDC 2025).</p><h3>It's not just a tech summit, it's a "home field" for developers</h3><h3>Zero distance from the future</h3><ul><li><p>Experience the advanced design of the latest version of HarmonyOS</p></li><li><p>Discover the evolution of Ascend AI and the Pangu model, and witness how AI is reshaping industries such as healthcare, manufacturing, and finance</p></li></ul><h3>Your love deserves to be shared</h3><ul><li><p>CodeLabs: Huawei engineers support you from a line of Hello World to complete meta-services and HUAWEI CLOUD applications</p></li><li><p>HarmonyOS Innovation Race:HarmonyOS opens up a new future</p></li><li><p>AI Application Development Center: HUAWEI CLOUD provides a solid foundation for you to develop the latest AI applications</p></li></ul><h3>Here, small forces will converge into a galaxy</h3><h3>We tailor the stage to every passion</h3><ul><li><p>Independent Developer Zone: Full-cycle technical guidance + exclusive development resource support to open up the fast lane of HarmonyOS ecological docking</p></li><li><p>Accessible technology: Practice digital inclusion with code, and let technology warm everyone</p></li></ul><h3>Inspiration collides</h3><ul><li><p>HarmonyOS Open Class: Sowing Dreams and Hopes for Future Developers</p></li><li><p>Sweeping Monk Meeting: Dialogue with HUAWEI CLOUD experts and top open source contributors to debunk technical myths</p></li><li><p>Zone: Immerse yourself in the world's top 100 HarmonyOS application cases, unlock the creative boundaries of AI-generated applications, and experience the achievements of the world's top developers</p></li></ul><p>In the summer of 2025, let's use code as a contract to ask why technology came about &#8211; under the stars of the Huawei Developer Conference, there is no commercial hustle and bustle, only the pure answer of thousands of lines of code: make the world a better place.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nRX_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee518436-a356-43a0-b032-4cbb23fb9113_1024x510.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nRX_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee518436-a356-43a0-b032-4cbb23fb9113_1024x510.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nRX_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee518436-a356-43a0-b032-4cbb23fb9113_1024x510.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nRX_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee518436-a356-43a0-b032-4cbb23fb9113_1024x510.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nRX_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee518436-a356-43a0-b032-4cbb23fb9113_1024x510.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nRX_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee518436-a356-43a0-b032-4cbb23fb9113_1024x510.jpeg" width="1024" height="510" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee518436-a356-43a0-b032-4cbb23fb9113_1024x510.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:510,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!nRX_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee518436-a356-43a0-b032-4cbb23fb9113_1024x510.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nRX_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee518436-a356-43a0-b032-4cbb23fb9113_1024x510.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nRX_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee518436-a356-43a0-b032-4cbb23fb9113_1024x510.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nRX_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee518436-a356-43a0-b032-4cbb23fb9113_1024x510.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After the <a href="https://www.huaweicentral.com/huawei-to-host-hdc-2025-on-june-20-22-new-harmonyos-version-coming/">HarmonyOS 5 build, consumers are eagerly looking forward to HarmonyOS 6</a>. The company may introduce a new software version at the HDC 2025 event. <a href="https://harmonyoshub.com/huawei-confirms-on-its-corporate-website-that-hdc-2024-will-be-global-this-time-in-live-stream-keynote-and-developer-sessions/">HDC 2025 may have a global format within the China hosted event in English next to Mandarin like HDC 2024</a>. The only difference last year only hosted Pangu AI, Business to Business stuff while HarmonyOS NEXT development was China-focused. This year may be different with pure HarmonyOS fully transitioned in China and globally.</p><p>Original source: <a href="https://www.ithome.com/0/845/756.htm">HUAWEI Developer Conference HDC 2025 is scheduled for June 20~22, and early bird tickets will go on sale tomorrow - IT Home</a> (China)</p>]]></content:encoded></item></channel></rss>