chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

【鴻蒙】桌面卡片開(kāi)發(fā)教程:從底層原理開(kāi)始講透call事件的刷新機(jī)制 “堅(jiān)果派-咸魚(yú)”

王程 ? 來(lái)源:jf_75796907 ? 作者:jf_75796907 ? 2024-03-04 10:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

堅(jiān)果派由堅(jiān)果創(chuàng)建,團(tuán)隊(duì)擁有 12 個(gè)華為 HDE,以及若干其他領(lǐng)域的三十余位萬(wàn)粉博主運(yùn)營(yíng)。
團(tuán)隊(duì)成員聚集在北京,上海,南京,深圳,廣州,寧夏等地,歡迎合作。

首先鋪墊兩個(gè)基礎(chǔ)知識(shí):

1.為什么桌面卡片需要使用特殊機(jī)制來(lái)刷新?

主要有兩個(gè)原因:第一是 OpenHarmonyOS Api9 的桌面卡片出于降低系統(tǒng)能耗的目的,被限制了只有 5 秒的活動(dòng)時(shí)間。超過(guò) 5 秒以后桌面卡片的相關(guān)進(jìn)程會(huì)被強(qiáng)制銷(xiāo)毀,變成一個(gè)靜態(tài)的頁(yè)面。只有通過(guò) router 機(jī)制、call 機(jī)制或者 message 機(jī)制拉起相關(guān)后臺(tái),才能再次進(jìn)行卡片內(nèi)容的刷新。

第二個(gè)原因是從實(shí)際的運(yùn)行機(jī)制來(lái)說(shuō),桌面卡片實(shí)際上并不是應(yīng)用主體的一部分,而是歸屬于 OpenHarmony 系統(tǒng)中的桌面應(yīng)用所管理的一系列服務(wù),桌面卡片與其對(duì)應(yīng)的應(yīng)用主體之間相互隔離,只能使用專(zhuān)門(mén)的接口來(lái)進(jìn)行數(shù)據(jù)交互與頁(yè)面管理。

每張卡片都有一個(gè)獨(dú)立的 LocalStorage 可以用來(lái)存儲(chǔ)頁(yè)面級(jí)變量,但同一個(gè) LocalStorage 的數(shù)據(jù)只能在 UIAbility 內(nèi)部共享,對(duì)外隔離,UIAbility 無(wú)法直接訪問(wèn)。

桌面卡片刷新機(jī)制的本質(zhì)就是通過(guò)專(zhuān)門(mén)的接口,改變特定桌面卡片的 LocalStorage 參數(shù)。以實(shí)現(xiàn)桌面卡片的 UI 更新。

2.router 機(jī)制、call 機(jī)制與 message 機(jī)制有什么不同?

這三個(gè)機(jī)制都可以用來(lái)刷新桌面卡片的,三種機(jī)制的數(shù)據(jù)都以 JSON 的格式進(jìn)行配置,并使用**formBindingData.createFormBindingData()**函數(shù)構(gòu)建數(shù)據(jù)對(duì)象。

主要區(qū)別在于:

router 機(jī)制會(huì)直接打開(kāi)應(yīng)用界面,效果有點(diǎn)像點(diǎn)擊桌面圖標(biāo)。也可以帶參數(shù)打開(kāi)應(yīng)用,直接進(jìn)入應(yīng)用內(nèi)部的某個(gè)特定位置,或者觸發(fā)某項(xiàng)功能。

call 機(jī)制是不打開(kāi)應(yīng)用界面,僅在后臺(tái)拉起應(yīng)用主體的 UIAbility,來(lái)執(zhí)行 UIAbility 內(nèi)部的相關(guān)代碼。call 機(jī)制不受 5 秒時(shí)長(zhǎng)的限制,可以先實(shí)現(xiàn)復(fù)雜且費(fèi)時(shí)的數(shù)據(jù)加載,再提供給桌面卡片進(jìn)行刷新。

message 機(jī)制則不涉及到應(yīng)用的 UIAbility,只是拉起桌面卡片自己的 FormAbility,也可以刷新卡片,但仍然受 5 秒時(shí)長(zhǎng)的限制,更適合輕量化的的實(shí)現(xiàn)卡片內(nèi)容的刷新。

