零基礎(chǔ)學(xué)鴻蒙第一天

HarmonyOS 是一款“面向未來”乏冀、面向全場景(移動辦公桅锄、運動健康劫哼、社交通信叮趴、媒體 娛樂等)的分布式操作系統(tǒng)。在傳統(tǒng)的單設(shè)備系統(tǒng)能力的基礎(chǔ)上权烧,HarmonyOS 提出了基 于同一套系統(tǒng)能力眯亦、適配多種終端形態(tài)的分布式理念,能夠支持多種終端設(shè)備般码。


鴻蒙OS.jpg

注冊與實名認證

首先妻率,我們先點擊這里去跳轉(zhuǎn)到 鴻蒙官方網(wǎng)站

點擊右上角的注冊按鈕進行注冊。

注冊完成后再進行實名認證(一般就是個人開發(fā)者)板祝。

鴻蒙開發(fā)工具下載

鴻蒙開發(fā)使用的語言一共有三個

Java(主推)

JS

C/C++

據(jù)說鴻蒙3.0的時候還會推出來一款開發(fā)語言:倉頡

鴻蒙應(yīng)用開發(fā)(手機app)- Java

鴻蒙設(shè)備開發(fā)(硬件開發(fā))- C/C++

應(yīng)用開發(fā)下載地址

設(shè)備開發(fā)下載地址

開發(fā)工具的常見設(shè)置

  • 修改主題

  • 設(shè)置字體大小

  • 取消注釋斜體并修改注釋的顏色

  • 自動導(dǎo)包

  • 提示忽略大小寫

因為所有的設(shè)置必須要進入項目才能設(shè)置宫静,所以要新建一個項目

點擊設(shè)置修改為黑色主題


修改為黑色主題.jpg

鴻蒙字體的設(shè)置
鴻蒙字體的設(shè)置.jpg

取消注釋斜體并修改注釋的顏色
注釋文字修改.jpg

提示忽略大小寫
提示忽略大小寫.jpg

自動導(dǎo)包
自動導(dǎo)包.jpg

項目結(jié)構(gòu)介紹

因為 HUAWEI 是基于 IDEA 二次開發(fā)的,所以也是以下 4 種

項目

模塊

包(里面東西比較多)

Project 下面分別有2個

一個就是我們創(chuàng)建的項目

另外一個就是 java包(External Libraries)

External Libraries

<SDK(API Version 5)> 這個就是華為提供的鴻蒙相關(guān)的 API 版本為5

<1.8> 這個就是 Java 相關(guān)的 JDK 版本是 8

下面的3個 Gradle 就是幫助我們自動構(gòu)建項目的工具

接下來看我們創(chuàng)建的項目結(jié)構(gòu)

.gradle 項目管理工具 點開會發(fā)現(xiàn)版本是 6.3 這個文件夾我們一般是不會去動的

.idea 是開發(fā)工具 Studio 的一些信息 同樣也不會動它的

entry 是應(yīng)用的主模塊 所以要提出來重要講解

gradle(以及下面的文件) 都是一些配置 和 Java包 一般都是使用默認的就好了

entry

libs 需要自己手動導(dǎo)入 第三方的 Java包 那么就導(dǎo)入到這個里面

src 這個里面裝著我們所有寫的代碼

src

main 最主要的部分(存放代碼)

ohosTest 利用華為提供的鴻蒙寫的測試類

test 這個是導(dǎo)入 Junit 寫的測試類

main

java 代碼要放在這個里面 不能存放在其他地方

resources 這個是資源(App用到的圖片扔字、音頻囊嘉、視頻等等)

config.json app本身的一些配置信息(版本、公司廠商一些信息)

為了大家看的更清楚革为,我把信息整理成了圖片

鴻蒙項目結(jié)構(gòu).png

鴻蒙第一個入門應(yīng)用:HelloWorld

一個項目被創(chuàng)建后扭粱,自帶 HelloWorld 我們主要學(xué)習(xí)

  • 如何運行項目
  • 頁面中的包含關(guān)系
  • 學(xué)習(xí)項目的配置文件:config.json
  • 了解程序的運行過程

運行項目

  • 登錄華為開發(fā)者賬號 Tools -> Device Manager 登錄
  • 選擇并開啟模擬器 Tools -> Device Manager -> Phone -> P40
  • 運行項目

頁面中的包含關(guān)系

  • 在鴻蒙里面,一個頁面就是一個 Ability
  • 里面會添加一個子頁面 AbilitySlice (切片或者片段)
  • 再添加一段文本信息:你好震檩,世界
  • 鴻蒙App 會把每一個 Ability 打包成一個文件(文件的后綴就是Hap) 每一個 Ability 對應(yīng)一個 Hap 包 是為了可以實現(xiàn)可分可合的作用琢蛤,單獨的 Hap 包 是可以下載的。
    在開發(fā)中抛虏,一個單獨的功能 博其,對應(yīng)著一個 Ability。 如果在這個功能中需要進行切換迂猴,那么就可以在 Ability 中寫多個子頁面 AbilitySlice 進行切換慕淡。

config.json

  • 跟應(yīng)用相關(guān)的所有信息,都會在這個文件中配置
  • 項目的配置(app):廠商信息沸毁,項目的版本號
  • 應(yīng)用在設(shè)備上的配置信息(deviceConfig):應(yīng)用運行時進程名峰髓,是否允許使用流量傻寂,是否支持未解鎖時啟動
  • 代碼中的配置(module):所有的 Ability

程序的運行過程

  • 解析 config.json 文件
  • 初始化
  • 獲取入口 Ability 的全類名
  • 找到 Ability 并運行
  • 運行 Ability 中的子頁面
  • 加載 xml 文件,展示內(nèi)容

