氐宿-基于OpenHarmony成长计划知识赋能的学习笔记(3) 原创 精华
Start Time: 27 January,2022
Author: Hairtail
Location: Gao Xing
OpenHarmony北向应用开发介绍
梁皓老师
Part 1:鸿蒙相关的介绍
-
HUAWEI DevEco Studio(以下简称DevEco Studio)是基于IntelliJ IDEA Community开源版本打造,面向华为终端全场景多设备的一站式集成开发环境(IDE)。
-
IDE:DevEco Studio (支持HarmonyOS和OpenHarmony都可以)
- 界面跟android studio很类型,因为都是基于idea开源版本改的
-
智慧生态为什么目前为止没有得到体验呢,因为很难如:
-
技术:
- 跨设备的动态迁移
- 跨设备的接口调用
-
核心:安卓厂商可以自行开发相应的接口和功能,但无法让其他厂商也进行适配和使用
-
-
鸿蒙的系统可以运行在很小的设备上,满足分布式能力,让无屏变有屏
-
鸿蒙三大能力解释:
- 分布式软总线解决了设备从:发现-连接-健全-认证-物理通道选择-逻辑通道保障。把设备之间通讯的障碍都打通了,并以自动的方式实现通讯质量。
- 分布式任务调度保障分布式安全
- 分布式数据管理解决了不同设备之间信息实时同步的问题,性能高。(三大技术)
- 分布式文件系统
- 分布式数据库
- 分布式检索
-
新理念:用软件定义硬件
-
安装IDE后会自动下载SDK,如果有需要就对应下载所需要的SDK即可
- 为什么我们要按照Java SDK 其中的一个原因是我们在进行签名的时候,用到了Java SDK中的一个工具。
- SDK Manager
Part 2:DevEco Studio 3.0.0.800安装eTS 3.0.0.0踩坑(镜像导致)
这部分为自己补充的,非老师和PPT讲的
关于IDE自己遇见的一个坑
1.安装SDK(API Version 7 -eTS 3.0.0.0 )
安装失败:
复制链接点击进入:给的是JS SDK安装失败处理指导,清理缓存cache
npm cache clean -f
发现还是不行:然后阅读日志:
看不出啥具体问题:然后我们看完整日志:
使用淘宝镜像就变成了愚蠢的pacote标签清单:
我怀疑是淘宝镜像的问题:
1.删除淘宝镜像,安装华为的镜像
发现还是出问题。
2.删除淘宝镜像,删除华为镜像
【添加华为镜像】
npm config set registry http://mirrors.tools.huawei.com/npm/
【添加淘宝镜像】
npm config set registry https://registry.npm.taobao.org/
【移除镜像】
npm config rm registry +对应已添加的镜像
总结:以后遇见这种问题:
- 第一动作就是CMD清理cache
- 第二动作就是更换镜像,淘宝,华为挨着试一试
- 第三动作就是把镜像都删掉,换成自带的
2.汉语插件
- 因为才下载的IDE是全英文的,对于特别新手的开发者有一些困难,但我们可以通过插件实现汉化。
- 最终效果:
- 插件安装步骤:
- (1)打开插件市场:File-settings(设置)->Plugins(插件)
- (转圈圈很久是正常的,多等等就行,实在不行就算重新进入settings再试试)
- (2)安装中文语言包然后重启IDE即可
Part 3;相关干货与细化讲解
- OpenHarmony&HarmonyOS支持情况对比
特性名称 | HarmonyOS****版本 | OpenHarmony****版本 |
---|---|---|
创建Module | √ | X |
服务卡片 | √ | X |
自动化签名 | √ | X |
远程模拟器 | √ | X |
本地模拟器 | √ | X |
使用DevEco Studio运行调试、日志查看、调优 | √ | X |
云测试 | √ | X |
安全测试 | √ | X |
- 开发语言:直播中推荐JS语言(高效率,高性能,语言生态成熟),从命令式UI框架->声明式UI框架(TS/JS)效率提高百分之三十。并且提出了ArkUI框架:面向跨端应用前端开发。
关于开发语言这里推荐李传钊老师的理解:
文章的创意观点:
鸿蒙团队需要明确引导开发者的技术路线。
摘取文章中的部分论述:
JS:优势是学习成本低,发展势头猛;缺点是性能有天花板,不擅长处理数据,语法也比较随意。
Java:优势是目前受众最广的语言,而且已经在安卓取得成功;缺点在于本身并不擅长做界面,虚拟机,JNI也一直被诟病,同时可能存在致命的法律风险。
新语言(可能叫仓颉Char):优势是可以重新设计,取长补短,同时有利于建立独立的生态;劣势在于需要付出很大的精力去推广,发展成熟也需要一定的时间,与鸿蒙的节奏未必对得上。
-
创建OpenHarmony工程
- 1.新建项目,设置包名选择语言
- 2.应用签名有四个文件,生成秘钥和证书请求文件,填写相应的信息,最后会生成对应的文件
密钥:格式为
.p12
,包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,公钥和私钥对用于数字签名和验证。证书请求文件:格式为
.csr
,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息。数字证书:格式为
.cer
,通过OpenHarmony SDK自主生成。Profile文件:格式为
.p7b
,通过OpenHarmony SDK自主生成。包含HarmonyOS应用的包名、数字证书信息、描述应用允许申请的证书权限列表,每个应用包中均必须包含一个Profile文件。-
2.1通过IDE里图形页面生成(最好用这个)
-
2.2通过命令行的方式生成(这个方式最好看PPT)
-
【1】 keytool -genkeypair -alias "harmony" -keyalg EC -sigalg SHA256withECDSA -dname "C=CN,O=SHENKAIHONG,OU=SHENKAIHONG IDE,CN=harmony" -keystore d:\\p12.p12 -storetype pkcs12 -validity 9125 -storepass qaz123456 -keypass qaz123456 【2】 keytool -certreq -alias "harmony" -keystore d:\\p12.p12 -storetype pkcs12 -file d:\\csr.csr 【3使用自主生成的证书请求文件,来生成应用签名所需的数字证书文件】 【注意:-infile 指定证书请求文件csr文件路径-outfile 指定输出证书文件名及路径 】 keytool -gencert -alias "OpenHarmony Application CA" -infile csr.csr -outfile cer.cer -keystore OpenHarmony.p12 -sigalg SHA384withECDSA -storepass 123456 -ext KeyUsage:"critical=digitalSignature" -validity 3650 -rfc 【4生成Profile文件】 java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --out p7b.p7b --keystore OpenHarmony.p12 --storepass 123456 --alias "OpenHarmony Application Profile Release" --sigAlg SHA256withECDSA --cert OpenHarmonyProfileRelease.pem --validity 365 --developer-id ohosdeveloper --bundle-name 包名 --permission 受限权限名(可选) --distribution-certificate cer.cer
-
接下来还会有:编译构建Hap包&安装
-
开发流程对比:
-
实操:
-
1.建立项目
-
2.进入到OpenHarmony对于的SDK目录下:
- 我的:C:\Users\iamda\AppData\Local\OpenHarmony\Sdk
- 在哪里看:
- toolchains\lib运行命令行(直接在搜索框内输入cmd即可)
- 3.2:
- 把这两个文件复制到lib目录下:
- 3.3生成cer
- 3.4生成profile(–permission 受限权限名(可选)先去掉、包名在config.json里找)
- 3.5在项目中创建Key文件夹,把才生成的四个文件挪到Key目录下
- 点击确定(密码就是之前命令行中的密码)
- 最后一步选择release
-
3.编译构建Hap包&安装
- 构建成功:
Part 4:查看文档
-
进入文档-选择中文:
-
强调:开发参考
入门宝典,必须支持!