接下來(lái)進(jìn)入正式講解:

本案例使用 call 機(jī)制,通過(guò)拉起應(yīng)用主體的方式來(lái)刷新卡片內(nèi)容。

使用 call 機(jī)制刷新卡片的全流程主要分為 3 個(gè)階段:

1.通過(guò)卡片的 postCardAction 接口觸發(fā) call 事件 →

2.call 事件拉起應(yīng)用主體的后臺(tái),進(jìn)行數(shù)據(jù)準(zhǔn)備,通過(guò) updateForm 接口執(zhí)行刷新事件 →

3.卡片 page 頁(yè)面接收到數(shù)據(jù),更新卡片界面。

由于卡片與應(yīng)用主體是獨(dú)立運(yùn)作的,并且一個(gè)應(yīng)用可能會(huì)有多個(gè)應(yīng)用卡片,應(yīng)用其實(shí)并不知到是哪個(gè)卡片觸發(fā)了 call 事件,所以我們需要把卡片 id 作為參數(shù)一起寫(xiě)入接口,讓卡片的管理方能找到我們要刷新的卡片。

補(bǔ)全以后的全流程如下:

1.(卡片創(chuàng)建時(shí))FormAbility 獲取卡片的 FormID,將其作為參數(shù)交給卡片頁(yè)面儲(chǔ)存 →
2.卡片頁(yè)面初始化自己的 FromID
3.(點(diǎn)擊刷新時(shí))卡片通過(guò) postCardAction 接口觸發(fā) call 事件,將卡片的 FormID 與要執(zhí)行的函數(shù)名 method 都作為參數(shù)提交,由系統(tǒng)啟動(dòng)對(duì)應(yīng)應(yīng)用的 UIAbility→
4.UIAbility 啟動(dòng)成功,通過(guò)預(yù)置的觸發(fā)器執(zhí)行 method 對(duì)應(yīng)的函數(shù),完成數(shù)據(jù)準(zhǔn)備后通過(guò) updateForm 接口將數(shù)據(jù)推送給卡片管理方 →
5.對(duì)應(yīng) FormID 的卡片檢測(cè)并同步到數(shù)據(jù)變動(dòng),完成頁(yè)面變更。

案例代碼:

1.卡片創(chuàng)建時(shí) FormAbility 獲取 FormID,并交給卡片頁(yè)面

import formBindingData from '@ohos.app.form.formBindingData'; 
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';

export default class EntryFormAbility extends FormExtensionAbility {
  onAddForm(want) {//創(chuàng)建卡片時(shí)產(chǎn)生的want中包含F(xiàn)ormID,需要再此處讀取出來(lái)同步給LocalStorage。
   let formId = want.parameters["ohos.extra.param.key.form_identity"];
   let dataObj1 = {
     "formId": formId
   };
   let obj1 = formBindingData.createFormBindingData(dataObj1);
   return obj1;
 }
};

?
2.卡片頁(yè)面初始化自己的 FromID

let storage = new LocalStorage();
@Entry(storage)
@Component
struct WidgetCard {
  @LocalStorageProp('formId') formId: string = '0';//在Form頁(yè)面中使用@LocalStorageProp來(lái)進(jìn)行FromID變量的初始化
}

?
3.卡片通過(guò) postCardAction 接口觸發(fā) call 事件,讓系統(tǒng)拉起應(yīng)用后臺(tái)的 pageAbility

let storage = new LocalStorage();
@Entry(storage)
@Component
struct WidgetCard {
  @LocalStorageProp ("formId") @Watch('firstFresh') formId:string='0'//此處使用一個(gè)watch裝飾器,在FormID初始化完成后實(shí)現(xiàn)第一次的數(shù)據(jù)刷新。
  @LocalStorageProp('text')movieName: string = '加載中...';
  @LocalStorageProp('imgName')imgName: string = 'imageName';
  firstFresh(){
    console.log('卡片初始化')
    postCardAction(this, {
      "action": 'call',
      "abilityName": this.ABILITY_NAME,
      "params": {
        "method":"funA",
        "formId":this.formId,
      }
    });
  }

