diff --git "a/HarmonyOS\345\272\224\347\224\250\345\274\200\345\217\221-\345\210\206\345\270\203\345\274\217\344\273\273\345\212\241\350\260\203\345\272\246.md" "b/HarmonyOS\345\272\224\347\224\250\345\274\200\345\217\221-\345\210\206\345\270\203\345\274\217\344\273\273\345\212\241\350\260\203\345\272\246.md" new file mode 100644 index 0000000000000000000000000000000000000000..ac0a9c8edad8df3abc80f75cab19cb010626c705 --- /dev/null +++ "b/HarmonyOS\345\272\224\347\224\250\345\274\200\345\217\221-\345\210\206\345\270\203\345\274\217\344\273\273\345\212\241\350\260\203\345\272\246.md" @@ -0,0 +1,143 @@ +# 一、介绍 + +**本篇Codelab将实现的内容** + +HarmonyOS是面向全场景多终端的分布式操作系统,使得应用程序的开发打破了智能终端互通的性能和数据壁垒,业务逻辑原子化开发,适配多端。通过一个简单应用开发,体验HarmonyOS的分布式任务调度 + +**您将建立什么** + +在这个Codelab中,你将创建Demo Project,并将Demo编译成Hap,此示例应用程序展示了如何使用分布式任务调度。 + +**您将会学到什么** + + 1. 如何创建一个HarmonyOS Demo Project + 2. 如何构建一个Hap并且将其部署到智慧屏真机 + 3. 通过此示例应用体验如何使用分布式任务调度 + +# 二、您需要什么 + +## 1. 硬件要求 + +操作系统:Windows10 64位 +内存:8G及以上。 +硬盘:100G及以上。 +分辨率:1280*800及以上 + + +## 2. 软件要求 + +需手动下载安装,详细步骤请参考《DevEco Studio使用指南》2.1.2 +JDK:DevEco Studio自动安装。 +Node.js:请手动下载安装,详细步骤请参考《DevEco Studio使用指南》2.1.3 下载和安装Node.js。 +HarmonyOS SDK:待DevEco Studio安装完成后,利用DevEco Studio来加载HarmonyOS SDK。详细步骤请参考《DevEco Studio使用指南》2.1.6 加载HarmonyOS SDK。 +Maven库依赖包:如需手动拷贝和配置,详细步骤请参考《DevEco Studio使用指南》2.3 离线方式配置Maven库。 + +## 3. 需要的知识点 + +Java基础开发能力。 + +# 三、能力接入准备 + +实现HarmonyOS应用开发,需要完成以下准备工作: +1. 环境准备。 +2. 环境搭建。 +3. 创建项目 +4. 申请调试证书 +5. 应用开发 + +具体操作,请按照《DevEco Studio使用指南》中详细说明来完成。 + +**提示:需要通过注册成开发者才能完成集成准备中的操作。** + +# 四、代码片段 +## 1. 分布式startAbility关键代码: +创建播放视频的Ability + +```go +List deviceInfoListOnline = DeviceManager.getDeviceList(DeviceInfo.FLAG_GET_ONLINE_DEVICE); +Log.hiLog("getDmsDeviceList size:" + deviceInfoListOnline.size()); +if (deviceInfoListOnline.size() > 0) { + for(DeviceInfo info:deviceInfoListOnline) { + intent = new Intent(); + intent.addFlags(Intent.FLAG_ABILITYSLICE_MULTI_DEVICE); + element = new ElementName(info.getDeviceId(), ZZ_PACKAGE, ZZ_FA_NAME); + intent.setElement(element); + List abilityInfos = null; + try { + abilityInfos = abilityInfos = getBundleManager().queryAbilityByIntent(intent, 0, 0); + } catch (RemoteException e) { + e.printStackTrace(); + } + if (abilityInfos == null || abilityInfos.size() == 0) { + Log.hiLog("abilityInfos size:0"); + } + startAbility(intent); + } +} + +static final private String ZZ_PACKAGE = "你的包名"; +static final private String ZZ_FA_NAME = "你的Ability完整路径"; +``` + +## 2. 响应遥控器按键事件 +```go +@Override +public boolean onKeyUp(int keyCode, KeyEvent keyEvent) { + Log.hiLog("onKeyUp:" + keyCode); + switch (keyCode) { + case KeyEvent.KEY_DPAD_CENTER: + case KeyEvent.KEY_ENTER: + //增加你的代码 + return true; + default: + break; + } + return false; +} +``` + + + +## 3. 响应遥控器点击 +```go +@Override +public boolean onKeyUp(int keyCode, KeyEvent keyEvent) { + switch (keyCode) { + case KeyEvent.KEY_DPAD_CENTER: + case KeyEvent.KEY_ENTER: + playBtn.performClick(); + return true; + default: + break; + } + return false; +} + +``` + +## 4. 编译运行该应用 +通过hdc连接大屏设备 +先查看智慧屏IP: + +```go +大屏设置->"网络与连接"->"网络"->"有线网络" + +``` +在cmd或者IDE的Terminal输入命令: + +```go +hdc tconn 192.168.3.9:5555 + +``` +运行hap +![在这里插入图片描述](https://img-blog.csdnimg.cn/20200907163042484.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80ODMwNDU3Mw==,size_16,color_FFFFFF,t_70#pic_center) +# 五、恭喜你 + +干得好,你已经成功完成了HarmonyOS应用开发E2E体验,学到了: + + - 如何创建一个HarmonyOS Demo Project + - 如何构建一个Hap并且将其部署到真机上 + - 在HarmonyOS上如何使用HarmonyOS的分布式任务调度的能力 + + +[【如果您想学习HarmonyOS 应用开发基础教程 请猛戳】](https://codechina.csdn.net/huawei/harmonyos/HarmonyOS-Guide) \ No newline at end of file