0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony南向开发案例:【分布式画板】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-04-12 14:40 次阅读

一.概述

本应用是基于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 -y
     sudo 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-essential

  sudo apt-get install gcc

  sudo apt-get install g++

  sudo apt-get install make 

  sudo apt-get install zlib

  sudo apt-get install libffi-dev
.1.3.5 源码下载&&编译准备

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

下载repo

curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo

chmod a+x /usr/local/bin/repo

pip3 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 -c
   			
repo 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

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    57

    文章

    2392

    浏览量

    43028
  • OpenHarmony
    +关注

    关注

    25

    文章

    3744

    浏览量

    16536
收藏 人收藏

    评论

    相关推荐

    OpenHarmony分布式开发前奏

    分布式软总线是手机、平板、智能穿戴、智慧屏、车机等分布式设备的通信基座,为设备之间的互联互通提供了统一的分布式通信能力,为设备之间的无感发现和零等待传输创造了条件。开发者只需聚焦于业务
    的头像 发表于 12-01 14:14 1298次阅读
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>分布式</b><b class='flag-5'>开发</b>前奏

    OpenHarmony开发案例:【分布式遥控器】

    分布式遥控器将手机的输入能力和电视遥控器的遥控能力结合为一体,从而快速便捷操控电视。
    的头像 发表于 04-16 16:44 995次阅读
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>开发案</b>例:【<b class='flag-5'>分布式</b>遥控器】

    OpenHarmony南向开发实例:【游戏手柄】

    基于TS扩展的声明开发范式编程语言,以及OpenHarmony分布式能力实现的一个手柄游戏。
    的头像 发表于 04-17 10:21 818次阅读
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>南向</b><b class='flag-5'>开发</b>实例:【游戏手柄】

    OpenHarmony 2.2 Beta2 版本发布,具备典型的分布式能力和媒体类产品开发能力

    OpenHarmony 具备了典型的分布式能力和媒体类产品开发能力。即日起,全球开发者可通过 Gitee 和镜像站点下载完整代码(https://gitee.com/
    发表于 08-09 15:15

    OpenHarmony分布式软总线流程分析

    OpenHarmony分布式软总线流程分析,大神总结,大家可以下载去学习了~.~
    发表于 11-19 15:56

    基于润和DAYU200开发套件的OpenHarmony分布式音乐播放器

    :参考DevEco Studio(OpenHarmony)使用指南搭建OpenHarmony应用开发环境、并导入本工程进行编译、运行。运行结果截图:【分布式流转体验】硬件准备:准备两台
    发表于 03-14 09:07

    OpenHarmony标准设备应用开发(三)——分布式数据管理

    (以下内容来自开发者分享,不代表 OpenHarmony 项目群工作委员会观点)邢碌上一章,我们通过分布式音乐播放器、分布式***、分布式
    发表于 04-07 18:48

    【学习打卡】OpenHarmony分布式任务调度

    之前我们分享过分布式软总线和分布式数据管理,今天主要说一下OpenHarmony分布式任务调度,分布式任务调度是建立在
    发表于 07-18 17:06

    开发样例】OpenHarmony分布式购物车

    设计OpenHarmony技术特性eTS UI分布式调度分布式数据管理3.支持OpenHarmony版本OpenHarmony 3.0 LT
    发表于 07-29 14:17

    OpenHarmony 分布式硬件关键技术

    的视频会议;在影音娱乐场景下,能够轻松地把手机音视频放到电视和音箱上播放,还可以让家里的灯光自动跟随电影和音乐进行变化,实现非常震撼的家庭影院的效果。 期待越来越多的开发者参与OpenHarmony的生态中来,共同研究和探讨分布式
    发表于 08-24 17:25

    分布式系统硬件资源池原理和接入实践

    提供更好的服务体验。 图 3 鸿蒙硬件资源池支持各类消费者场景 2.2 开发者场景 对于开发者来说,由于分布式硬件资源池将跨设备硬件调用的复杂度都封装在了系统底层,跨设备硬件复用本地硬件的 API
    发表于 12-06 10:02

    基于OpenHarmony分布式应用开发框架使用教程

    电子发烧友网站提供《基于OpenHarmony分布式应用开发框架使用教程.zip》资料免费下载
    发表于 04-12 11:19 9次下载

    OpenHarmony技术论坛:分布式相机和分布式图库功能

    OpenHarmony Tech Day·技术日》 技术论坛 新增分布式相机和分布式图库功能 相比OpenHarmony 3.0版本,OpenHa
    的头像 发表于 04-25 15:06 1882次阅读
    <b class='flag-5'>OpenHarmony</b>技术论坛:<b class='flag-5'>分布式</b>相机和<b class='flag-5'>分布式</b>图库功能

    分布式数据对象的产生背景、原理及开发案

    在3月底发布的OpenHarmony v3.1 Release版本中,新增了分布式数据对象特性。什么是分布式数据对象呢?本期就让我们一起来了解一下。
    的头像 发表于 04-27 15:01 1268次阅读
    <b class='flag-5'>分布式</b>数据对象的产生背景、原理及<b class='flag-5'>开发案</b>例

    OpenHarmony知识赋能No.29-DAYU200分布式应用开发

    OpenHarmony标准系统北向开发高手。   嘉宾介绍: 徐建国 资深技术专家(江苏润开鸿数字科技有限公司)   课程内容: 1.OpenHarmony分布式API介绍 a.
    的头像 发表于 05-04 09:57 866次阅读
    <b class='flag-5'>OpenHarmony</b>知识赋能No.29-DAYU200<b class='flag-5'>分布式</b>应用<b class='flag-5'>开发</b>