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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 26.x86游戏实战-寻找公共call
  • 实时更新UI界面
  • 【C++初阶】string类
  • 基于深度学习的医学影像分类
  • Vbox虚拟机+Ubuntu motest测试drm
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • Django transaction.atomic()事务处理
  • 【ROS2】高级:安全-理解安全密钥库
  • 《梦醒蝶飞:释放Excel函数与公式的力量》18.1 图表类型与设计
  • 机器学习(二十):偏差和方差问题
  • Docker Desktop安装
  • 汽车免拆诊断案例 | 2014 款上汽名爵 GT 车发动机无法起动
  • PACS-医学影像信息管理系统,全影像科室PACS源码,内置包括MPR、CMPR、VR等三维处理功能
  • vue2获取视频时长
  • Docker-Compose实现MySQL之主从复制
  • 【译】JS基础算法脚本:字符串结尾
  • 【css3】浏览器内核及其兼容性
  • 2017前端实习生面试总结
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • JAVA多线程机制解析-volatilesynchronized
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • vue-cli在webpack的配置文件探究
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 对象引论
  • 分布式事物理论与实践
  • 检测对象或数组
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 如何进阶一名有竞争力的程序员?
  • 深入浅出webpack学习(1)--核心概念
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 自定义函数
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • #QT(一种朴素的计算器实现方法)
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (day18) leetcode 204.计数质数
  • (pojstep1.3.1)1017(构造法模拟)
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (分布式缓存)Redis分片集群
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .htaccess 强制https 单独排除某个目录
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .net Stream篇(六)