HarmonyOS概述

鸿蒙系统是华为自主研发的面向全场景的分布式操作系统。能够将生活场景中各类终端进行整合,可以实现不同终端设备间的快速连接、资源共享、匹配合适设备、提供流畅的全场景体验。

技术架构

HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。

JAVA 鸿蒙开发 鸿蒙os开发_ide

开发工具

使用HUAWEI DevEco Studio 界面类似Android Studio 下载链接

JAVA 鸿蒙开发 鸿蒙os开发_Layout_02

使用方式

1.要进行开发必须要注册华为账号并实名制(身份证认证审核时间较长,最好使用银行卡实名认证)

JAVA 鸿蒙开发 鸿蒙os开发_ide_03


2. 创建应用

JAVA 鸿蒙开发 鸿蒙os开发_JAVA 鸿蒙开发_04


File->Project Structure->Project->Signing Configs 设置签名,应用才可以安装手机进行调试

JAVA 鸿蒙开发 鸿蒙os开发_ide_05


配置 AppGalleryConnect

我的项目 中添加新的项目会生成对应项目名称 ,添加包名选用代码里config.json->app-> bunldeName

JAVA 鸿蒙开发 鸿蒙os开发_xml_06


JAVA 鸿蒙开发 鸿蒙os开发_xml_07


我的应用 HarmonyOS 新建应用将刚才项目添加进去

JAVA 鸿蒙开发 鸿蒙os开发_xml_08


重新retry,可以看到签名已经成功生成,这时可以安装到设备调试

JAVA 鸿蒙开发 鸿蒙os开发_JAVA 鸿蒙开发_09


3.启动模拟器编译器支持真机调试和远程模拟器,Tool->Device Manager可以选择模拟器如下,但使用真机调试速度更快

JAVA 鸿蒙开发 鸿蒙os开发_JAVA 鸿蒙开发_10


JAVA 鸿蒙开发 鸿蒙os开发_xml_11

代码案例
目录说明

逻辑代码都保存在src目录里,MainAbility为主页面用于生命周期控制,slice为布局文件页面可以进行点击事件等逻辑开发

resources为资源目录,用于保存xml布局,文件,图片,属性配置等

JAVA 鸿蒙开发 鸿蒙os开发_ide_12

功能实现

完成页面跳转展示

MainAbilitySlice

public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        //获取按钮事件
        Button btn = (Button) findComponentById(ResourceTable.Id_btn);
        //按钮监听
        btn.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                //跳转Intent配置
                Intent intent1 = new Intent();
                Operation operation = new Intent.OperationBuilder()
                        .withDeviceId("")
                        .withBundleName("com.example.testdemo2")
                        .withAbilityName("com.example.testdemo2.SecAblility").build();
                intent1.setOperation(operation);
                startAbility(intent1);
            }
        });
    }
}

Layout_ability_main

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:alignment="center"
    ohos:orientation="vertical">
 
    <Text
        ohos:id="$+id:text_helloworld"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:background_element="$graphic:background_ability_main"
        ohos:layout_alignment="horizontal_center"
        ohos:text="$string:mainability_HelloWorld"
        ohos:text_size="40vp"
        />
 
    <Button
        ohos:id="$+id:btn"
        ohos:text="按钮"
        ohos:text_size="30vp"
        ohos:height="match_content"
        ohos:width="match_content"/>
 
</DirectionalLayout>
鸿蒙与安卓差异性分析

1.鸿蒙兼容安卓Apk,大部分app可以正常安装使用,但部分有兼容问题

2.鸿蒙打包会生成多个hap文件,生成最终文件后缀为app;安卓打包后缀apk,二者不可相互转换

3.现在鸿蒙和安卓不支持相互调用,如果鸿蒙app想启动安卓apk的页面是不行的

4.鸿蒙无法与安卓共享三方库,必须要三方库对鸿蒙进行适配,例如,支付宝提供了鸿蒙的hap sdk包,但是百度地图没有提供

5.安卓可以将apk发布到应用商店也可以自行安装,但是鸿蒙要把app发布到华为应用商店