一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙OpenHarmony【基于Hi3516DV300開發(fā)板(時鐘應(yīng)用開發(fā))】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-08 15:27 ? 次閱讀

概述

如何快速搭建基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)(Hi3516DV300開發(fā)板)的應(yīng)用開發(fā)環(huán)境,并基于一個時鐘APP示例逐步展示應(yīng)用的創(chuàng)建、開發(fā)、調(diào)試和安裝等流程。
時鐘App是一款顯示實時時間的應(yīng)用,顯示效果如下圖所示:

圖 1 時鐘應(yīng)用顯示效果圖

開發(fā)準(zhǔn)備

首先需要下載和配置DevEco Studio,具體操作請參考[DevEco Studio 使用指南]

開發(fā)步驟

應(yīng)用的功能是通過表盤和數(shù)字顯示實時時間。

從顯示效果圖分析可知,頁面由兩個部分組成:

  • 表盤欄:主要展示一個動態(tài)的鐘表,且鐘表指針能準(zhǔn)確轉(zhuǎn)動。
  • 數(shù)字時間欄:主要以數(shù)字形式顯示當(dāng)前時間。
  • 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]。

綜上,我們可搭建一個縱向兩行排列的彈性頁面布局來實現(xiàn)界面的功能。具體開發(fā)步驟如下:

  1. 在hml文件中添加一個根節(jié)點div,注意每個hml文件中有且只能有一個根節(jié)點,代碼如下:

    < div class="container" >
    < /div >
    

    class="container"表示組件使用的樣式,container是index.css文件中的一個樣式類,代碼如下:

    .container {     
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 100%;
    }
    

    在這個樣式類中,我們分別設(shè)置了根組件div的高度和寬度(注意在應(yīng)用的開發(fā)過程中,除部分組件(text)外必須顯式指定組件的高度和寬度,否則可能無法顯示)、并將flex-direction屬性設(shè)置為column,該屬性表示div的子組件是垂直方向從上到下排列;這樣就可以實現(xiàn)本節(jié)開頭所說的縱向兩行排列的彈性頁面布局。

  2. 實現(xiàn)時鐘轉(zhuǎn)動,需要使用“stack”組件?!皊tack”組件的功能是堆疊容器,子組件按照順序依次入棧,后一個子組件覆蓋前一個子組件。
    在根組件下添加一個stack容器,代碼片段如下:

    < div class="container" >    
        < stack class="stack" >
            < image src="/common/clock_bg.png" class="clock-bg" >< /image > < !--設(shè)置表盤圖片-- >
            < image src="/common/hour_hand.png" class="clock-hand"
                   style="transform : rotate({{ hour * 30 + minute / 2 }}deg);" >< /image > < !--設(shè)置時鐘圖片,(hour * 30)一小時旋轉(zhuǎn)30度,(minute / 2)時鐘每分鐘旋轉(zhuǎn)的角度-- >
            < image src="/common/minute_hand.png" class="clock-hand"
                   style="transform : rotate({{ minute * 6 + second / 10 }}deg);" >< /image > < !--設(shè)置分鐘圖片,(minute * 6)一分鐘旋轉(zhuǎn)6度,(second / 10)分鐘每秒鐘旋轉(zhuǎn)的角度-- >
            < image src="/common/second_hand.png" class="clock-hand"
                   style="transform : rotate({{ second * 6 }}deg);" >< /image > < !--設(shè)置秒鐘圖片,(second * 6)一秒旋轉(zhuǎn)6度-- >
       < /stack >
    < /div >
    

    style="transform : rotate({{ second * 6 }}deg) 這類代碼用來設(shè)置組件的旋轉(zhuǎn)事件。其中transform是設(shè)置動畫平移/旋轉(zhuǎn)/縮放的屬性,rotate是旋轉(zhuǎn)動畫屬性,支持設(shè)置x軸和y軸兩個維度的選中參數(shù)。

    在css文件中設(shè)置"stack"組件樣式的高度、寬度、位置等屬性,代碼如下:

    .stack {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 50%;
    }
    

    在css文件中設(shè)置"clock-bg"組件樣式的高度、寬度等屬性,代碼如下:

    .clock-bg {
        width: 80%;
        height: 80%;
        object-fit: scale-down;
    }
    

    在css文件中設(shè)置"clock-hand"組件為時針、分針和秒針的高度、寬度等屬性,代碼如下:

    .clock-hand {
        width: 25%;
        height: 65%;
        object-fit: contain;
    }
    

    index.js中會有一個定時器實時刷新時分秒變量,從而觸發(fā)時間界面自動更新。對應(yīng)的js代碼如下:

    export default {
        timer: undefined,
        //定義參數(shù)
        data: {
          hour: 0,   //定義小時
          minute: 0, //定義分鐘
          second: 0  //定義秒
        },
        onInit () {
            this.updateTime();
            this.timer = setInterval(this.updateTime, 1000)//設(shè)置1s的定時器
        },  
        updateTime: function () {       
            var nowTime = new Date()    
            this.hour = nowTime.getHours()    
            this.minute = nowTime.getMinutes()   
            this.second = nowTime.getSeconds()    
            if (this.hour < 10) {        
                this.hour = '0' + this.hour    
            }  
            if (this.minute < 10) {       
                this.minute = '0' + this.minute   
            }    
            if (this.second < 10) {      
                this.second = '0' + this.second   
            }
        },
    }
    
  3. 顯示數(shù)字時間,在鐘表下面以數(shù)字形式顯示當(dāng)前時間。在根布局內(nèi)末尾加上text組件,頁面結(jié)構(gòu)如下:

    < text class="digit-clock" > {{ hour }}:{{ minute }}:{{ second }}< /text >
    

    class="digit-clock"設(shè)置了組件的高度和寬度以及字體大小,其代碼如下:

    .digit-clock {    
        font-size: 58px;   
        width: 100%;
        margin-top: 0px;
        text-align: center;
    }
    
  4. 所有組件設(shè)置樣式、動畫效果和數(shù)據(jù)動態(tài)綁定,完整代碼如下所示:

    • index.hml文件
      < div class="container" >
          < stack class="stack" >
              < image src="/common/clock_bg.png" class="clock-bg" >< /image >
              < image src="/common/hour_hand.png" class="clock-hand"
                     style="transform : rotate({{ hour * 30 + minute / 2 }}deg);" >< /image >
              < image src="/common/minute_hand.png" class="clock-hand"
                     style="transform : rotate({{ minute * 6 + second / 10 }}deg);" >< /image >
              < image src="/common/second_hand.png" class="clock-hand"
                     style="transform : rotate({{ second * 6 }}deg);" >< /image >
          < /stack >
          < text class="digit-clock" >{{ hour }}:{{ minute }}:{{ second }}< /text >
      < /div >
      
    • index.css文件
      .container {
          flex-direction: column;
          justify-content: center;
          align-items: center;
          width: 100%;
          height: 100%;
      }
      
      .stack {
          flex-direction: column;
          justify-content: center;
          align-items: center;
          width: 100%;
          height: 50%;
      }
      
      .digit-clock {
          font-size: 58px;
          width: 100%;
          margin-top: 0px;
          text-align: center;
      }
      
      .clock-bg {
          width: 80%;
          height: 80%;
          object-fit: scale-down;
      }
      
      .clock-hand {
          width: 25%;
          height: 65%;
          object-fit: contain;
      }
      
    • index.js:
      js文件主要用于實現(xiàn)App應(yīng)用的邏輯交互。在本頁面js文件中,需要實現(xiàn)如下功能:定時獲取系統(tǒng)時間。
      export default {
          timer: undefined,
          data: {
              hour: 0,
              minute: 0,
              second: 0
          },
          onInit() {
              this.updateTime()
              this.timer = setInterval(this.updateTime, 1000)
          },
          updateTime: function () {
              var nowTime = new Date()
              this.hour = nowTime.getHours()
              this.minute = nowTime.getMinutes()
              this.second = nowTime.getSeconds()
              if (this.hour < 10) {
                  this.hour = '0' + this.hour
              }
              if (this.minute < 10) {
                  this.minute = '0' + this.minute
              }
              if (this.second < 10) {
                  this.second = '0' + this.second
              }
          },
          onDestroy() {
              clearInterval(this.timer);
          }
      }
      

