在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如果中國空間站用上了鴻蒙系統會怎么樣?

OpenHarmony技術社區 ? 來源:鴻蒙技術社區 ? 作者:卡哇伊大喵 ? 2021-06-25 16:49 ? 次閱讀

6 月 17 日,神舟十二號發射圓滿成功。據了解,中國航天使用的是我國自主研發的麒麟操作系統,“天問一號”成功著陸火星使用的就是該系統。不少網友誤認為是華為操作系統,而華為用是鴻蒙系統和麒麟芯片,與航天用的麒麟系統根本沒什么關系。

那么假如中國空間站用上了鴻蒙系統會怎么樣呢?下面手把手教大家開發中國空間站專屬太陽能板鴻蒙小卡片!

01

項目背景

鴻蒙在手機 Beta3 中新增了桌面卡片,我也是在第一時間體驗了一下新浪新聞鴻蒙版的新聞小卡片,覺得非常有意思。

并且我覺得可以用在物聯網項目的污水液位計的液位展示中,可以實現碰一碰獲取液位計數據展示在小卡片中。

HarmonyOS 推出的服務卡片,是 FA(Feature Ability)的界面展現形式,將 FA 的重要信息或者操作前置到卡片上,以達到服務直達的目的。

02

服務卡片的 UI 設計

①尺寸選擇

鴻蒙的服務卡片尺寸分別為:微(1×2)、小( 2×2 )、中( 2×4 )、大(4×4)4 種尺寸。

污水液位計卡片展示數據比較少,所以我選了 2×2 的小卡片,和 2×4 的小卡片。

2*2 的小卡片主要是展示的是單個液位計的數據,而 2×4 的小卡片展示的是多個液位計的數據的總體展示。

②內容構成

服務卡片由多種設計元素組合而成,以下 7 種常見信息元素可以作為內容選擇:圖標、數據、文本、按鈕、圖片、宮格、列表。

污水液位計卡片我覺得主要展示的是當前的液位和液位計的歷史曲線,所以我這個污水液位計卡片由數據、文本、曲線圖、列表和按鈕組成。

③污水液位計卡片原型設計

采用水平垂直居中的布局,因為重要的數據是當前液位,所以當前液位采用 18px 的黑色字體,點擊查看詳情用是 #53A7F3 顏色的 15px 字,曲線使用 #53A7F3 顏色更顯科技感。

03

基本概念

①卡片使用方

顯示卡片內容的宿主應用,控制卡片在宿主中展示的位置。

②卡片管理服務

用于管理系統中所添加卡片的常駐代理服務,包括卡片對象的管理與使用,以及卡片周期性刷新等。

③卡片提供方

提供卡片顯示內容的 HarmonyOS 應用或原子化服務,控制卡片的顯示內容、控件布局以及控件點擊事件。

04

運作機制

卡片管理服務包含以下模塊:

周期性刷新:在卡片添加后,根據卡片的刷新策略啟動定時任務周期性觸發卡片的刷新。

卡片緩存管理:在卡片添加到卡片管理服務后,對卡片的視圖信息進行緩存,以便下次獲取卡片時可以直接返回緩存數據,降低時延。

卡片生命周期管理:對于卡片切換到后臺或者被遮擋時,暫停卡片的刷新;以及卡片的升級/卸載場景下對卡片數據的更新和清理。

卡片使用方對象管理:對卡片使用方的 RPC 對象進行管理,用于使用方請求進行校驗以及對卡片更新后的回調處理。

通信適配層:負責與卡片使用方和提供方進行 RPC 通信。

卡片提供方包含以下模塊:

①卡片服務:由卡片提供方開發者實現,開發者實現 onCreateForm、onUpdateForm 和 onDeleteForm 處理創建卡片、更新卡片以及刪除卡片等請求,提供相應的卡片服務。

卡片提供方實例管理模塊:由卡片提供方開發者實現,負責對卡片管理服務分配的卡片實例進行持久化管理。

②通信適配層:由 HarmonyOS SDK 提供,負責與卡片管理服務通信,用于將卡片的更新數據主動推送到卡片管理服務。

