当前位置: 首页 > news >正文

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)欢迎请作者喝杯咖啡,你的鼓励是小编继续的动力

相关文章:

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

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

MySQL:送分or送命 varchar(30) 与 int(10)

摘要: VARCHAR(30) 和 INT(10) 在MySQL中代表两种不同类型的字段,它们之间的主要区别在于它们存储的数据类型、存储方式以及显示宽度的含义。 正文: INT(10) 在MySQL中,当你看到INT(10)这样的数据类型定义时,可能会…...

【odoo17】后端py方法触发右上角提示组件

概要 在前面文章中,有介绍过前端触发的通知服务。 【odoo】右上角的提示(通知服务) 此文章则介绍后端触发方法。 内容 直接上代码:但是前提一定是按钮触发!!!!! def bu…...

1775D - Friendly Spiders

题目链接:Friendly Spiders 首先我们可以考虑暴力做法,那就是每两个蜘蛛判断一下gcd,如果不等于1,那就连条边,这样的话时间复杂度是O(n^2),显然超时,因此我们可以采用类似…...

【python】OpenCV—Point Polygon Test

文章目录 1、完整代码2、涉及到的库cv2.pointPolygonTestcv2.minMaxLoc 1、完整代码 from __future__ import print_function from __future__ import division import cv2 as cv import numpy as np # Create an image r 100 src np.zeros((4*r, 4*r), dtypenp.uint8) # 创…...

6 Go语言的常量、枚举、作用域

本专栏将从基础开始,循序渐进,由浅入深讲解Go语言,希望大家都能够从中有所收获,也请大家多多支持。 查看相关资料与知识库 专栏地址:Go专栏 如果文章知识点有错误的地方,请指正!大家一起学习,…...

第十一章 数据结构

第十一章 数据结构 11.1 数组 数组是元素的顺序集合,通常这些元素具有相同的数据类型 索引表示元素在数组中的顺序号,顺序号从数组开始处计数 数组元素通过索引被独立给出了地址,数组整体上有一个名称,但每个元素利用数组的的…...

LeetCode704 二分查找

前言 题目: 704.二分查找 文档: 代码随想录——二分查找 编程语言: C 解题状态: 解答错误,变量定义位置错误。 思路 有序数组的查找,最直接的思路应该就是二分查找。但是在查找的过程中要考虑到区间的边界…...

[言简意赅] Matlab生成FPGA端rom初始化文件.coe

🎎Matlab生成FPGA端rom初始化文件.coe 本文主打言简意赅。 函数源码 function gencoeInitialROM(width, depth, signal, filepath)% gencoeInitialROM - 生成 Xilinx ROM 初始化格式的 COE 文件%% 输入参数:% width - ROM 数据位宽% depth - ROM 数据深度% s…...

【QAC】分布式部署下其他机器如何连接RLM

1、 文档目标 解决分布式部署下其他机器如何连接RLMLicense管理器。 2、 问题场景 分布式部署下QAC要在其他机器上单独运行扫描,必须先连接RLMLicense管理器,如何连接? 3、软硬件环境 1、软件版本:HelixQAC23.04 2、机器环境…...

从等保测评看行业安全趋势:洞察与预测

在当今数字化时代,网络安全已成为各行各业的头等大事。等保测评(等级保护测评),作为国家对信息系统安全的重要管理手段,不仅关乎企业的合规性,更是行业安全水平的重要衡量标准。本文将从等保测评的视角出发…...

HTTP模块(二)

HTTP 设置 HTTP 响应报文 HTTP报文常见属性: const http require(http);const server http.createServer((request, response) > {// 设置请求状态码 2xx 4xx 5xxresponse.statusCode 200;// 设置请求描述 了解即可response.statusMessage hello// 指定响…...

引入缓存带来的问题以及解决方案

目录 前言 问题与解决方案 缓存击穿 缓存穿透 缓存雪崩 缓存一致性 前言 在提升接口性能的方案中,毫无疑问,使用缓存是最有效果的,但同时也会带来新的问题。 缓存击穿缓存穿透缓存雪崩缓存一致性 以上问题都是引入缓存需要考虑的&am…...

力扣39题:组合总和的 Java 实现

引言 力扣(LeetCode)是一个在线编程平台,提供了大量的编程题目供开发者练习。第39题“组合总和”是一个经典的回溯算法问题,要求找出所有可能的组合,使得组合中的数字之和等于给定的目标值。本文将介绍如何使用 Java …...

使用el-table实现自动滚动

文章目录 概要技术实现完整代码 概要 在前端开发大屏的时候,我们会用到表格数据展示,有时候为了使用户体验更加好,会增加表格自动滚动。下边我将以示例代码,用element UI的el-table来讲一下。 技术实现 1 .增加dom监听&#xf…...

Angular由一个bug说起之八:实践中遇到的一个数据颗粒度的问题

互联网产品离不开数据处理,数据处理有一些基本的原则包括:准确性、‌完整性、‌一致性、‌保密性、‌及时性。‌ 准确性:是数据处理的首要目标,‌确保数据的真实性和可靠性。‌准确的数据是进行分析和决策的基础,‌因此…...

day13(DNS域名解析)

今天内容: 1、逆向解析 2、多域名 3、时间服务器 4、主从配置 1.设置逆向解析 (1)永久配置我们自己的DNS服务器 (2)关闭NetworkManager服务 NetworkManager 的自动管理功能可能会干扰定制化的网络配置。 在需要切换…...

uboot的mmc partconf命令

文章目录 命令格式参数解释具体命令解释总结 mmc partconf 是一个用于配置 MMC (MultiMediaCard) 分区的 U-Boot 命令。具体来说,这个命令允许你设置或读取 MMC 卡的分区配置参数。让我们详细解释一下 mmc partconf 0 0 1 0 命令的含义。 命令格式 mmc partconf &…...

数据结构经典测题3

1. 设有定义: char *p; ,以下选项中不能正确将字符串赋值给字符型指针 p 的语句是【多选】( ) A: pgetchar(); B: scanf("%s",p); C: char s[]"china"; ps; D: *p"china"; 答案为ABD A选项&…...

tensorboard add_text() 停止自动为尖括号标记添加配对的结束括号</>

问题 调用tensorboard的add_text()记录文本信息时&#xff0c;如果文本中含有含尖括号的标记&#xff0c;就会被自动识别为html标记&#xff0c;因此tensorboard会自动生成对应的带斜杠的结束标记。 例如要记录的文本是 abc<abc>&#xff0c;在tensorboard中就会显示为a…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...