rk3568 OpenHarmony4.1 Launcher定制开发—桌面壁纸替换

        Launcher 作为系统人机交互的首要入口,提供应用图标的显示、点击启动、卸载应用,并提供桌面布局设置以及最近任务管理等功能。本文将介绍如何使用Deveco Studio进行单独launcher定制开发、然后编译并下载到开发板,以通过Launcher修改桌面背景壁纸为演示案例。

        一、演示环境与设备

        1、开发板:BQ3568HM(厦门贝启rk3568简化版)
        2、Deveco studio 4.0.0.600   API10(FullSDK)
(因为OpenHarmony4.1release的launcher源码仍然使用API10进行编译的)推荐下载Deveco studio 4.0.0.600版作为开发环境。
        FullSDK替换参考文档:OpenHarmony 应用开发FullSDK获取与替换_openharmony full sdk-CSDN博客
        3、演示系统:OpenHarmony4.1release

        二、前提准备(可不进行这一步,文末有Launcher另一种替换)

        Launcher作为预安装的系统软件,不允许直接安装使用Deveco Studio单独编译的Launcher.hap和Launcher_Settings.hap,必须对源码进行如下更改,然后编译一个Launcher可卸载安装的固件。

        1、首先搭建OpenHarmony编译环境(过程略);
        2、从贝启开源社区下载BQ3568HM开发板OpenHarmony4.1release源码
链接:https://www.bearkey.net/thread-112-1-1.html(非厦门贝启rk3568简化版,自行寻找源码)
        3、下载源码后,源码根目录,进入路径vendor/hihope/rk3568/preinstall-config/中,打开编辑install_list.json文件,找到  "app_dir" : "/system/app/com.ohos.launcher"这一项,将"removable"值改为true,使得预安装的com.ohos.launcher文件夹里面的hap文件可以被重新安装,如下图所示。

        4、编译源码,编译所生成的文件都归档在out/rk3568/目录下,固件输出在 out/rk3568/packages/phone/images/ 目录下,将固件烧录到开发板上,桌面如下图所示。 

        三、launcher开发实例——替换桌面背景图片

        本节演示如何进行launcher开发,以替换桌面背景图片为例。

        1、从源码中提取launcher源码:
        源码目录中,路径applications/standard/下有launcher源码,如下图所示,提取到桌面

        2、用Deveco studio打开launcher源码

        3、替换桌面图片。在工程目录:
        launcher/product/phone/src/main/ets/common/pics/下img_wallpaper_default.jpg为默认的桌面背景图片,删除这张图片,重新添加一张同名的其他的jpg文件,如下图所示。

        4、在3步完成对launcher的修改后,我们进行编译。

        (1)首先,打开目录launcher\product\phone\src\main\module.json5文件,如下图注释"deviceTypes"项的"tablet"

        (2)然后,打开目录launcher\product\pad\src\main\module.json5文件,如下图注释"deviceTypes"项的"default",如下图所示。

        (3)最后,选择菜单栏“构建”,点击调出窗口,选择“编译”,选择“编译APP”

        5、在开发板目录/system/app/com.ohos.launcher中对应有Launcher.hap和Launcher_Settings.hap两个hap,如下图所示。因此,下载最新的launcher需要下载这两个hap,这两个hap在第(4)步被编译出来,对应路径是:工程目录launcher\product\phone\build\default\outputs\default\phone_launcher-default-signed.hap和