05

服務卡片開發環境搭建和開發

①開發環境

一臺升級了鴻蒙 2.0 的手機/登錄華為開發者賬號使用遠程模擬器。

下載安裝 DevEco Studio 2.1 Release,DevEco下載安裝教程

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/installation_process-0000001071425528

因為本文的重點是卡片,deveco 安裝教程和真機調試請看下面我的教程:

https://blog.csdn.net/qq_33259323/article/details/112405157

②新建 HarmonyOS 手機項目

API 選擇 5,show in service senter 打勾

③卡片基礎配置

然后打開配置文件 src/main/config.json,配置你所需要的卡片樣式,詳細配置請看:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/basic-config-file-elements-0000000000034463#ZH-CN_TOPIC_0000001064016070__table8276925145611

我這邊選擇的是 2*2 的小卡片,其他的都是默認所以只需要改一下名字和描述,注意文件夾名字要和 name 對應,如果不對應就是白卡片。

④卡片基礎界面編寫代碼

編寫 hml,通過 {{}} 綁定 index.json 里面的數據:

《div class=“container”》

《div class=“title”》

《text class=“text_title”》1#液位計: 《/text》

《text class=“text_title”》{{temperature}}《/text》

《text class=“text_title”》 m《/text》

《/div》

《stack class=“chart_region”》

《chart class=“chart_data” type=“line” options=“{{lineOps}}” datasets=“{{lineData}}”》《/chart》

《/stack》

《text class=“text_nav”》點擊查看詳情《/text》

《/div》

編寫 CSS:

.container {

flex-direction: column;

justify-content: center;

align-items: center;

}

.title{

width: 100%;

height: 30px;

justify-content: center;

}

.text_title {

font-size: 15px;

}

.chart_region{

height: 90px;

}

.chart_data{

}

.text_nav {

font-size: 15px;

color: #53A7F3;

}

編寫 JSON:

{

“data”: {

“level”: “12”,

“lineData”: [

{

“strokeColor”: “#7fccde”,

“fillColor”: “#7fccde”,

“data”: [0,10,20,12,13,10,40,10,5,9,14,18,20,30,10,20,10,17],

“gradient”: true

}

],

“lineOps”: {

“xAxis”: {

“min”: 0,

“max”: 15,

“display”: false

},

“yAxis”: {

“min”: 0,

“max”: 24,

“display”: false

},

“series”: {

“lineStyle”: {

“width”: “1px”,

“smooth”: true

},

“headPoint”: {

“shape”: “circle”,

“size”: 10,

“strokeWidth”: 3,

“fillColor”: “#ffffff”,

“strokeColor”: “#7fccde”,

“display”: true

}

}

}

}

}

可以先使用預覽器看一下界面,或者直接運行。雙擊打開 index.hml,然后點擊右側的預覽器

06

服務卡片基本開發教程

①增加點擊跳轉查看詳情頁面

在 hml 增加點擊事件:

《text class=“text_nav” onclick=“routerEvent”》點擊查看詳情《/text》

創建需要跳轉的 Ability(CardFormAbility):

編寫 index.json 文件,其中 routerEvent 就是在 hml 中的 onclick 屬性值,action 為 router,abilityName 為需要跳轉到的 ability 名字。

編寫跳轉測試頁面:

package com.example.phone.ability;

import ohos.ace.ability.AceAbility;

import ohos.aafwk.content.Intent;

public class CardFormAbility extends AceAbility {

@Override

public void onStart(Intent intent) {

setInstanceName(“CardForm”);

super.onStart(intent);

}

@Override

public void onStop() {

super.onStop();

}

}

②增加簡單的長按編輯頁面

創建卡片編輯 Ability(LevelCardConfigAbility),點擊 File→New→Ability→Page Ability(JS)。

在 LevelCardConfigAbility.onstart 中添加 setInstanceName(“LevelCardConfig”);

package com.example.phone.ability;

import ohos.ace.ability.AceAbility;

import ohos.aafwk.content.Intent;

