开始
学习一个东西,特别是类似的东西,大家往往都会触类旁通,华为的DevEco
Studio这波骚操作,基于IDEA的社区版开发的编辑器,无不让Android开发者倍感亲切,抛开一些负面的评论,站在巨人肩膀上面确实可以看的更高走得更远,这是一种发展战略,咱们也不懂,不做深究。
好了,回归正题,学习一项新的技能,我们可以触类旁通,就像画画一样,从一开始从头开始画起,到后来从画骨架开始,这就是所谓的画皮先画骨,都会摸索出自己的一套套路来,就从笔者的下面的几个套路开始。
开发工具SDK下载
工欲善其事必先利其器,先从开发工具入手。
找到下载地址
HUAWEI DevEco Studio产品页
安装就不用说了吧,毕竟一直下一步就对了,最后重启
先创建一个手表应用
点击 Create HarMonyOS Project
这里如果之前就安装了SDK的话,直接下一步即可,和AS几乎一摸一样。
安装SDK
Ctrl+Shfit+S 一个是SDK,一个是Jar点完OK,休息一下等下载完成即可。
安装模拟器
这一步就要华为开发者和实名认证
双击
看样子是个远程调试窗口~
Demo
华为账号实名认证
华为账号快速认证,推荐使用银行卡,秒过。不用想怎么绕开了,最终上架的时候还是要搞的。
开发语言解析
结构
类 | 理解 | 功能 |
---|---|---|
MainAbility | MainActivity | 容器 |
MainAbility | LayoutInflater | 填充器 |
MyApplication | Application | 贯穿生命周期管理类 |
语言
当然使用Java啦,我们看看代码。
public class MainAbility extends Ability {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
//设置一个路由,对应的找到MainAbilitySlice 看到是一个填充布局类
super.setMainRoute(MainAbilitySlice.class.getName());
}
}
public class MainAbilitySlice extends AbilitySlice {
//这就个AndroidXML 代码填充几乎一致
private DirectionalLayout myLayout = new DirectionalLayout(this);
@Override
public void onStart(Intent intent) {
super.onStart(intent);
LayoutConfig config = new LayoutConfig(LayoutConfig.MATCH_PARENT, LayoutConfig.MATCH_PARENT);
myLayout.setLayoutConfig(config);
ShapeElement element = new ShapeElement();
element.setRgbColor(new RgbColor(128, 128, 128));
myLayout.setBackground(element);
Text text = new Text(this);
text.setLayoutConfig(config);
text.setText("Hello World");
text.setTextColor(new Color(0xFF000000));
text.setTextSize(50);
text.setTextAlignment(TextAlignment.CENTER);
myLayout.addComponent(text);
super.setUIContent(myLayout);
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
}
另外Ctrl+O 我们可以看到OnStop等生命周期方法,点击事件以及我们熟悉的findComponetById方法.
更多的API
当然上面只是做了一关于布局和界面的API,更多的API请查看官方开发文档
打包上架
开放平台目前貌似没有发布的按钮
发布鸿蒙应用
结束
个人觉得鸿蒙开发还是有一定野心的,切入点也很明确,就是利用Android的巨大成功,和庞大的生态上位。但目前社区还是较少,也没有像Manifest那样完善的配置文件,倒是和小程序很像,API也需要第一批吃螃蟹的人来尝试,总之任重而道远。PS:不要总是说人家抄袭,看看官网API就知道,还是有很多不一样的地方。