launcher\feature\settings\build\default\outputs\default\launcher_settings-phone_launcher-default-signed.hap,如下图所示

        6、将步骤5中的两个Launcher相关hap进行安装,如下图所示(如果不是第二节修改源码,编译的固件,会无法安装)

        7、安装完成后,必须重启一下开发板才能生效,reset键重启,效果如下图所示,桌面背景替换成功。

        四、总结

        在Devceo studio对Launcher源码进行定制开发(代码修改),然后进行hap编译,最后安装两个最新编译的Launcher相关hap,并重启开发板查看效果

        五、补充:

        若没有进行第二节,没有编译一个Launcher可卸载安装的固件。那么Launcher作为预安装的系统软件不允许直接安装使用Deveco Studio单独编译的Launcher.hap和Launcher_Settings.hap,如下图所示。

        只能通过文件发送的方法,对开发板的Launcher相关hap文件进行替换。在开发板目录/system/app/com.ohos.launcher中对应有Launcher.hap和Launcher_Settings.hap两个hap,如下图所示。

        (1)首先,将(三、5)中编译的两个hap复制单独提取出来,然后并进行相应的重名,如下图所示

        (2)将两个hap文件发送到对应开发板文件夹,如下图所示,文件发送失败。

        (3)解决方法,文件重新挂在到根目录,进入开发板后台,执行,然后退出开发板后台,重新发送文件替换,如下图所示

        (4)替换完成后,必须重启一下开发板才能生效,reset键重启,查看效果。

        声明:作者原创,非本人允许,严禁转载

        资料:(1)演示开发板为厦门贝启BQ3568HM   首页-贝启科技官方企业店-淘宝网

                   (2)贝启科技开源网站:Bearkey-开源社区

                   (3)欢迎请作者喝杯咖啡,你的鼓励是小编继续的动力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/48917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Webpack 5 Tree Shaking与Module Federation

Webpack是一个流行的JavaScript模块打包器,它在前端工程化中扮演着核心角色。Webpack 5引入了许多新特性,其中两个最值得关注的是Tree Shaking和Module Federation。这两个特性分别解决了代码体积优化和微前端架构的问题。接下来,我们将深入探…

记录|如何打包C#项目

参考文章: c#窗体应用程序怎么打包 经过检验确实有效 Step1. 生成发布文件 在Visual Studio的菜单中,找到“生成”->“发布” 第一次会有个向导,基本上一路next下来既可以 最后,点击完成即可以 Step2. 获得publish文件 自…

软考高级第四版备考--第28天(度量绩效域)

核心概念: 度量绩效域涉及评估项目绩效和采取应对措施相关的活动和职能; 有效执行此绩效域将产以下预期目标: 对项目状况充分理解;数据充分,可支持决策;及时采取行动,确保项目最佳绩效&#…

【JavaEE】AQS原理

本文将介绍AQS的简单原理。 首先有个整体认识,全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架。常用的ReentrantLock、Semaphore、CountDownLatch等都有实现它。 本文参考: 深入理解AbstractQueuedSynchronizer只需…

[C++]TinyWebServer

TinyWebServer 文章目录 TinyWebServer1 主体框架2 Buffer2.1 向Buffer写入数据2.2 从Buffer读取数据2.3 动态扩容2.4 从socket中读取数据2.5 具体实现 3 日志系统3.1 生产者-消费者模型3.2 数据一致3.3 代码 4 定时器4.1 调整堆中元素操作4.2 堆的操作4.2.1 增4.2.2 删4.2.3 改…

【AI资讯早报】AI科技前沿资讯概览:2024年7月23日早报

【AI资讯早报,感知未来】AI科技前沿资讯概览,涵盖了行业大会、技术创新、应用场景、行业动态等多个方面,全面展现了AI领域的最新发展动态和未来趋势。 1.阿里巴巴发布ESG报告,AI赋能医疗与助老助残 2024年7月22日,阿里…

ElasticSearch-分词器介绍

Analysis Analysis文本分析,也叫分词,是把全文本转换为一系列单词的过程。 Analyzer的组成 通常Analyzer由三个部分组成。 Character Filters:针对原始文本处理,例如去除html标签等。Tokenizer:按照一定的规则&…

微信小程序-应用,页面和组件生命周期总结

情景1:小程序冷启动时候的顺序 情景2: 使用navigator(保留并打开另一个页面)和redirect(关闭并打开另一个页面)的执行顺序 情景3:切后台和切前台

Linux——组管理和权限管理