public class LevelCardConfigAbility extends AceAbility {

@Override

public void onStart(Intent intent) {

setInstanceName(“LevelCardConfig”);

super.onStart(intent);

}

@Override

public void onStop() {

super.onStop();

}

}

在 hml 中添加示例代碼:

在配置文件中增加屬性:formConfigAbility。

“formConfigAbility”: “ability://com.example.phone.ability.LevelCardConfigAbility”

污水液位計卡片編輯頁面詳細開發請看下面。

③數據手動刷新

1. 在卡片編輯小卡片添加手動刷新事件

index.hml:

0e63ce2c-d43b-11eb-9e57-12bb97331649.png

index.json:

0e70d2b6-d43b-11eb-9e57-12bb97331649.png

2. 創建 CardFormAbility(如果之前已經創建過了就不用創建了)

在 src/main/config.json 中,如果你的小卡片是寫在 MainAbility 里面的,就不需要創建這個 CardFormAbility,我是為了方便分開來,把卡片配置寫在 CardFormAbility 中。

0e82dc22-d43b-11eb-9e57-12bb97331649.png

因為是演示代碼,所以請求后臺服務器獲得數據的代碼放在 onTriggerFormEvent 中:

package com.example.phone.ability;

import ohos.aafwk.ability.FormBindingData;

import ohos.aafwk.ability.FormException;

import ohos.ace.ability.AceAbility;

import ohos.aafwk.content.Intent;

import ohos.hiviewdfx.HiLogLabel;

import ohos.utils.zson.ZSONObject;

public class CardFormAbility extends AceAbility {

private static final HiLogLabel LABEL_LOG = new HiLogLabel(3, 0xD001100, “CardFormAbility”);

@Override

public void onStart(Intent intent) {

setInstanceName(“CardForm”);

super.onStart(intent);

}

@Override

public void onStop() {

super.onStop();

}

@Override

protected void onTriggerFormEvent(long formId, String message) {

// 解析收到的數據

ZSONObject messageJSON = ZSONObject.stringToZSON(message);

if(messageJSON.get(“message”).equals(“updata”)){ // 更新數據

ZSONObject zsonObject = new ZSONObject();

// 請求后臺服務器獲得數據

zsonObject.put(“level”, “100”);

FormBindingData formBindingData = new FormBindingData(zsonObject);

try {

// 更新數據

if (!updateForm(formId, formBindingData)) {

}

} catch (FormException e) {

e.printStackTrace();

}

}

super.onTriggerFormEvent(formId, message);

}

}

這樣點擊 index.hml 中的標題,就可以更新數據了。

07

服務卡片進階開發教程

①數據定時刷新

使用鴻蒙自帶的定時刷新:數據定時刷新需要在 src/main/config.json 配置文件中配置,是否開啟定時刷新和定時刷新的時間:

“updateEnabled”: true,

“updateDuration”: 1

編寫 CardFormAbility,重寫 onUpdateForm 方法:

@Overrideprotected void onUpdateForm(long formId) {

super.onUpdateForm(formId);

ZSONObject zsonObject = new ZSONObject();

zsonObject.put(“level”, “1.123”);

FormBindingData formBindingData = new FormBindingData(zsonObject);

// 調用updateForm接口去更新對應的卡片,僅更新入參中攜帶的數據信息,其他信息保持不變

try {

if (!updateForm(formId, formBindingData)) {

// err process

}

} catch (FormException e) {

e.printStackTrace();

}

}

自定義刷新策略,請往下看。

②編輯頁面開發&編輯更新卡片邏輯開發

頁面開發

index.hml:

《div class=“container”》

《text class=“title”》

選擇液位計

《/text》

《list class=“todo-wraper”》

《list-item for=“{{todolist}}” class=“todo-item” @click=“choose({{$item.id}}})”》

《text class=“todo-title”》{{$item.title}}《/text》

《/list-item》

《/list》

《/div》

index.css:

.container {

flex-direction: column;

justify-content: center;

align-items: center;

}

.title {

font-size: 40px;

color: #000000;

opacity: 0.9;

}

.todo-wraper {

width: 454px;

height: 300px;

margin-top: 20px;

}

