Harmony 应用开发的知识储备

Harmony 应用开发的知识储备

  • 前言
  • 正文
    • 一、DevEco Studio版本
    • 二、手机版本
      • ① 环境变量
    • 三、API版本
    • 四、开发语言
    • 五、运行调试

前言

  这里先说明一点,如果你对Android应用开发很熟悉,那么做Harmony应用开发也可以驾轻就熟,只不过在此之前你需要知道一些关于Harmony应用开发的相关知识。

正文

  那么问题就来了,我为什么会知道这些相关的知识点呢?因为踩过一遍坑了,说多了都是泪,唯有文字记录,当然了不同应用开发会踩不同的坑,这是无可厚非,开发的越多知道的就越多,不知道的也越多,因此本文会持续更新。闲话少说,我们进入正题。

一、DevEco Studio版本

  首先要了解Harmony应用开发的开发工具DevEco Studio

在这里插入图片描述

  首先你可以下载DevEco Studio,下载地址,安装DevEco Studio,参看这个视频:演示视频,观看这个视频可能需要华为账号,如果没有的话你先注册一个,关于DevEco Studio的版本也是持续更新的,它是基于IDEA进行二次开发的,如果Android Studio一样。当前最新的版本是DevEco Studio 3.1

二、手机版本

  做Harmony应用开发如果在真机上时,我们需要了解的是鸿蒙手机的版本,这里的版本不是鸿蒙几点零版本,而是指的是开发API版本,这一点就很重要了,至于为什么,后面我再细说,那么我们怎么查看鸿蒙手机的API版本呢?通过环境变量配置工具就可以了。

① 环境变量

  首先进入系统的环境变量页面,在系统变量下新增一个变量,如下图所示:

在这里插入图片描述

变量名:HUAWEI_SDK
变量值:C:\Huawei\Sdk\hmscore\3.1.0\toolchains

需要注意的是你所安装的编辑器路径,上图是我的路径,你要使用自己的路径,其中3.1.0表示的是sdk的版本,最新的就是3.1.0。配置好之后点击确定,然后在系统变量下找到Path变量,点击编辑。

在这里插入图片描述
然后点击新建,输入%HUAWEI_SDK%,点击确定,一路确定。下面我们Win + R打开运行窗口,输入cmd,打开命令行窗口。

输入hdc

在这里插入图片描述

  出现如图所示,说明环境变量配置成功了,只不过现在你的电脑没有连接鸿蒙设备,所以显示No any target,下面我们打开鸿蒙手机的开发者模式,然后通过数据线连接电脑,如果手机上出现一个调试弹窗,勾选上,然后你再输入hdc -v。

  查看手机API版本,首先进入hdc shell模式,如同adb shell

hdc shell

查看手机的API版本

getprop hw_sc.build.os.apiversion

查看手机的版本类型,一般都是Relase。

getprop hw_sc.build.os.releasetype

在这里插入图片描述

通过查询可以得知我的HUAWEI P30是API 6的Release版本。

如果上面的指令查不到,你可以使用

getprop persist.sys.ohc.apiversion

getprop persist.sys.ohc.releasetype

这是在高版本API的情况下使用的指令,如果你觉得麻烦那就这样。

if [ -z $(getprop persist.sys.ohc.apiversion) ];then
echo $(getprop hw_sc.build.os.apiversion)
echo $(getprop hw_sc.build.os.releasetype)
else
echo $(getprop persist.sys.ohc.apiversion)
echo $(getprop persist.sys.ohc.releasetype)
fi

在hdc shell之后,你把这段代码复制过去,然后回车,就会看到6和Release。

三、API版本

  上面我们费尽心思去获取鸿蒙手机的API版本的目的是为了什么呢?

编译SDK版本API版本开发语言
3.1.09ArkTS
3.0.08ArkTS、JS
3.0.07JS、Java
2.2.06JS、Java
2.1.05JS、Java
2.0.04JS、Java

  通过上表我们可以了解到DevEco Studio的编译SDK版本,支持的API版本和开发语言,至于更早的API版本其实知不知道没有太大关系,因为现在基本上最低都是Harmony2.0了,普遍是3.0,比如我目前用的测试机,HUAWEI P30 就是之前从2.0升到3.0,不知道还有没有机会升级到4.0。

  目前HarmonyOS属于高速发展的阶段,每一个版本的更新内容都很多,一些功能也会逐步开放,如果如果你有条件的话,弄一个高版本API的手机,会让你开发起来事半功倍,因为你现在看到的Harmony官网主推的是ArkTS,兼容性也会越来越好,未来可能就是ArkTS是唯一支持语言了,而且论坛上的信息最新的也是ArkTS,至于Java相关的都是21年的了,而且很多不维护了。首先你要知道你的手机API版本,不然你到时候看了半天ArkTS,然后发现调试的时候用不了,还是得用Java或JS,这就是我说的坑。

四、开发语言

  开发语言首先要看你的兼容性了,这里就有一个坑,那就是API版本兼容的问题,比如你买了一个Mate 60 Pro遥遥领先,虽然它是HarmonyOS4.0,然后你通过hdc查看API版本可能会是 8 ,而不是 9 。而我的测试机P30是 6 ,那么如果我创建一个API 9的工程进行开发,是无法在P30上进行真机调试的,因为版本不兼容,所以我就用不了ArkTS语言进行开发。就需要创建符合手机API版本的工程来进行开发,比如API 6,如下图所示。

在这里插入图片描述

高版本API的鸿蒙手机是可以在低版本API工程上进行编译的,就是我现在创建一个API 6 的工程,然后真机调试同事的Mate 40 Pro,是可以的。

五、运行调试

  当我们创建好一个工程之后,要想运行,首先要做的就是配置Debug相关信息,这个是和iOS有点类似,你可以点击DevEco StudioFile → Project Structure。如果你是一个新项目的话,这里可能就会需要你登陆一下华为账号,然后你在能进入Signing Configs进行本地Debug的证书配置。

在这里插入图片描述

当这个页面出现下面的信息之后你就可以在本地Debug运行调试了。

在这里插入图片描述

你可以勾选上Automatically generate signature项目,让编辑器可以在之后的开发中自动根据你的更改内容同步更改这些配置。

同时在编译安装过程中,DevEco Studio默认每一次都会卸载你之前安装的应用然后再安装,之前的应用数据不会保留,如果你不希望这样。可以进入Run → Edit Configurations...

在这里插入图片描述

勾选上Keep Application Data,这样就会覆盖安装应用了。

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

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

相关文章

TensorFlow学习笔记--(2)张量的常用运算函数

张量的取值函数 求张量的平均值: tf.reduce.mean(%张量名%)求张量的最小值:tf.reduce_min(%张量名%)求张量的最大值:tf.reduce_max(%张量名%)求张量的和:tf.reduce_sum(%张量名%)其次,对于上述所有操作 都可在函数后添加一个新的参数 axis%维度% axis0 代表第一维度 axis1 代表…

无人机航迹规划:五种最新智能优化算法(COA、SWO、KOA、GRO、LO)求解无人机路径规划MATLAB

一、五种算法(LSO、SWO、KOA、GRO、LO)简介 1、小龙虾优化算法COA 小龙虾优化算法(Crayfsh optimization algorithm,COA)由Jia Heming 等人于2023年提出,该算法模拟小龙虾的避暑、竞争和觅食行为&#xf…

springboot整合ELK

ELK是一种强大的分布式日志管理解决方案,它由三个核心组件组成: Elasticsearch:作为分布式搜索和分析引擎,Elasticsearch能够快速地存储、搜索和分析大量的日志数据,帮助用户轻松地找到所需的信息。 Logstash&#xff…

Android 12.0 内置MTK平台音乐播放器

Android 12.0 内置MTK平台音乐播放器 Android 12.0 默认是无MTK平台自带音乐播放器的,系统内置MTK平台自带的音乐播放器的具体修改参照如下: /device/pj/common/device.mk PRODUCT_PACKAGES Music PRODUCT_PACKAGES OP01Music 重新编译验证&#x…

浅谈工厂电能管理系统改造与产品选型

叶根胜 安科瑞电气股份有限公司 上海嘉定202001 摘要:随着经济的快速发展,能源紧张和环境恶化引起了全世界的密切关注。电能在所有能源中消耗量大,但不可或缺,因此对电能的统一管理尤为重要。只有准确可靠的计量电能、分级管理和…

物奇平台耳机宕机恢复功能实现

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,群赠送语音信号处理降噪算法,蓝牙音频,DSP音频项目核心开发资料, 物奇平台耳机宕机恢复功能实现 一 需求与场景 1 使…

