HarmonyOS开发实例:【数字管家app】

一.概述

本应用是基于RK3399开发板,使用OpenHarmony3.1-Release开发的应用。通过OpenHarmony的分布式技术,使多人能够一起画画。

1.应用运行效果图:

输入图片说明

2.分布式画板使用示意图

输入图片说明

如上图所示,用户1、用户2在各自本地端进行绘制,将当前的图形保存到分布式文件中。远程端当接到分布式数据库发生改变时,获取分布式数据库存储的文件名,然后进行加载图形文件,显示本地端绘制的图形。

3.涉及OpenHarmony技术特性

eTS UI 分布式流转
鸿蒙参考文档:qr23.cn/AKFP8k

4.基础信息

开发平台 系统类型 系统版本

软通“扬帆”富设备开发板 标准系统 3.1Release

二.快速上手

1.应用安装包

1.1 硬件环境准备
  • 预装windows系统的PC机
  • 扬帆RK3399开发板
  • 开发板专用12V电源适配器
  • USB公对公数据连接线
  • USB外接摄像头
  • HDMI显示器
2.1 开发环境准备
  • 下载DevEco Studio 3.0 Beta1及以上版本
  • 配置OpenHarmonySDK
  • 创建OpenHarmony工程
  • 配置OpenHarmony应用签名信息
  • 安装运行OpenHarmony应用
3.1 功能开发
3.1.1 目录

在src/main/resources/目录下,根据不同的资源类型,定义资源文件。

{ "name":  "brush_width","value":  "画笔宽度"
}
3.1.2 引用资源

在有对应page的ets文件中,可直接通过$r()引用。 关键代码

Text($r('app.string.brush_width'))

主界面,设备流转:index.ets

图层管理:view/layer.ets

设置:view/setting.ets

画板界面:view/canvas.ets

3.1.3 系统镜像编译及烧录
3.1.3.1 Linux编译服务器基础环境准备

开发基础环境由windows 工作台和Linux 编译服务器组成。windows 工作台可以通过samba 服务或ssh 方式访问Linux编译服务器。其中windows 工作台用来烧录和代码编辑,Linux编译服务器用来编译OpenHarmony代码,为了简化步骤,Linux编译服务器推荐安装Ubuntu20.04。

3.1.3.2 安装和配置Python

搜狗高速浏览器截图20240326151344.png

打开Linux终端,输入如下命令,查看python版本号,需要使用python3.7以上版本,否则参考 系统基础环境搭建。

鸿蒙文档+mau123789可以直接拿取python3 --version;

安装并升级Python包管理工具。

     sudo apt-get install python3-setuptools python3-pip -ysudo pip3 install --upgrade pip
3.1.3.3 安装LLVM

下载LLVM工具。

 解压LLVM安装包至~/llvm路径下。

tar -zxvf llvm.tar -C ~/

设置环境变量。

   vim ~/.bashrc将以下命令拷贝到.bashrc文件的最后一行,保存并退出。export PATH=~/llvm/bin:$PATH

使环境变量生效。

    source ~/.bashrc
3.1.3.4 安装hc-gen

打开Linux编译服务器终端。

下载hc-gen工具。点击下载地址下载。

解压hc-gen安装包到Linux服务器~/hc-gen路径下。

tar -xvf hc-gen-0.65-linux.tar –C 

设置环境变量。

vim ~/.bashrc

将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

export PATH=~/hc-gen:$PATH

使环境变量生效。

   source ~/.bashrc
  • 安装编译依赖基础软件(仅Ubuntu 20+需要)
  sudo apt-get install build-essentialsudo apt-get install gccsudo apt-get install g++sudo apt-get install make sudo apt-get install zlibsudo apt-get install libffi-dev
.1.3.5 源码下载&&编译准备

环境搭完后,就该准备代码了。

下载repo

curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repochmod a+x /usr/local/bin/repopip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
3.1.3.6 下载OpenHarmony源码和编译
  • 代码下载

ssh方式:

repo init -u ssh://git@gitee.com/openharmony-is/manifest.git -b master -m devboard_rk3399.xml --no-repo-verify

http方式:

repo init -u  https://gitee.com/openharmony-is/manifest.git -b master -m devboard_rk3399.xml --no-repo-verify
repo sync -crepo forall -c 'git lfs pull'bash build/prebuilts_download.sh
  • 打patch