  build() {
    Column() {
      Button('刷新')
        .height('15%')
        .onClick(() => {
          postCardAction(this, {
            "action": 'call',//call事件
            "abilityName": 'EntryAbility',//指向目標(biāo)應(yīng)用的Ability
            "params": {
              "method":"funA",//UIAbility中注冊(cè)的用于刷新卡片的事件
              "formId":this.formId,//卡片自身的FormID
            }
          });
        })
  }
}
?

4.pageAbility 啟動(dòng),執(zhí)行對(duì)應(yīng)的函數(shù),完成數(shù)據(jù)準(zhǔn)備后通過(guò) updateForm 接口將數(shù)據(jù)推送給卡片管理方
(數(shù)據(jù)來(lái)源于對(duì)應(yīng)的 severless 服務(wù)器,為方便演示,severless 的安全機(jī)制設(shè)為了不做身份校驗(yàn)即可訪問(wèn)數(shù)據(jù)的形式)

注意:callee 監(jiān)聽(tīng)事件必須要先申請(qǐng)"ohos.permission.KEEP_BACKGROUND_RUNNING"權(quán)限才能正常運(yùn)行!??!

import UIAbility from '@ohos.app.ability.UIAbility';
import formBindingData from '@ohos.app.form.formBindingData';
import formProvider from '@ohos.app.form.formProvider';
import hilog from '@ohos.hilog';
import Window from '@ohos.window';
import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
import {AGCCloudDB} from'../services/AGCCloudDB'
import {AGCStorageReference} from'../services/Storage'
import request from '@ohos.request';
import fs from '@ohos.file.fs';

export default class EntryAbility extends UIAbility {
  onCreate(want, launchParam) {//如果觸發(fā)call事件時(shí)UIAbility未啟動(dòng),會(huì)先執(zhí)行onCreate再執(zhí)行監(jiān)聽(tīng)事件。如果觸發(fā)Call事件時(shí)UIAbility已經(jīng)在運(yùn)行中則直接執(zhí)行監(jiān)聽(tīng)事件。
     this.callee.on('funA',(str)=>{//監(jiān)聽(tīng)器,檢測(cè)到對(duì)應(yīng)參數(shù)就執(zhí)行回調(diào)函數(shù)
         let params = JSON.parse(str.readString())
         if (params.formId != undefined) {
           let formId = params.formId
           const agcCloudDB = AGCCloudDB.instance(this.context)
           agcCloudDB.init(this.context).then((res) => {
             let CloudDB = new AGCStorageReference(this.context)
             agcCloudDB.getMovie().then((allRecords) => {//從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)組
               let radomNumber = Math.floor(Math.random() * allRecords.length)               CloudDB.getDownloadUrl(allRecords[radomNumber].movieName).then((url) => {//從數(shù)據(jù)組中隨機(jī)抽取一項(xiàng),獲取對(duì)應(yīng)的圖片下載鏈接
                 let tempDir = this.context.getApplicationContext().tempDir;
                 let tmpFile = tempDir + '/file' + Date.now();
                 request.downloadFile(this.context, {//將圖片下載到本地,并得到本地的圖片地址
                   url: url, filePath: tmpFile
                 }).then((task) => {
                   task.on('complete', function callback() {
                     console.info('ArkTSCard download complete:' + tmpFile);
                     let file;
                     try {
                       file = fs.openSync(tmpFile);
                     } catch (e) {
                       console.error(`openSync failed: ${JSON.stringify(e)}`);
                     }
                     console.log(JSON.stringify(allRecords))
                     let formData = {//進(jìn)行數(shù)據(jù)打包
                       "text": allRecords[radomNumber].movieName,
                       "imgName": allRecords[radomNumber].movieName,
                       'formImages': {},
                      }                     formData.formImages[allRecords[radomNumber].movieName]=file.fd//由于Image的刷新機(jī)制必須接受不同的值才能識(shí)別到image變化,因此movieName只能使用變量的形式寫(xiě)入。
                     let formInfo = formBindingData.createFormBindingData(formData)//創(chuàng)建FormBindingData對(duì)象
                     formProvider.updateForm(formId, formInfo)
                   })//執(zhí)行updateForm事件,刷新指定卡片。
                   task.on('fail', function callBack(err) {//數(shù)據(jù)準(zhǔn)備失敗時(shí)顯示的內(nèi)容
                     console.info('ArkTSCard download task failed. Cause:' + err);
                     let formInfo = formBindingData.createFormBindingData({
                       'text': '刷新失敗,請(qǐng)重試'
                     })
                     formProvider.updateForm(formId, formInfo)
                   })
                 })
                 return null
               })
             })
           })
         }
     })
  }
}

?
5.對(duì)應(yīng) FormID 的卡片收到新的數(shù)據(jù),完成頁(yè)面變更。

let storage = new LocalStorage();
@Entry(storage)
@Component
struct WidgetCard {
  @LocalStorageProp ("formId") @Watch('firstFresh') formId:string='0'
  @LocalStorageProp('text')movieName: string = '加載中...';
  @LocalStorageProp('imgName')imgName: string = 'imageName';
//LocalStorageProp檢測(cè)到text與imgName變量發(fā)生改變,單向同步最新的數(shù)據(jù),并觸發(fā)卡片頁(yè)面的文本與圖片刷新。

