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

打开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://[email protected]/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

相关推荐
__Benco4 小时前
OpenHarmony子系统开发 - 热管理(一)
人工智能·harmonyos
HMS Core5 小时前
鸿蒙版小红书如何让图库访问完全由“你”掌控
安全·华为·harmonyos
SuperHeroWu75 小时前
【HarmonyOS 5】鸿蒙中如何使用MQTT
mqtt·华为·harmonyos
环信即时通讯云7 小时前
环信鸿蒙版 UIKit 快速上手指南
华为·harmonyos
鸿蒙布道师10 小时前
鸿蒙NEXT开发资源工具类(ArkTs)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
别说我什么都不会10 小时前
OpenHarmony 实战开发—— IPC与RPC通信
rpc·harmonyos
二十秒的勇气12 小时前
HarmonyOS:HMPermission权限请求框架
华为·harmonyos
DyLatte12 小时前
程序员如何应对职业生涯的不确定性
程序员
HarmonyOS_SDK12 小时前
页面加载提速37.9%,“凯叔讲故事”做了什么
harmonyos
葱段13 小时前
【Harmony】ArkUI全局设置窗口背景颜色、页面背景颜色
harmonyos·arkts·arkui