鴻蒙第二個入門應(yīng)用:頁面跳轉(zhuǎn)

實現(xiàn)步驟

  • 編寫第一個頁面(文本+按鈕)
  • 編寫第二個頁面(文本)
  • 給第一個頁面的按鈕添加一個跳轉(zhuǎn)

鴻蒙UI中携兵,提供了兩種編寫布局的方式:

  • XML文件疾掰,標簽表示要展示的不同內(nèi)容:<Text> 文本 <Image> 圖片 <Button> 按鈕
  • Java 代碼,對象表示要展示的不同內(nèi)容:Text對象 文本徐紧、 Image對象 圖片静檬、Button對象 按鈕

第一個頁面用 XML 實現(xiàn),第二頁面用 Java 代碼實現(xiàn)

  • 在 main -> resources -> base -> layout -> ability_main.xml 填寫以下代碼
<?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="第一個頁面"
        ohos:text_size="40vp"
        />
    <Button
        ohos:id="$+id:but1"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:background_element="red"
        ohos:text_size="40fp"
        ohos:text="點我"/>

</DirectionalLayout>
  • 在 com.example.你的程序名 這個下面右鍵 New -> Ability -> Empty Page Ability(Java) 創(chuàng)建第二個頁面
  • 在 slice 里面找到你的第二個頁面的子頁面
package com.example.hmosdemo.slice;

import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.DirectionalLayout;
import ohos.agp.components.Text;
import ohos.agp.utils.Color;

public class SecondAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        //super.setUIContent(ResourceTable.Layout_ability_second);

        //1并级、創(chuàng)建布局對象
        DirectionalLayout d1 = new DirectionalLayout(this);

        //2拂檩、創(chuàng)建文本對象
        Text t = new Text(this);
        //設(shè)置內(nèi)容
        t.setText("第二個頁面");
        //設(shè)置文字大小
        t.setTextSize(55);
        //設(shè)置文字顏色
        t.setTextColor(Color.RED);

        //3、把文本對象添加到布局當中
        d1.addComponent(t);

        //4死遭、把布局添加到子界面當中
        super.setUIContent(d1);
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

編寫跳轉(zhuǎn)功能

  • 在 slice 中第一個頁面的代碼里寫以下代碼
package com.example.hmosdemo.slice;

import com.example.hmosdemo.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.aafwk.content.Operation;
import ohos.agp.components.Button;
import ohos.agp.components.Component;

public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener {
    Button btn;
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);

        //1广恢、找到按鈕
        btn = (Button) findComponentById(ResourceTable.Id_but1);

        //2、給按鈕添加一個點擊事件
        //如果沒有添加點擊事件呀潭,那么用鼠標點擊按鈕之后是沒有任何反應(yīng)的钉迷。
        //如果我們給按鈕添加了點擊事件,那么用鼠標點擊按鈕之后钠署,就可以執(zhí)行對應(yīng)的代碼
        //給btn這個按鈕添加了點擊事件
        btn.setClickedListener(this);
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }

    @Override
    public void onClick(Component component){
        //點擊按鈕之后執(zhí)行的代碼
        //跳轉(zhuǎn)到第二個頁面中
        if (component == btn){
            //只有點擊了這個btn按鈕之后才進行跳轉(zhuǎn)
            //跳轉(zhuǎn)到哪個頁面中(意圖)
            Intent i = new Intent();
            //包含了要跳轉(zhuǎn)的頁面信息
            Operation operation = new Intent.OperationBuilder()
                    .withDeviceId("")//要跳轉(zhuǎn)到哪個設(shè)備上糠聪,如果傳遞一個沒有內(nèi)容的字符串,表示跳轉(zhuǎn)本機
                    .withBundleName("com.example.hmosdemo")//我要跳轉(zhuǎn)到哪個應(yīng)用上,小括號里面可以寫包名
                    .withAbilityName("com.example.hmosdemo.SecondAbility")//要跳轉(zhuǎn)的頁面
            .build();//表示將上面的三個信息進行打包

            //把打包之后的 operation 設(shè)置到意圖當中
            i.setOperation(operation);
            //跳轉(zhuǎn)頁面
            startAbility(i);
        }
    }
}

至此谐鼎,鴻蒙入門的第一天課程已經(jīng)結(jié)束舰蟆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市狸棍,隨后出現(xiàn)的幾起案子身害,更是在濱河造成了極大的恐慌,老刑警劉巖草戈,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件塌鸯,死亡現(xiàn)場離奇詭異,居然都是意外死亡唐片,警方通過查閱死者的電腦和手機丙猬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來费韭,“玉大人茧球,你說我怎么就攤上這事⌒浅郑” “怎么了抢埋?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我揪垄,道長鲤屡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任福侈,我火速辦了婚禮,結(jié)果婚禮上卢未,老公的妹妹穿的比我還像新娘肪凛。我一直安慰自己,他們只是感情好辽社,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布伟墙。 她就那樣靜靜地躺著,像睡著了一般滴铅。 火紅的嫁衣襯著肌膚如雪戳葵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天汉匙,我揣著相機與錄音拱烁,去河邊找鬼。 笑死噩翠,一個胖子當著我的面吹牛戏自,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伤锚,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼擅笔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了屯援?” 一聲冷哼從身側(cè)響起猛们,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎狞洋,沒想到半個月后弯淘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡徘铝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年耳胎,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惕它。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡怕午,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出淹魄,到底是詐尸還是另有隱情郁惜,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站兆蕉,受9級特大地震影響羽戒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜虎韵,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一易稠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧包蓝,春花似錦驶社、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至硅瞧,卻和暖如春份乒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腕唧。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工或辖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人四苇。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓孝凌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親月腋。 傳聞我的和親對象是個殘疾皇子蟀架,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容