QWidget 实现九宫格图案解锁

前言 最近需要实现一个九宫格图案解锁功能,查看网上的方案,基于QWidget的方案全网搜来搜去就一篇 Qt编写自定义控件:图案密码锁, 都是炒来炒去的同一篇,代码还比较复杂,运行后在PC端还是可以的,但是运行在arm机器上,就卡顿,或者容易断开手势连接线,各种不友好,于是自…

设计模式类型

创建型模式 创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节,使整个系…

vue乾坤微前端项目

1、主应用 安装乾坤 npm i qiankun -S 注册微应用并启动: import { registerMicroApps, start } from qiankun;//设置两个微应用 registerMicroApps([{name: vue1, //要跟package.json中的name保持一致entry: //localhost:8081, //本地就这么写container: #cont…

双11狂欢最后一天

大家好,本年度双11即将到来,为了答谢大家多年来的支持及更广泛的推广VBA的应用,“VBA语言専功”在此期间推出巨大优惠:此期间打包购买VBA技术资料实行半价优惠。 1:面向对象:学员及非学员 2:打…

另辟蹊径者 PoseiSwap:背靠潜力叙事,构建 DeFi 理想国

前不久,灰度在与 SEC 就关于 ETF 受理的诉讼案件中,以灰度胜诉告终。灰度的胜利,也被加密行业看做是加密 ETF 在北美地区阶段性的胜利, 该事件也带动了加密市场的新一轮复苏。 此前,Nason Smart Money 曾对加密市场在 …

时序预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost时间序列预测

时序预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost时间序列预测 目录 时序预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.Matlab实现SVM-Adaboost时间序列预测(风…

C/C++ 动态内存管理(内存是如何分布的?malloc/new,free/delete的用法是什么?区别是什么?)

目录 一、前言 二、C/C中的内存分布 💦了解内存区域的划分 💦内存存储区域的对比和注意点 💦内存管理的常考面试题 三、C语言的动态管理方式 四、C的动态管理方式 💦new / delete 操作内置类型(int,char.....&…

【EI会议征稿】第八届先进能源科学与自动化国际研讨会(AESA 2024)

第八届先进能源科学与自动化国际研讨会(AESA 2024) 2024 8th International Workshop on Advances in Energy Science and Automation 继AESA 2017-2023相继成功举办之后,来自国内外多所高校、科研院所及企业代表在先进能源科学与自动化的科研合作和交流…

【OpenCV】用数组给Mat图像赋值,单/双/三通道 Mat赋值

文章目录 5 Mat赋值5.1 Mat(int rows, int cols, int type, const Scalar& s)5.2 数组赋值 或直接赋值5.2.1 3*3 单通道 img5.2.2 3*3 双通道 img5.2.3 3*3 三通道 img5 Mat赋值 5.1 Mat(int rows, int cols, int type, const Scalar& s) Mat m(3, 3, CV_8UC3,Scalar…

物奇平台耳机关机功能实现

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙音频,DSP音频项目核心开发资料, 物奇平台耳机关机功能实现 一需求与场景考虑 1 在盒子外,低电关机(电量小于等于2%), 2 在充…

Qt读取xml文件并把内容显示到QTableview上

本例子中把xml文件作为数据库表。 xml文件名作为函数参数,把不同的xml文件名传入函数,会显示不同的文件内容。 以下为代码: void MainWindow::ShowContent(QString FileName) {LoadXmlContent(FileName);ShowContentInView();}bool MainWi…

Leetcode_3:无重复字符的最长子串

题目描述: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s "bbbbb"…

小程序版本审核未通过,需在开发者后台「版本管理—提交审核——小程序订单中心path」设置订单中心页path,请设置后再提交代码审核

小程序版本审核未通过,需在开发者后台「版本管理—提交审核——小程序订单中心path」设置订单中心页path,请设置后再提交代码审核 因小程序尚未发布,订单中心不能正常打开查看,请先发布小程序后再提交订单中心PATH申请 初次提交…

强化IP地址管理措施:确保网络安全与高效性

IP地址管理是网络安全和性能管理的关键组成部分。有效的IP地址管理可以帮助企业确保网络的可用性、安全性和高效性。本文将介绍一些强化IP地址管理的关键措施,以帮助企业提高其网络的安全性和效率。 1. IP地址规划 良好的IP地址规划是强化IP地址管理的基础。它涉及…