大家好,欢迎来到IT知识分享网。
开辟鸿蒙,谁为情种,都只为风月情浓
第一次知道“鸿蒙”这个词,是在《红楼梦》的开篇引子。鸿蒙,在古典文化中,表示宇宙形成前的混沌状态,意味开天辟地之前。
对于移动开发者来说,继React Native和Flutter之后,又多了一个移动开发平台与框架 – 鸿蒙OS应用开发。作为曾经的一名移动开发者,我决定尝尝鲜。
开发环境
鸿蒙OS应用开发IDE为DevEco Studio,和Android的Android Studio的一样都是基于Jetbrain IntelliJ IDE社区开源版,所以界面上几乎长得一样
和Android的不一样的是,提供Java和Javascript两种开发语言,本文将只介绍通过Java方式。由于鸿蒙开发和Android极其相似,所以会将两种移动平台进行比较讲解。
下载地址:developer.harmonyos.com/cn/develop/…
需要指出的是截止到笔者发稿,DevEco Studio只支持Windows版本,使用Mac的话只能使用Windows虚拟机。
-
下载之后,安装SDK, 在这一点上不需要进行科学上网就可以顺利下载比Android好很多
-
使用脚手架生成的项目代码
应用构建:
- 工具:gradle, 与Android一样,不过Android在推bazel构建
虚拟机
目前鸿蒙似乎没有提供本地的虚拟机,要想调试运行应用,需要注册华为开发账号,在虚拟机管理设置里面可以添加一台“远程机器”。
文件结构
entry
目录为默认module的目录,类似于Android的app
目录entry/src/main/java
为功能代码,src/test
为测试代码,与Android相同entry/src/main/resource
资源目录 与Android的src/main/res
类似entry/src/main/config.json
为项目配置代码或入口配置,类似于Android清单文件AndroidManifest.xml
, 描述了包名、申请的系统权限、入口页面等等
一些概念
- Ability: 类似于Android的activity,所以默认的Ability也叫MainAbility; 翻译成中文叫“能力”,笔者表示很confused,百思不得其解
- AbilitySlice: 有点像Android的
Fragment
,完成绑定布局 - AbilityPackage: 类似于Android的Application类
- HVD: 鸿蒙虚拟机,类似于Android的AVD
- HAP: 鸿蒙应用安装包扩展名,类似于Android的
.apk
代码示例
- MainAbility (Activity)
package cn.wangbaiyuan.blog;
import cn.wangbaiyuan.blog.slice.MainAbilitySlice;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;
public class MainAbility extends Ability {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setMainRoute(MainAbilitySlice.class.getName());
}
}
- AbilitySlice (Fragment)
package cn.wangbaiyuan.blog.slice;
import cn.wangbaiyuan.blog.data.ListHolder;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
public class MainAbilitySlice extends AbilitySlice {
private ListHolder listHolder;
@Override
public void onStart(Intent intent) {
listHolder = new ListHolder(this);
setUIContent(listHolder.createComponent());
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
}
- 布局代码,实现一个左右布局:
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:width="match_parent" ohos:height="56vp" ohos:orientation="horizontal">
<Text ohos:id="$+id:left_content" ohos:width="match_content" ohos:height="match_content" ohos:weight="1" ohos:text_alignment="center" ohos:text_size="16fp" ohos:text="left" />
<Text ohos:id="$+id:right_content" ohos:width="match_content" ohos:height="match_content" ohos:weight="1" ohos:text_alignment="center" ohos:text_size="16fp" ohos:text="right" />
</DirectionalLayout>
总结
根据上面的讲解,对于一名Android开发者来说,上手鸿蒙几乎是没有任何学习成本的。尽管里面有很浓的Android痕迹,但是我们无法以此推测鸿蒙就是Android,我们只能说它在系统API设计上借鉴了Android,以及给移动开发者一种友好的亲近感。
作为中国人,感情上希望中国的软件开发可以持续崛起,在底层技术与框架、开源氛围上能与欧美接轨。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/13865.html