.todo-item {

width: 454px;

height: 80px;

flex-direction: column;

}

.todo-title {

width: 454px;

height: 40px;

text-align: center;

}

index.js:

import prompt from ‘@system.prompt’;

const ABILITY_TYPE_EXTERNAL = 0;

const ACTION_SYNC = 0;

const CHOOSE_LEVEL = 1001;

// 給CardServiceAbility發送選擇的IDexport const CardFormAbility = {

choose: async function(id){

var action = {};

action.bundleName = ‘com.example.phone’;

action.abilityName = ‘com.example.phone.ability.CardServiceAbility’;

action.messageCode = CHOOSE_LEVEL;

action.data = id;

action.abilityType = ABILITY_TYPE_EXTERNAL;

action.syncOption = ACTION_SYNC;

var result = await FeatureAbility.callAbility(action);

var ret = JSON.parse(result);

if (ret.code == 0) {

} else {

}

}

}

export default {

data: {

title: “”,

todolist: [{

title: ‘1#液位計’,

id: 1

}, {

title: ‘2#液位計’,

id: 2

},{

title: ‘3#液位計’,

id: 3

}],

},

onInit() {

this.title = this.$t(‘strings.world’);

},

choose(id) {

CardFormAbility.choose(id);

}

}

編寫 LevelCardConfigAbility 來保存卡片 ID:

package com.example.phone.ability;

import ohos.aafwk.ability.AbilitySlice;

import ohos.aafwk.content.IntentParams;

import ohos.ace.ability.AceAbility;

import ohos.aafwk.content.Intent;

public class LevelCardConfigAbility extends AceAbility {

public static Long cardId;

@Override

public void onStart(Intent intent) {

setInstanceName(“LevelCard”);

// 獲取卡片ID并進行保存

IntentParams params = intent.getParams();

cardId = (long) params.getParam(AbilitySlice.PARAM_FORM_IDENTITY_KEY);

super.onStart(intent);

}

@Override

public void onStop() {

super.onStop();

}

}

創建 CardServiceAbility 來獲取配置頁面的配置信息并且更新卡片:

package com.example.phone.ability;

import ohos.aafwk.ability.Ability;

import ohos.aafwk.ability.AbilitySlice;

import ohos.aafwk.ability.FormBindingData;

import ohos.aafwk.ability.FormException;

import ohos.aafwk.content.Intent;

import ohos.aafwk.content.IntentParams;

import ohos.app.Context;

import ohos.rpc.*;

import ohos.hiviewdfx.HiLog;

import ohos.hiviewdfx.HiLogLabel;

import ohos.utils.zson.ZSONObject;