  build() {
    Column() {
      Text(this.text)
        .fontSize('12vp')
        .textAlign(TextAlign.Center)
        .width('100%')
        .height('15%')
      Row() {
          Image('memory://' + this.imgName)//imgName變化以后image組件會(huì)自動(dòng)尋找對(duì)應(yīng)的圖片進(jìn)行加載
            .width('50%')
            .height('50%')
            .margin('5%')
      }.alignItems(VerticalAlign.Center)
      .justifyContent(FlexAlign.Center)
      Button('刷新')
        .height('15%')
        .onClick(() => {
          postCardAction(this, {
            "action": 'call',
            "abilityName": 'EntryAbility',
            "params": {
              "method":"funA",//UIAbility中注冊(cè)的用于刷新卡片的事件
              "formId":this.formId,
            }
          });
        })
    }
    .width('100%').height('100%')
    .alignItems(HorizontalAlign.Center)
    .padding('5%')
  }
}
?

postCardAction 接口 call 事件的寫(xiě)法如下:

wKgZomXkdaiADVf1AAB2zo6i9kg580.pngwKgaomXkdbGAL1J7AAJzQLigpNo847.png

updateForm 接口的寫(xiě)法如下:

wKgZomXkdbmAHoToAABwqe3Hflk973.png


為了能讓大家更好的學(xué)習(xí)鴻蒙 (OpenHarmony) 開(kāi)發(fā)技術(shù),這邊特意整理了《鴻蒙 (OpenHarmony)開(kāi)發(fā)學(xué)習(xí)手冊(cè)》,希望對(duì)大家有所幫助:

《鴻蒙(Harmony OS)開(kāi)發(fā)學(xué)習(xí)手冊(cè)》

入門(mén)必看:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.應(yīng)用開(kāi)發(fā)導(dǎo)讀(ArKTS)
2.……

wKgaomXW6N2AJp9uAAQXRxEAprs547.png

HarmonyOS概念:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.系統(tǒng)定義
2.技術(shù)框架
3.技術(shù)特性
4.系統(tǒng)安全

wKgaomXW6OSAFcCRAAV2zd2X_1s891.png

快速入門(mén):https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.基本概念
2.構(gòu)建第一個(gè)ArkTS應(yīng)用
3.…

wKgZomXW6PuAA7wEAAKx6By_2Z8377.png

開(kāi)發(fā)基礎(chǔ)知識(shí):https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.應(yīng)用基礎(chǔ)知識(shí)
2.配置文件
3.應(yīng)用數(shù)據(jù)管理
4.應(yīng)用安全管理
5.應(yīng)用隱私保護(hù)
6.三方應(yīng)用調(diào)用管控機(jī)制
7.資源分類(lèi)與訪問(wèn)
8.學(xué)習(xí)ArkTS
9…

wKgZomXW6QaAM4niAAQzrXUUPik914.png

基于ArkTS 開(kāi)發(fā):https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.Ability開(kāi)發(fā)
2.UI開(kāi)發(fā)
3.公共事件與通知
4.窗口管理
5.媒體
6.安全
7.網(wǎng)絡(luò)與鏈接
8.電話服務(wù)
9.數(shù)據(jù)管理
10.后臺(tái)任務(wù)(Background Task)管理
11.設(shè)備管理
12.設(shè)備使用信息統(tǒng)計(jì)
13.DFX
14.國(guó)際化開(kāi)發(fā)
15.折疊屏系列
16………

wKgZomXW6RKATahiAAKz-zSMnR4040.png



審核編輯 黃宇

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