bash device/rockchip/product/patch.sh
  • 编译
./build.sh --product-name rk3399 –ccache
  • 编译结果

编译产生boot.img在目录out/KERNEL_OBJ/kernel/src_tmp/linux-4.19 中。

编译产生vender.img、system.img 和userdata.img 在目录

out/rk3399/packages/phone/images 中。

3.1.3.7 烧录
  • 系统环境

window7/windows10。

  • 驱动安装包

瑞芯微软件助手安装包,需解压安装。

  • 烧录工具

瑞芯微开发工具。

  • 烧录镜像

debian_update.img。

  • 烧录前准备
  1. 拿到开发板后,第一次烧录OpenHarmony系统前,要先进行整体擦除后,对系统分区,再烧录镜像。
  2. 擦除flash
  3. 点击升级固件按钮。
  4. 选择固件。
  5. 打开并选择烧录镜像。
  • 进入烧录模式

    擦除flash前,要先使板子进入烧录模式,方法如下:

  1. 板子上电。
  2. 板子在烧录OpenHarmony系统前,如果有其他系统,上电后会显示发现一个ADB设备。
  3. 先长按uboot按钮,再按一次reset按钮后松开,等待板子显示“发现一个LOADER设备”,板子进入烧录模式。
  4. 点击擦除flash按钮,开始擦除。

擦除完成后,显示如下:

  • 第一次烧录

    第一次烧录OpenHarmony系统,要先加载全部镜像。

    进入下载镜像页面。

    在空白处点击右键,选择导入配置,选择ohos.cfg。

    导入配置表后如下图所示

  • 烧录OpenHarmony镜像

​ 烧录OpenHarmony镜像,只需选中boot、vendor、system、userdata,其他分区不选中。

​ boot、vendor、system和userdata对应的是编译出的img

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

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

相关文章

【Entity Framework】如何使用EF中的生成值

【Entity Framework】如何使用EF中的生成值 文章目录 【Entity Framework】如何使用EF中的生成值一、概述二、默认值三、计算列四、设置主键五、显示配置值生成六、设置日期/时间值生成6.1 创建时间戳6.2 更新时间戳 七、替代值生成八、无值生成九、总结 一、概述 数据库列的值…

【网站项目】校园订餐小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

软考121-上午题-【软件工程】-敏捷方法

一、敏捷方法 敏捷开发的总体目标是通过“尽可能早地、持续地对有价值的软件的交付”使客户满意。通过在软件开发过程中加入灵活性,敏捷方法使用户能够在开发周期的后期增加或改变需求。 敏捷过程的典型方法有很多,每一种方法基于一套原则,这…

国家统计局行政区划获取及入库ES实践

