HarmonyOS概述
鸿蒙系统是华为自主研发的面向全场景的分布式操作系统。能够将生活场景中各类终端进行整合,可以实现不同终端设备间的快速连接、资源共享、匹配合适设备、提供流畅的全场景体验。
技术架构
HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。
开发工具
使用HUAWEI DevEco Studio 界面类似Android Studio 下载链接
使用方式
1.要进行开发必须要注册华为账号并实名制(身份证认证审核时间较长,最好使用银行卡实名认证)
2. 创建应用
File->Project Structure->Project->Signing Configs 设置签名,应用才可以安装手机进行调试
我的项目 中添加新的项目会生成对应项目名称 ,添加包名选用代码里config.json->app-> bunldeName
我的应用 HarmonyOS 新建应用将刚才项目添加进去
重新retry,可以看到签名已经成功生成,这时可以安装到设备调试
3.启动模拟器编译器支持真机调试和远程模拟器,Tool->Device Manager可以选择模拟器如下,但使用真机调试速度更快
代码案例
目录说明
逻辑代码都保存在src目录里,MainAbility为主页面用于生命周期控制,slice为布局文件页面可以进行点击事件等逻辑开发
resources为资源目录,用于保存xml布局,文件,图片,属性配置等
功能实现
完成页面跳转展示
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发布到华为应用商店