簽名打包

代碼編寫完成后,在真機(jī)設(shè)備上運行應(yīng)用,需要先對應(yīng)用進(jìn)行簽名,然后再進(jìn)行打包,具體操作請參考[簽名打包指導(dǎo)]

真機(jī)運行

應(yīng)用簽名打包后即可安裝到開發(fā)板。安裝應(yīng)用前需要先完成[DevEco Device Tool的安裝配置],然后將OpenHarmony系統(tǒng)燒錄到開發(fā)板并運行。編譯燒錄、運行鏡像的基本操作請參考快速入門手冊:[標(biāo)準(zhǔn)系統(tǒng)Hi3516快速入門]。完成鏡像運行,系統(tǒng)正常啟動后,執(zhí)行如下步驟安裝或卸載應(yīng)用。

  1. 開發(fā)者工具代碼倉路徑中獲取hdc客戶端。

    developtools/hdc_standard/prebuilt/windows/hdc_std.exe
    

    修改名稱為hdc.exe,并將工具路徑加入系統(tǒng)環(huán)境path變量中。

  2. 啟動cmd命令窗口,執(zhí)行以下命令,推送hap應(yīng)用包到設(shè)備目錄下并安裝。

    hdc install clock.hap
    
  3. 啟動應(yīng)用。執(zhí)行以下命令,其中ohos.samples.clock為應(yīng)用包名,MainAbility為應(yīng)用啟動的Ability。

    hdc shell aa start -d 123 -a ohos.samples.clock.MainAbility -b ohos.samples.clock
    
  4. 卸載應(yīng)用(可選)。執(zhí)行以下命令,其中ohos.samples.clock為應(yīng)用包名。

    hdc shell bm uninstall -n ohos.samples.clock
    