    關(guān)注

    60

    文章

    2740

    瀏覽量

    45037
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2141

    瀏覽量

    35005
  • OpenHarmony
    +關(guān)注

    關(guān)注

    31

    文章

    3891

    瀏覽量

    20240
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    TC275HSM能支持SecOC中的密鑰刷新機(jī)制嗎?

    1.請(qǐng)教一下,像TC275HSM 能支持SecOC中的密鑰刷新機(jī)制嗎?即SecOC中的密鑰生成節(jié)點(diǎn)生成新的密鑰后,是如何下發(fā)給ECU的HSM中?2. 二代HSM TC3xx 的HSM 集成
    發(fā)表于 02-21 06:07

    求大神分享一種基于bootloader的嵌入式軟件自動(dòng)更新機(jī)制

    本文提出了一種具有較高穩(wěn)定性和安全性、基于bootloader的嵌入式軟件自動(dòng)更新機(jī)制。該更新機(jī)制同時(shí)保存了3個(gè)文件,需要較多的Flash存儲(chǔ)空間,但同時(shí)降低了維護(hù)成本。
    發(fā)表于 04-27 06:33

    #HarmonyOS征文#鴻蒙卡片-物聯(lián)網(wǎng)DTU污水液位計(jì)卡片

    ();}}super.onTriggerFormEvent(formId, message); }}這樣點(diǎn)擊index.hml中的標(biāo)題,就可以更新數(shù)據(jù)了7. 服務(wù)卡片進(jìn)階開(kāi)發(fā)教程7.1 數(shù)據(jù)定時(shí)刷新7.1.1 使用
    發(fā)表于 06-26 08:59

    HarmonyOS卡片開(kāi)發(fā)--服務(wù)卡片概述

    運(yùn)行,在需要添加/刪除/請(qǐng)求更新卡片時(shí),卡片管理服務(wù)會(huì)拉起卡片提供方獲取卡片信息。 運(yùn)作機(jī)制 卡片
    發(fā)表于 09-22 14:10

    HarmonyOS原子化服務(wù)開(kāi)發(fā)實(shí)戰(zhàn)-卡片刷新圖片問(wèn)題記錄

    在一篇文章上看到,卡片刷新圖片的方式是回到桌面才進(jìn)行刷新,所以我在頁(yè)面的onStop()和onTonInactive()方法上調(diào)用卡片
    發(fā)表于 12-07 15:15

    Android系統(tǒng)固件更新機(jī)制設(shè)計(jì)資料分享

    Android系統(tǒng)固件更新機(jī)制設(shè)計(jì)說(shuō)明文檔V1.1xxx2014-9-14修改歷史記錄內(nèi)容編制\日期審核\日期批準(zhǔn)\日期 V1.0建立初稿X(qián)xx2014-9-14 V1.1 增加配圖,統(tǒng)一英文單詞大小寫(xiě)Android啟動(dòng)過(guò)程錯(cuò)誤修正,紅色字體部...
    發(fā)表于 12-20 08:08

    求助,請(qǐng)問(wèn)鴻蒙卡片如何去掉應(yīng)用的桌面圖標(biāo)?

    ,但是我想有卡片功能,我卡片功能又不能在原來(lái)APP的代碼基礎(chǔ)上開(kāi)發(fā),開(kāi)發(fā)工具不一樣,我創(chuàng)建卡片后運(yùn)行,會(huì)有一個(gè)應(yīng)用圖標(biāo),設(shè)置上滑
    發(fā)表于 06-14 10:18

    為什么鴻蒙卡片編輯頁(yè)面無(wú)法上滑返回桌面

      測(cè)試使用的是開(kāi)發(fā)工具自帶的模板,添加了卡片編輯頁(yè)面。長(zhǎng)按卡片進(jìn)入卡片編輯頁(yè)面,無(wú)法上滑返回桌面
    發(fā)表于 06-17 10:26

    ArkTS語(yǔ)言HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-message事件刷新卡片內(nèi)容

    開(kāi)發(fā)過(guò)程 在卡片頁(yè)面中可以通過(guò)postCardAction接口觸發(fā)message事件拉起FormExtensionAbility,然后由FormExtensionAbility刷新卡片
    發(fā)表于 06-12 14:42

    HarmonyOS元服務(wù)開(kāi)發(fā)實(shí)踐:桌面卡片字典

    本文轉(zhuǎn)載分享自華為開(kāi)發(fā)者論壇《?HarmonyOS元服務(wù)開(kāi)發(fā)實(shí)踐:桌面卡片字典?》,作者:蛟龍騰飛 一、項(xiàng)目說(shuō)明 1.DEMO創(chuàng)意為卡片字典
    發(fā)表于 08-24 16:55

    ADO_NET數(shù)據(jù)集更新機(jī)制及并發(fā)控制策略

    ADO_NET數(shù)據(jù)集更新機(jī)制及并發(fā)控制策略:本文分析了8I5J (?> 中的更新機(jī)制,論述了三種不同的更新邏輯的產(chǎn)生方式及各自特點(diǎn),提出了并發(fā)控制的一些解決方法,及更新邏輯中其他一
    發(fā)表于 01-01 18:48 ?12次下載

    嵌入式系統(tǒng)自更新機(jī)制的設(shè)計(jì)與應(yīng)用

    嵌入式系統(tǒng)自更新機(jī)制的設(shè)計(jì)與應(yīng)用   隨著嵌入式系統(tǒng)的發(fā)展和廣泛應(yīng)用,必不可少的維護(hù)工作變得日益繁重。如移動(dòng)電話在用戶(hù)使用過(guò)程中,部
    發(fā)表于 03-29 15:08 ?1201次閱讀
    嵌入式系統(tǒng)自更<b class='flag-5'>新機(jī)制</b>的設(shè)計(jì)與應(yīng)用

    適用動(dòng)態(tài)存儲(chǔ)的自適應(yīng)刷新機(jī)制算法設(shè)計(jì)

    為滿(mǎn)足航天應(yīng)用中數(shù)據(jù)傳輸與存儲(chǔ)中高可靠以及低功耗的要求,實(shí)現(xiàn)了一種自適應(yīng)刷新機(jī)制的同步動(dòng)態(tài)隨機(jī)存儲(chǔ)(Synchronous Dynamic Random Access MemorySDRAM)控制器
    發(fā)表于 04-03 16:00 ?0次下載
    適用動(dòng)態(tài)存儲(chǔ)的自適應(yīng)<b class='flag-5'>刷新機(jī)制</b>算法設(shè)計(jì)

    B站添加鴻蒙服務(wù)卡片教程

    ???????? 6 月 2 日鴻蒙發(fā)布,今年的六月已經(jīng)被鴻蒙刷屏了。安卓到鴻蒙,最直觀的變化應(yīng)該就是服務(wù)卡片了。我也是在學(xué)習(xí)
    的頭像 發(fā)表于 08-12 10:07 ?3378次閱讀
    B站添加<b class='flag-5'>鴻蒙</b>服務(wù)<b class='flag-5'>卡片</b>教程

    如何在鴻蒙系統(tǒng)弄一個(gè)彩票查詢(xún)卡片

    接觸鴻蒙開(kāi)發(fā)已經(jīng)有 3 個(gè)來(lái)月了,最近開(kāi)始在看鴻蒙卡片開(kāi)發(fā)。因?yàn)橹暗?/div>
    的頭像 發(fā)表于 09-06 09:17 ?3403次閱讀