目录 组管理 Linux 组基本介绍 文件/目录所有者 组的创建 查看&修改文件/目录所在组 改变用户所在组 权限管理 基本介绍 rwx 文件/目录权限详解 chmod 修改文件或目录权限 chown 修改文件所有者 组管理 Linux 组基本介绍 关于第二张图中问题,答案…

windows11 ,ubuntu20.04双系统,ubuntu没有wifi的解决方式

Ubuntu20系统安装完后没有WIFI_modprobe:error:could not insert 8852be:invalid a-CSDN博客 ubuntu 20.04 设置国内镜像源(阿里源、清华源)_ubuntu 20.04 镜像源-CSDN博客 Ubuntu20.04无法直接连接无线网络 解决方法_ubuntu20.04连接wifi-CSDN博客 …

Linux下如何使用GitLab进行团队协作

在Linux系统中,使用GitLab进行团队协作是非常常见的做法。GitLab是一个基于Git的代码托管和项目管理平台,可以帮助团队成员共享、追踪和管理代码的开发过程。本文将介绍如何在Linux系统中安装和配置GitLab,以及一些常用的团队协作功能。 安装…

【Qt】Qt的坐标转换(mapToGlobal)

1、QPoint QWidget::mapToGlobal(const QPoint &pos) const 将小部件坐标转换为全局坐标。mapToGlobal(QPoint(0,0))可以得到小部件左上角像素的全局坐标。2、QPoint QWidget::mapToParent(const QPoint &pos) const 将小部件坐标转换为父部件坐标。如果小部件没有父部…

Jmeter之count函数

counter函数 1、功能解释 count函数--计数器,每调用这个函数一次,它就会自动加1。它有两个参数,第一个参数是布尔型的,只能设置成 “TRUE”或者“FALSE”,如果是TRUE,那么每个用户有自己的计数器&#xf…

常用的网络爬虫工具推荐

在推荐常用的网络爬虫工具时,我们可以根据工具的易用性、功能强大性、用户口碑以及是否支持多种操作系统等多个维度进行考量。以下是一些常用的网络爬虫工具推荐: 1. 八爪鱼 简介:八爪鱼是一款免费且功能强大的网站爬虫,能够满足…

二叉树---验证二叉搜索树

题目: 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 思路&…

算法整理——【动态规划练习(8)子序列】

本博客我们梳理用动态规划方法解决子序列问题。 一、最长公共子序列 题目为1143. 最长公共子序列 - 力扣(LeetCode),给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。如果不存在公共子序列,…

vxe-table——实现切换页码时排序状态的回显问题(ant-design+elementUi中table排序不同时回显的bug)——js技能提升

之前写的后台管理系统,都是用的antdelement,table组件中的【排序】问题是有一定的缺陷的。 想要实现的效果: antv——table组件一次只支持一个参数的排序 如下图: 就算是可以自行将排序字段拼接到列表接口的入参中&#xff0c…

解决Error: Not Found:Page[5][-1,81] at view.umd.min.js

场景说明: uniapp使用组件,在APP环境出现,在H5环境正常。单页面上多处使用该组件,使用同名参数设置数据,应用切换效果时,触发请求不同接口,返回数据格式不同。使用v-if时出现,使用v…

环信+亚马逊云科技服务:助力出海AI社交应用扬帆起航

随着大模型技术的飞速发展,AI智能体的社交体验得到了显著提升,AI社交类应用在全球范围内持续火热。尤其是年轻一代对新技术和新体验的热情,使得AI社交产品在海外市场迅速崛起。作为领先的即时通讯解决方案提供商,环信与亚马逊云科…

计算机体系结构|| 再定序缓冲(ROB)原理(6)

实验6 再定序缓冲(ROB)原理 6.1实验目的 (1)加深对指令级并行性及其开发的理解。 (2)加深对基于硬件的前瞻执行的理解。 (3)掌握 ROB 在流出、执行、写结果确认4 个阶段所进行的…