我们先看下最终效果: 1. ES索引新建 PUT administrative_division {"mappings": {"properties": {"province": {"type": "keyword"},"province_code": {"type": "keyword"},&q…

【前端Vue】Vue3+Pinia小兔鲜电商项目第5篇:整体认识和路由配置,本资源由 收集整理【附代码文档】

Vue3ElementPlusPinia开发小兔鲜电商项目完整教程(附代码资料)主要内容讲述:认识Vue3,使用create-vue搭建Vue3项目1. Vue3组合式API体验,2. Vue3更多的优势,1. 认识create-vue,2. 使用create-vue创建项目,1. setup选项的写法和执行…

mobaXterm使用密钥免密登录服务器,并且在Vscode中使用ppk密钥进行远程连接

本文介绍在mobaXterm上免密登录的过程,并且在vscode中也免密登录服务器。 1. mobaXterm免密登录服务器 需要首先说明的是,mobaXterm里有一个记住密码的功能。如果你只是不想手动输入密码,大多数情况下使用这一功能即可。 这里介绍的情况是…

今天讲讲MYSQL数据库事务怎么实现的!

目录 什么是数据库事务 Mysql如何保证原子性 Mysql如何保证持久性 MySQL怎么保证隔离性 事务隔离级别 脏读的解决 不可重复读的解决 幻读的解决 MVCC实现 Read View 那么RC、RR级别下的InnoDB快照读有什么不同? 什么是数据库事务 数据库事务是指一组数据…

vs2017离线安装(配合QT5.9.2使用)

以vs2017_Professional版本为例: 一、下载安装包vs2017_Professional.exe(在线安装包即可) 二、创建在目录:C:\vs2017_Professional_Package,把vs2017_Professional.exe放在该目录下。 ID: Microsoft.Vis…

一文了解AI边缘计算盒子是什么产品设备

大家听说过AI边缘计算盒子吗?不知道你有没有注意到,最近这款产品设备在科技圈内可是火得不要不要的!那么,它究竟是什么东西呢?别着急,小编我今天就来给大家揭晓。 边缘计算盒子是什么? 边缘计算盒子是一种…

算法与程序设计(实验2)----分治法求最近点对问题

一.实验目的 掌握分治法思想。学会最近点对问题求解方法。 二、实验内容 1. 对于平面上给定的N个点,给出具有最短距离的两点。 2. 要求随机生成N个点的平面坐标,应用蛮力法编程计算出所有点对的最短距离。 3. 要求随机生成N个点的平面坐…

Linux LVM磁盘扩容

1、查看磁盘情况 df -h df -h2、查看逻辑卷 lvdisplay lvdisplay3、查看逻辑组 vgdisplay vgdisplay4、查看物理卷 pvdisplay pvdisplay5、查看磁盘 fdisk -l fdisk -l6、磁盘分区fdisk /dev/磁盘名 # 上一步查看到的新硬盘路径 fdisk /dev/vdb7、格式化磁盘mkfs -t ext4…

KaiwuDB 数据库故障诊断工具详解

数字化时代,数据是企业最宝贵的资产之一。然而,随着数据量的增长,数据库管理的复杂性也在不断上升。数据库故障可能导致业务中断,给公司带来巨大的财务和声誉损失。在本篇博客中,我们将分享 KaiwuDB 是如何设计故障诊断…

ssm038汽车养护管理系统+jsp

汽车养护管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本汽车养护管理系统就是在这样的大环境下诞生,其可以帮助管理者在短…

MySQL——全文检索

不是所有的数据表都支持全文检索 MySQL支持多种底层数据库引擎,但是并非所有的引擎支持全文检索 ,目前最常用引擎是是MyISAM和InnoDB;前者支持全文检索,后者不支持。 booolean模式操作符 实验: 表productnotes &…

SQL Server详细安装使用教程

1.安装环境 现阶段基本不用SQL Server数据库了,看到有这样的分析话题,就把多年前的存货发一下,大家也可以讨论看看,思路上希望还有价值。 SQL Server 2008 R2有32位版本和64位版本,32位版本可以安装在Windows XP及以上…

《QT实用小工具·二十》存款/贷款计算器

1、概述 源码放在文章末尾 该项目实现了用于存款和贷款的计算器的功能&#xff0c;如下图所示&#xff1a; 项目部分代码如下&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJ…

【13137】基于TQM的人力资源管理

目录 1.单选题 2.多选题 3.名词解释题 4.简答题 1.单选题

【智能算法应用】灰狼算法求解TSP问题

目录 1.算法原理2.TSP数学模型3.结果展示4.参考文献 1.算法原理 【智能算法】灰狼算法&#xff08;GWO&#xff09;原理及实现 2.TSP数学模型 旅行商问题&#xff08;TSP&#xff09;是一种著名的组合优化问题&#xff0c;它涉及寻找给定一组城市及其之间的距离或成本&#…

C语言中的字符与字符串:魔法般的函数探险

前言 在C语言的世界里&#xff0c;字符和字符串是两个不可或缺的元素&#xff0c;它们像是魔法般的存在&#xff0c;让文字与代码交织出无限可能。而在这个世界里&#xff0c;有一批特殊的函数&#xff0c;它们如同探险家&#xff0c;引领我们深入字符与字符串的秘境&#xff0…

【算法】哈希表

个人主页 &#xff1a; zxctscl 如有转载请先通知 题目 1. 1. 两数之和1.1 分析1.2 代码 2. 面试题 01.02. 判定是否互为字符重排2.1 分析2.2 代码 3. 217. 存在重复元素3.1 分析3.2 代码 4. 219. 存在重复元素 II4.1 分析4.2 代码 5. 49. 字母异位词分组5.1 分析5.2 代码 1. 1…