public class CardServiceAbility extends Ability {

private static final HiLogLabel LABEL_LOG = new HiLogLabel(3, 0xD001100, “Demo”);

private CardServiceAbility.CardServiceRemote cardServiceRemote;

private static final int CHOOSE_LEVEL = 1001;

@Override

public void onStart(Intent intent) {

HiLog.error(LABEL_LOG, “CardServiceAbility::onStart”);

cardServiceRemote = new CardServiceRemote();

super.onStart(intent);

}

@Override

protected IRemoteObject onConnect(Intent intent) {

super.onConnect(intent);

return cardServiceRemote.asObject();

}

@Override

public void onDisconnect(Intent intent) {

}

class CardServiceRemote extends RemoteObject implements IRemoteBroker {

public CardServiceRemote() {

super(“CardServiceRemote”);

}

@Override

public boolean onRemoteRequest(int code, MessageParcel data, MessageParcel reply, MessageOption option) throws RemoteException {

switch (code) {

case CHOOSE_LEVEL:{

String zsonStr = data.readString();

ZSONObject zsonObject = new ZSONObject();

zsonObject.put(“name”, zsonStr+“#液位計:”);

FormBindingData formBindingData = new FormBindingData(zsonObject);

try {

if (!updateForm(LevelCardConfigAbility.cardId, formBindingData)) {

// err process

}

} catch (FormException e) {

e.printStackTrace();

}

break;

}

default: {

reply.writeString(“service not defined”);

return false;

}

}

return true;

}

@Override

public IRemoteObject asObject() {

return this;

}

}

}

③自定義刷新策略

關系型數據庫加入包:在對應的 entry 的 build.gradle 中添加包。

dependencies {

implementation fileTree(dir: ‘libs’, include: [‘*.jar’, ‘*.har’])

testCompile ‘junit4.12’

compile files(ORM_ANNOTATIONS_JAVA, ORM_ANNOTATIONS_PROCESSOR_JAVA, JAVAPOET_JAVA)

annotationProcessor files(ORM_ANNOTATIONS_JAVA, ORM_ANNOTATIONS_PROCESSOR_JAVA, JAVAPOET_JAVA)

}

在 gradle.properties 中添加 gradle 全局變量:

JAVAPOET_JAVA=C:/Users/XX/AppData/Local/Huawei/Sdk/java/2.1.1.21/build-tools/lib/javapoet_java.jar

ORM_ANNOTATIONS_PROCESSOR_JAVA=C:/Users/XX/AppData/Local/Huawei/Sdk/java/2.1.1.21/build-tools/lib/orm_annotations_processor_java.jar

ORM_ANNOTATIONS_JAVA=C:/Users/XX/AppData/Local/Huawei/Sdk/java/2.1.1.21/build-tools/lib/orm_annotations_java.jar

重新構建:創建數據庫類和表類。

數據庫類:例如,定義了一個數據庫類 LevelStore.java,數據庫包含了“Level”表,版本號為“1”。

數據庫類的 getVersion 方法和 getHelper 方法不需要實現,直接將數據庫類設為虛類即可。

package com.example.phone.store;

import com.example.phone.store.from.Level;

import ohos.data.orm.OrmDatabase;

import ohos.data.orm.annotation.Database;

@Database(entities = {Level.class}, version = 1)public abstract class LevelStore extends OrmDatabase {

}

創建表類:

package com.example.phone.store.from;

import ohos.data.orm.OrmObject;

import ohos.data.orm.annotation.Entity;

import ohos.data.orm.annotation.PrimaryKey;

@Entity(tableName = “level”)public class Level extends OrmObject {

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

public String getName() {

return name;

}

public Level() {

}

public Level(Long id, String name) {

this.id = id;

this.name = name;

}

@Override

public String toString() {

return “LevelCard{” +

“id=” + id +

“, name=‘” + name + ’‘’ +

‘}’;

}

public void setName(String name) {

this.name = name;

}

@PrimaryKey(autoGenerate = true)

private Long id;

private String name;

}

卡片數據將存在數據庫并定時刷新:

private static OrmContext ormContext = null;

private DatabaseHelper helper = new DatabaseHelper(this);

@Override

protected ProviderFormInfo onCreateForm(Intent intent) {

IntentParams params = intent.getParams();

if (params == null) {

return null;

}

// 卡片ID

Long formId = (long) params.getParam(AbilitySlice.PARAM_FORM_IDENTITY_KEY);

// 卡片名稱

String formName = (String) params.getParam(AbilitySlice.PARAM_FORM_NAME_KEY);

// 卡片規格信息

int specificationId = (int) params.getParam(AbilitySlice.PARAM_FORM_DIMENSION_KEY);

System.out.println( “創建卡片: ” + formId + “ ” + formName + “ ” + specificationId);

if(ormContext == null){

createDataBase(getContext());

}

// 存儲數據

Level newLevel = new Level(formId, formName);

boolean isSuccessed = ormContext.insert(newLevel);

isSuccessed = ormContext.flush();

}

public void createDataBase(Context context){

// 創建數據庫

ormContext = helper.getOrmContext(“LevelStore”, “LevelStore.db”, LevelStore.class);

// 啟動定時刷新程序

startTimer();

}

private void startTimer(){

Timer timer = new Timer();

timer.schedule(new TimerTask() {

@Override

public void run() {

// 查詢數據庫獲取數據

OrmPredicates query = ormContext.where(Level.class);

List《Level》 levelCard = ormContext.query(query);

ZSONObject zsonObject = new ZSONObject();

try {

for (Level l:levelCard){

Long formId = l.getId();

// 設置數據

double randomLevel = Math.random()*10;

DecimalFormat randomLevelDf = new DecimalFormat( “0.00”);

zsonObject.put(“level”, randomLevelDf.format(randomLevel));

FormBindingData formBindingData = new FormBindingData(zsonObject);

if (!updateForm(formId, formBindingData)) {

deleteLevelCard(formId);

}

}

} catch (FormException e) {

e.printStackTrace();

}

}

},5,700L);

}

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 華為
    +關注

    關注

    216

    文章

    34937

    瀏覽量

    254747
  • 鴻蒙系統
    +關注

    關注

    183

    文章

    2638

    瀏覽量

    67563
  • HarmonyOS
    +關注

    關注

    79

    文章

    2006

    瀏覽量

    31923

原文標題:假如中國空間站用上鴻蒙系統...

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    開源鴻蒙智慧加油機成功落地哈爾濱

    近日,由開源鴻蒙生態委員油氣專委會的三家成員單位三盈聯合科技股份有限公司、昆侖數智科技有限責任公司、深圳市證開鴻科技有限公司聯合研制的基于開源鴻蒙的智慧加油機,在中國石油黑龍江銷售分
    的頭像 發表于 05-09 09:47 ?79次閱讀

    鴻蒙操作系統首登電腦端,華為開啟鴻蒙辦公新時代

    2025年5月8日,華為在深圳舉辦了鴻蒙電腦技術與生態溝通鴻蒙操作系統首次在電腦端亮相。這既是中國電子信息產業的歷史性時刻,也是華為
    發表于 05-08 14:20 ?4401次閱讀
    <b class='flag-5'>鴻蒙</b>操作<b class='flag-5'>系統</b>首登電腦端,華為開啟<b class='flag-5'>鴻蒙</b>辦公新時代

    康尼新能源充放電新品發布圓滿舉行

    近日,南京康尼新能源汽車零部件有限公司(以下簡稱康尼新能源)充放電新品發布會在汽車之家南京空間站圓滿舉行。康尼新能源新零售發展部部長沈沛、南京汽車行業流通協會秘書長周婕、汽車之家南京空間站總經理仲誠、廣汽、理想、豐田、星途、傳祺等15家4s店總經理等嘉賓共同出席本次活動。
    的頭像 發表于 05-07 13:44 ?109次閱讀

    【貝啟科技BQ3568HM開源鴻蒙開發板深度試用報告】系統鏡像編譯和燒錄

    從貝啟開源社區: BQ3568HM開源鴻蒙系統主板資料匯總帖-開源鴻蒙技術交流-Bearkey-開源社區 ,可以獲取 貝啟科技BQ3568HM開源鴻蒙開發板 的所有資料。 開源
    發表于 03-16 10:53

    康尼新能源與汽車之家南京空間站達成戰略合作

    近日,康尼新能源與汽車之家南京空間站正式簽署戰略合作協議,雙方將在新能源汽車領域及充放電類產品展開深度合作,共同推動行業技術創新與市場拓展。康尼新能源常務副總經理王才振、汽車之家南京空間站總經理仲誠等領導共同參加本次簽約儀式。
    的頭像 發表于 03-11 11:46 ?431次閱讀

    NASA將首次通過Twitch平臺直播國際空間站活動實況

    據悉,NASA計劃在近日在國際空間站(ISS)進行首次Twitch直播。該直播將于美國東部時間2月12日上午11:45在NASA的Twitch頻道進行(https://www.twitch.tv
    的頭像 發表于 02-10 17:14 ?1118次閱讀

    請問dac8734上電順序如果沒有按照技術手冊怎么

    如果先給+15V和-15V上電,在給5V和3.3v上電怎么導致更新失敗嗎?還是不可控制的。
    發表于 02-10 08:22

    達實智能2024年智慧空間學習研討完美收官

    近日,2024年年度收官“共創可體驗的智慧空間”學習研討(第27期)在深圳達實智能大廈成功舉辦。
    的頭像 發表于 12-16 17:06 ?628次閱讀

    鴻蒙座艙:第三空間是一個繽紛多彩的萬花筒

    打破第三空間的兩難困境,鴻蒙座艙再升級
    的頭像 發表于 10-31 09:09 ?4368次閱讀
    <b class='flag-5'>鴻蒙</b>座艙:第三<b class='flag-5'>空間</b>是一個繽紛多彩的萬花筒

    華為原生鴻蒙操作系統正式發布

    10月22日晚,華為舉行了一場盛大的發布,正式推出了其原生鴻蒙操作系統HarmonyOS NEXT,也被稱為鴻蒙5.0。這一發布標志著鴻蒙
    的頭像 發表于 10-23 16:52 ?919次閱讀

    華為“純血”鴻蒙系統 HarmonyOS NEXT 將于9月底推出正式版

    據報道,正在舉行的 2024 年中國國際服務貿易交易(以下簡稱“服貿”)一場論壇上,華為鴻蒙行業解決方案總經理陳欣欣透露,華為完全自主開發、原生安全、原生智能的華為“純血”
    的頭像 發表于 09-14 14:27 ?2039次閱讀

    華為鴻蒙內核獲中國信通院自主成熟度A級認證

    ,自主研發比率高達100%,并被授予A級認證證書。這一榮譽的獲得,不僅是對華為鴻蒙內核技術實力的高度認可,也標志著我國在操作系統內核領域的自主研發邁上了新的臺階。
    的頭像 發表于 07-03 14:32 ?893次閱讀

    華為鴻蒙超越iOS成中國第二大操作系統

    近日,據權威研究機構Counterpoint Research發布的最新數據顯示,華為自主研發的鴻蒙HarmonyOS在中國市場的份額取得了顯著增長。從2023年一季度的8%一路飆升至2024年一季度的17%,鴻蒙
    的頭像 發表于 06-15 10:28 ?864次閱讀

    日本將發射首顆木質外殼衛星,預計9月抵達空間站

    該微型衛星預計今年9月由美國佛羅里達州肯尼迪航天中心發射升空,前往國際空間站,并于次月從日本“希望號”實驗艙投放至太空中。
    的頭像 發表于 05-30 15:48 ?633次閱讀

    神舟十八號乘組在軌完成滿月工作生活,開展空間科學實驗

    報道指出,生命生態實驗柜的空間先進水生生保系統關鍵技術研究項目進展喜人。搭載四尾斑馬魚和金魚藻的實驗組件隨船駛入空間站,經過在軌實驗,目前已成功采集兩次水樣并更換一次魚食盒。
    的頭像 發表于 05-27 15:44 ?736次閱讀
    主站蜘蛛池模板: 永久免费观看午夜视频在线 | 在线播放一区二区精品产 | 午夜免费福利网站 | 一区二区三区在线免费 | 久久精品国产福利 | 欧美日韩不卡码一区二区三区 | 草草影院www色极品欧美 | 黄视频在线免费看 | 免费看片aⅴ免费大片 | 成人欧美精品久久久久影院 | 中文字幕一区二区视频 | 4虎.最新地址 | 九九九精品午夜在线观看 | 国产一级特黄一级毛片 | 五月天婷婷爱 | 手机在线色 | 97久久综合区小说区图片专区 | 222网站高清免费观看 | 美国一级毛片不卡无毒 | 色视频亚洲 | 亚洲精品午夜久久aaa级久久久 | 女a男o肉文| 久久黄网站 | 天堂网www在线 | 她也啪97在线视频 | 一级做a爱免费观看视频 | 亚洲综合香蕉 | 亚洲一区二区三区免费 | 美女网站黄在线看 | 日韩一级片免费看 | 91大神精品全国在线观看 | 老熟女一级毛片 | 天天操夜夜操天天操 | 国产精品爽爽影院在线 | 午夜日本一区二区三区 | 国产免费午夜高清 | 男男互攻h啪肉np文厉世 | 嫩草影院播放地址一二三 | 两性色午夜视频免费播放 | 大香交伊人 | 色站视频 |