常見問題

HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

搜狗高速瀏覽器截圖20240326151547.png

hdc_std連接不到設(shè)備

  • 現(xiàn)象描述
    執(zhí)行 "hdc_std list targets"命令后結(jié)果為:[Empty]
  • 可能原因和解決方法
    1. 設(shè)備沒有被識別:
      在設(shè)備管理器中查看是否有hdc設(shè)備,在通用串行總線設(shè)備中會有“HDC Device”信息。如果沒有,hdc無法連接。此時需要插拔設(shè)備,或者燒寫最新的鏡像。
    2. hdc_std工作異常:
      可以執(zhí)行"hdc kill"或者"hdc start -r"殺掉hdc服務(wù)或者重啟hdc服務(wù),然后再執(zhí)行hdc list targets查看是否已經(jīng)可以獲取設(shè)備信息。
    3. hdc_std與設(shè)備不匹配:
      如果設(shè)備燒寫的是最新鏡像,hdc_std也需要使用最新版本。由于hdc_std會持續(xù)更新,請從開源倉developtools_hdc_standard中獲取,具體位置在該開源倉的prebuilt目錄。

hdc_std運行不了

  • 現(xiàn)象描述
    點擊hdc_std.exe文件無法運行。
  • 可能原因和解決方法
    hdc_std.exe不需要安裝,直接放到磁盤上就能使用,也可以添加到環(huán)境變量中。通過打開cmd執(zhí)行hdc_std命令直接使用。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5389

    瀏覽量

    100901
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2469

    瀏覽量

    43642
  • OpenHarmony
    +關(guān)注

    關(guān)注

    26

    文章

    3804

    瀏覽量

    17862
  • Hi3516DV300
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    932
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙OpenHarmony【小型系統(tǒng) 燒錄】(基于Hi3516開發(fā)板

    針對Hi3516DV300開發(fā)板,除了DevEco Device Tool(操作方法請參考燒錄))外,還可以使用HiTool進(jìn)行燒錄。
    的頭像 發(fā)表于 04-28 15:03 ?1568次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【小型系統(tǒng) 燒錄】(基于<b class='flag-5'>Hi3516</b><b class='flag-5'>開發(fā)板</b>)

    鴻蒙OpenHarmony南向:【Hi3516標(biāo)準(zhǔn)系統(tǒng)入門(命令行方式)】

    除小型系統(tǒng)外,Hi3516DV300開發(fā)板還支持標(biāo)準(zhǔn)系統(tǒng)。此章節(jié)簡要介紹如何使用命令行在Hi3516DV300開發(fā)板上進(jìn)行標(biāo)準(zhǔn)系統(tǒng)的開發(fā)。
    的頭像 發(fā)表于 05-08 09:26 ?1109次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>南向:【<b class='flag-5'>Hi3516</b>標(biāo)準(zhǔn)系統(tǒng)入門(命令行方式)】

    在Linux操作Hi3516DV300鴻蒙開發(fā)板實現(xiàn)Helloworld程序

    本文主要介紹了如何在Linux環(huán)境下在Hi3516DV300開發(fā)板搭載鴻蒙OS實現(xiàn)一個簡單的Helloworld程序。
    發(fā)表于 09-21 14:41

    在 Linux 操作 Hi3516DV300 鴻蒙開發(fā)板實現(xiàn)Helloworld 程序

    這篇文檔帶領(lǐng)大家在 Linux 操作 Hi3516DV300 鴻蒙開發(fā)板實現(xiàn)編寫一個Helloworld 程序。算是應(yīng)用開發(fā)最初級的入門了。哈哈哈
    發(fā)表于 09-22 16:16

    1-開箱貼 學(xué)習(xí)使用Hi3516DV300開發(fā)板

    ;amp;amp;seid=182104048094780090082. Hi3516DV300標(biāo)準(zhǔn)開發(fā)板出廠默認(rèn)燒寫了測試鏡像,組裝完畢,插線打開電源開關(guān)后,右上方亮紅燈,等待3s左右,發(fā)出滴長鳴,燈光
    發(fā)表于 10-24 14:29

    Hi3516DV300 AI Camera

    Hi3516DV300 AI Camera資料Hi3516DV300 AI Camera可以用于神經(jīng)網(wǎng)絡(luò)的開發(fā),是一款性能非常強(qiáng)勁的開發(fā)套件,這里的資料主要包含:原理圖芯片資料實現(xiàn)He
    發(fā)表于 11-24 11:25

    請問要如何運行Hi3516DV300開發(fā)板的測試套件呢

    Hi3510DV300, 也不知道可不可以加?!   ∵x擇原有的1,2,3還是選擇自己添加的4.  運行測試套件,自己添加的或者是源代碼中自帶的。都運行不成功。請問要如何運行HiSpark_Ai_Hi3516D_One_Light_VER.B
    發(fā)表于 03-15 13:59

    OpenHarmony教程】完成Hi3516開發(fā)板的燒錄

    。點擊Open打開工程或源碼。燒錄完成源碼導(dǎo)入后,通過以下步驟進(jìn)行燒錄:請連接好電腦和待燒錄開發(fā)板,需要連接USB口和串口,具體可參考Hi3516DV300開發(fā)板介紹。根據(jù)Hi3516DV30
    發(fā)表于 07-27 15:33

    神經(jīng)網(wǎng)絡(luò)引擎_海思hi3516DV300核心(供二次開發(fā))_IMX327模組

    HI3516DV300_MB 是針對海思 HI3516DV300 媒體處理芯片開發(fā)的編解碼核心,用于給客戶展示
    發(fā)表于 12-26 16:17 ?1810次閱讀
    神經(jīng)網(wǎng)絡(luò)引擎_海思<b class='flag-5'>hi3516DV300</b>核心<b class='flag-5'>板</b>(供二次<b class='flag-5'>開發(fā)</b>)_IMX327模組

    [HI3516DV300開發(fā)筆記]嵌入式linux下MQTT移植

    最近......算了干筆者這行的就是一塊磚,哪里缺往哪墊。簡單說就是要往一款產(chǎn)品上用MQTT,而目前產(chǎn)品的開發(fā)板還沒拿到,所以先在現(xiàn)有的HI3516DV300上移植一個MQTT并且用起來所以真的
    發(fā)表于 11-01 17:59 ?6次下載
    [<b class='flag-5'>HI3516DV300</b><b class='flag-5'>開發(fā)</b>筆記]嵌入式linux下MQTT移植

    Hi3516DV300開發(fā)板快速入門手冊

    本文為 Hi3516CV500/Hi3516DV300/Hi3516AV300 SDK 的安裝及升級使用說明,方便 使用者能快速在 Hi3516CV500/
    發(fā)表于 08-30 11:57 ?21次下載

    A182型Hi3516DV300開發(fā)板數(shù)據(jù)手冊

    海思 Hi3516DV300 作為新一代行業(yè)專用 Smart HD IP 攝像機(jī) SOC,集成新一代 ISP、業(yè)界最新的 H.265 視頻壓縮編碼器,同時集成高性能 NNIE 引擎,使得Hi3516DV300 在低碼率、高畫質(zhì)、智能處理和分析、低功耗等方面引領(lǐng)行業(yè)水平。
    發(fā)表于 11-02 09:53 ?18次下載

    OpenHarmony開發(fā)】基于hi3516dv300開發(fā)板開發(fā)的智能電子牌

    一.概述本demo是基于hi3516dv300開發(fā)板,使用OpenHarmony開發(fā)的應(yīng)用。通過該應(yīng)用不僅可以查看時間、日期以及對應(yīng)的室內(nèi)外溫濕度、空氣質(zhì)量等,還可以查看當(dāng)日的行程,讓
    的頭像 發(fā)表于 04-11 15:27 ?1364次閱讀
    【<b class='flag-5'>OpenHarmony</b><b class='flag-5'>開發(fā)</b>】基于<b class='flag-5'>hi3516dv300</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>開發(fā)</b>的智能電子牌

    鴻蒙OpenHarmony【小型系統(tǒng)編譯】 (基于Hi3516開發(fā)板

    DevEco Device Tool支持Hi3516DV300開發(fā)板的源碼一鍵編譯功能,提供編譯工具鏈和編譯環(huán)境依賴的檢測及一鍵安裝,簡化復(fù)雜編譯環(huán)境的同時,提升了編譯的效率。
    的頭像 發(fā)表于 04-23 15:53 ?713次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【小型系統(tǒng)編譯】 (基于<b class='flag-5'>Hi3516</b><b class='flag-5'>開發(fā)板</b>)

    鴻蒙OpenHarmony【小型系統(tǒng)運行案例】 (基于Hi3516開發(fā)板

    在完成Hi3516DV300的燒錄后,還需要設(shè)置BootLoader引導(dǎo)程序,才能運行OpenHarmony系統(tǒng)。
    的頭像 發(fā)表于 04-23 21:00 ?699次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【小型系統(tǒng)運行案例】 (基于<b class='flag-5'>Hi3516</b><b class='flag-5'>開發(fā)板</b>)