HarmonyOS鴻蒙入門篇


這幾天鴻蒙系統起來了。開源,全場景。

鴻蒙系統又是什么,官網有:

HarmonyOS是一款“面向未來”、面向全場景(移動辦公、運動健康、社交通信、媒體娛樂等)的分布式操作系統。在傳統的單設備系統能力的基礎上,HarmonyOS提出了基於同一套系統能力、適配多種終端形態的分布式理念,能夠支持多種終端設備。

 

  • 華為開發者聯盟論壇

    https://developer.huawei.com/consumer/

  • 鴻蒙官網

    https://www.harmonyos.com

  • 鴻蒙os開發官網

    https://developer.harmonyos.com/cn/develop

  • Gitee

    https://openharmony.gitee.com/openharmony

 

安裝

 

下載HUAWEI DevEco Studio。現在還沒支持MacOS
Windows已可以下載。Windows安裝條件:

  • 操作系統:Windows10 64 位
  • 內存:8G 及以上
  • 硬盤:100G 及以上
  • 分辨率:1280*800 及以上


一開始以為一定要Windows 10,還以為涼涼,因為只有Windows 8, 8G內存的老摳傷不起。但是沒有想到成功安裝,並運行。
根據官網文檔:

  • 登錄HarmonysOS應用開發門戶,點擊右上角注冊按鈕,注冊開發者帳號,注冊指導參考注冊華為帳號。如果已有華為開發者帳號,請直接點擊登錄按鈕。
  • 進入HUAWEI DevEco Studio產品頁,下載DevEco Studio安裝包。
  • 雙擊下載的“deveco-studio-xxxx.exe”,進入DevEco Studio安裝向導,在如下安裝選項界面勾選DevEco Studio launcher后,點擊Next,直至安裝完成。
  • 如何是JS開發者,則需要多安裝Node.js

 

  • 鴻蒙os開發工具

    https://developer.harmonyos.com/cn/develop/deveco-studio

 

創建 Demo 

打開DevEco Studio:Create project目前只支持TV,穿戴設備,輕量級穿戴設備。支持JS,Java

創建成功后,作為Android 開發者,看到這些界面,甚是熟悉:運用Gradle 構建項目

看到目錄結構,甚是熟悉;

鴻蒙 APP 的基礎認識

鴻蒙 APP

HarmonyOS的應用軟件包以APP Pack(Application Package)形式發布,它是由一個或多個HAP(HarmonyOS Ability Package)以及描述每個HAP屬性的pack.info組成。HAP是Ability的部署包,HarmonyOS應用代碼圍繞Ability組件展開。

 

一個HAP是由代碼、資源、第三方庫及應用配置文件組成的模塊包,可分為Entry和Feature兩種模塊類型,如圖1所示。

 

  • Entry:應用的主模塊。一個APP中,對於同一設備類型必須有且只有一個Eentry類型的HAP,可獨立安裝運行。

  • Feature:應用的動態特性模塊。一個APP可以包含一個或多個Feature類型的HAP,也可以不含。只有包含Ability的HAP才能夠獨立運行。

 

DemoApp

A base class used for user to initialize each hap.

package com.yuncai.demoapp;import ohos.aafwk.ability.AbilityPackage;public class DemoApp extends AbilityPackage { @Override public void onInitialize() { super.onInitialize(); }}

 

MainAbility

Ability....emmmm,我是感覺是Activity....

官網定義:

Ability 是應用所具備能力的抽象,也是應用程序的重要組成部分。一個應用可以具備多種能力(即可以包含一個或者多個Ability),HarmonyOS支持應用以Ability為單位進行部署。Ability分為兩種類型:FA(Feature Ability)和PA(Particle Ability)。FA/PA是應用的基本組成單元,能夠實現特定的業務功能。FA有UI界面,而PA無UI界面。每種類型為開發者提供了不同的模板,以便實現不同的業務功能。

 

  • Ability API

    https://developer.harmonyos.com/cn/docs/documentation/doc-references/ability-0000001054120007

 

package com.yuncai.demoapp;import com.yuncai.demoapp.slice.MainAbilitySlice;import ohos.aafwk.ability.Ability;import ohos.aafwk.content.Intent;public class MainAbility extends Ability {@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setMainRoute(MainAbilitySlice.class.getName()); }}

 

MainAbilitySlice

AbilityPackageAbilitySlice主要用於承載Ability的具體邏輯實現和界面UI,是應用顯示、運行和跳轉的最小單元。AbilitySlice通過setUIContent()為界面設置布局

package com.yuncai.demoapp.slice;import ohos.aafwk.ability.AbilitySlice;import ohos.aafwk.content.Intent;import ohos.agp.components.Button;import ohos.agp.components.DirectionalLayout;import ohos.agp.components.DirectionalLayout.LayoutConfig;import ohos.agp.components.Text;import ohos.agp.colors.RgbColor;import ohos.agp.components.element.Element;import ohos.agp.components.element.ShapeElement;import ohos.agp.components.element.StateElement;import ohos.agp.utils.Color;import ohos.agp.utils.TextAlignment;public class MainAbilitySlice extends AbilitySlice {private DirectionalLayout myLayout = new DirectionalLayout(this);@Overridepublic 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(255, 255, 255)); myLayout.setBackground(element); LayoutConfig titleConfig = new LayoutConfig( LayoutConfig.MATCH_PARENT, LayoutConfig.MATCH_CONTENT); Text title = new Text(this); title.setLayoutConfig(titleConfig); title.setPadding(0, 50, 0, 10); title.setText("Hello World"); title.setTextColor(new Color(0xFF000000)); title.setTextSize(50); title.setTextAlignment(TextAlignment.CENTER); myLayout.addComponent(title); Text text = new Text(this); text.setLayoutConfig(titleConfig); text.setText("暈菜一員"); text.setTextColor(new Color(0xFF000000)); text.setTextSize(50); text.setTextAlignment(TextAlignment.CENTER); myLayout.addComponent(text);super.setUIContent(myLayout); }@Overridepublic void onActive() {super.onActive(); }@Overridepublic void onForeground(Intent intent) {super.onForeground(intent); }}

 

運行項目

運行項目前,需選擇設備。

DevEco -> HVD Manager (模擬器)

當打開HVD Manager 會跳轉到華為開發者聯盟進行登陸授權,,一開始用chrome還不行,切換到了IE才打開了允許授權彈窗。

點擊允許后,回到DevEco,會看到出現了兩台模擬器:

這時候運行一台,運行demo項目...成功:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM