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

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

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

鴻蒙OS開發(fā):【一次開發(fā),多端部署】(視頻應(yīng)用)

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-25 16:29 ? 次閱讀

介紹

隨著智能設(shè)備類型的不斷豐富,用戶可以在不同的設(shè)備上享受同樣的服務(wù),但由于設(shè)備形態(tài)不盡相同,開發(fā)者往往需要針對具體設(shè)備修改或重構(gòu)代碼,以實(shí)現(xiàn)功能完整性和界面美觀性的統(tǒng)一。OpenHarmony為開發(fā)者提供了“一次開發(fā),多端部署”的系統(tǒng)能力,讓開發(fā)者可以基于一次開發(fā),快速構(gòu)建不同類型終端上的應(yīng)用,降低開發(fā)成本,提高開發(fā)效率。

本篇Codelab基于“一次開發(fā),多端部署”提供的自適應(yīng)布局和響應(yīng)式布局能力,實(shí)現(xiàn)了常見的視頻播放應(yīng)用的主界面。通過三層工程結(jié)構(gòu)盡可能復(fù)用了部分代碼,并根據(jù)設(shè)備尺寸的區(qū)別設(shè)計了對應(yīng)的頁面以兼顧美觀和易用。應(yīng)用被打開時會根據(jù)具體的設(shè)備形態(tài)顯示對應(yīng)的UI界面,其中RK3568開發(fā)板的首頁效果如圖所示:

相關(guān)概念

  • [一次開發(fā),多端部署]:指一套代碼工程,一次開發(fā)上架,多端按需部署,目標(biāo)是支撐開發(fā)者高效地開發(fā)支持多種終端設(shè)備形態(tài)的應(yīng)用。
  • [自適應(yīng)布局]:當(dāng)外部容器大小發(fā)生變化時,元素可以根據(jù)相對關(guān)系自動變化以適應(yīng)外部容器變化的布局能力。相對關(guān)系如占比、固定寬高比、顯示優(yōu)先級等。當(dāng)前自適應(yīng)布局能力有7種:拉伸能力、均分能力、占比能力、縮放能力、延伸能力、隱藏能力、折行能力。自適應(yīng)布局能力可以實(shí)現(xiàn)界面顯示隨外部容器大小連續(xù)變化。
  • [響應(yīng)式布局]:當(dāng)外部容器大小發(fā)生變化時,元素可以根據(jù)斷點(diǎn)、柵格或特定的特征(如屏幕方向、窗口寬高等)自動變化以適應(yīng)外部容器變化的布局能力。當(dāng)前響應(yīng)式布局能力有3種:斷點(diǎn)、媒體查詢、柵格布局。
  • [GridRow]:柵格容器組件,僅可以和柵格子組件(GridCol)在柵格布局場景中使用。
  • [GridCol]:柵格子組件,必須作為柵格容器組件(GridRow)的子組件使用。

環(huán)境搭建

軟件要求

  • [DevEco Studio]版本:DevEco Studio 3.1 Release。
  • OpenHarmony SDK版本:API version 9。

硬件要求

  • 開發(fā)板類型:[潤和RK3568開發(fā)板]。
  • OpenHarmony系統(tǒng):3.2 Release。

環(huán)境搭建

完成本篇Codelab我們首先要完成開發(fā)環(huán)境的搭建,本示例以RK3568開發(fā)板為例,參照以下步驟進(jìn)行:

  1. [獲取OpenHarmony系統(tǒng)版本]:標(biāo)準(zhǔn)系統(tǒng)解決方案(二進(jìn)制)。以3.2 Release版本為例:
  2. 搭建燒錄環(huán)境。
    1. [完成DevEco Device Tool的安裝]
    2. [完成RK3568開發(fā)板的燒錄]
  3. 搭建開發(fā)環(huán)境。
    1. 開始前請參考[工具準(zhǔn)備],完成DevEco Studio的安裝和開發(fā)環(huán)境配置。
    2. 開發(fā)環(huán)境配置完成后,請參考[使用工程向?qū)創(chuàng)建工程(模板選擇“Empty Ability”)。
    3. 工程創(chuàng)建完成后,選擇使用[真機(jī)進(jìn)行調(diào)測]。
    4. 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md點(diǎn)擊或者復(fù)制轉(zhuǎn)到。

代碼結(jié)構(gòu)解讀

本篇Codelab只對核心代碼進(jìn)行講解,對于完整代碼,我們會在gitee中提供。

“一次開發(fā),多端部署”推薦使用三層目錄的工程結(jié)構(gòu)來管理工程,上層目錄包括common、features和product,common為公共特性目錄,存放不同形態(tài)設(shè)備公用的類和常量,features為功能模塊目錄,存放應(yīng)用的各個功能模塊,product為產(chǎn)品層目錄,存放不同形態(tài)設(shè)備范類代碼。本Codelab不涉及功能特性,因此只存在common、product兩個分層。

├──common                                // 公共能力層
│  ├──src/main/ets
│  │  ├──constants
│  │  │  └──CommonConstants.ets          // 公共常量類
│  │  ├──utils
│  │  │  └──BreakpointSystem.ets         // 斷點(diǎn)工具類
│  │  └──viewmodel                       // 資源類接口
│  │     ├──BottomTabsItem.ets
│  │     ├──DriveTabsItem.ets  
│  │     ├──FindTabsItem.ets
│  │     ├──HomeTabsItem.ets
│  │     └──MineTabsItem.ets
│  └──src/main/resources                 // 資源文件夾
└──product                               // 產(chǎn)品定制層
   ├──default/src/main/ets               // 支持手機(jī)(含折疊屏)、平板
   │  ├──entryability
   │  │  └──EntryAbility.ts              // 程序入口類
   │  ├──pages
   │  │  └──MainPage.ets                 // 主頁面
   │  ├──view
   │  │  ├──BottomTabsComponent.ets      // 底部頁簽組件
   │  │  ├──DriveTabsComponent.ets       // 云盤頁組件
   │  │  ├──FindTabsComponent.ets        // 發(fā)現(xiàn)頁組件
   │  │  ├──HomeTabsComponent.ets        // 首頁組件
   │  │  ├──LeftTabsComponent.ets        // 側(cè)邊欄組件
   │  │  ├──MineTabsComponent.ets        // 個人頁組件
   │  │  ├──RecentlyPlayedComponent.ets  // “最近播放”列表
   │  │  └──RecommendComponent.ets       // “為你推薦”列表
   │  └──viewmodel
   │     ├──BottomTabsModel.ets          // 底部頁簽model
   │     ├──DriveTabsModel.ets           // 云盤頁model
   │     ├──FindTabsModel.ets            // 發(fā)現(xiàn)頁model
   │     ├──HomeTabsModel.ets            // 首頁model
   │     └──MineTabsModel.ets            // 個人頁model
   └──default/src/main/resources         // 資源文件夾

主頁面框架設(shè)計

為了操作便捷和充分利用不同形態(tài)設(shè)備的屏幕空間,按屏幕寬度的大小將設(shè)備劃分為3類:

  • sm:320vp<=width<520vp,典型設(shè)備為手機(jī)。
  • md:520vp<=width<840vp,典型設(shè)備為折疊屏。
  • lg:840vp<=width,典型設(shè)備為平板或PC。

根據(jù)用戶使用場景,當(dāng)操作設(shè)備尺寸為sm或md時,一般為豎向使用,此時用于切換應(yīng)用頁面的頁簽欄適合置于底部。當(dāng)操作設(shè)備尺寸為lg時,一般為橫向使用,此時頁簽欄適合置于左側(cè)。

// MainPage.ets
@Entry
@Component
struct MainPage {
  ...
  build() {
    SideBarContainer(SideBarContainerType.Embed) {
      LeftTabs({ bottomTabIndex: $bottomTabIndex });  // 側(cè)邊欄

      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.End, justifyContent: FlexAlign.End }) {
        Tabs({ barPosition: BarPosition.End, index: 0, controller: this.controller }) {
          ... // 頁面內(nèi)容
        }
        if (this.currentBreakpoint !== Const.LG) {
          BottomTabs({ bottomTabIndex: $bottomTabIndex })  // 底部欄,當(dāng)屏幕尺寸不為"lg"時顯示
        }
      }
      .width(Const.FULL_SIZE)
      .backgroundColor($r('app.color.background_color'))
    }
    .showSideBar(this.currentBreakpoint === Const.LG)  // 當(dāng)屏幕尺寸為"lg"時顯示側(cè)邊欄
    .showControlButton(false)
    .sideBarWidth(Const.SIDEBAR_WIDTH)
    .maxSideBarWidth(Const.SIDEBAR_WIDTH_MAX)
    .minSideBarWidth(Const.SIDEBAR_WIDTH_MIN)
  }
}

各頁面代碼實(shí)現(xiàn)

首頁

首頁顯示輪播圖和“最近播放”、“為你推薦”兩個列表,輪播圖根據(jù)屏幕尺寸的區(qū)別,有顯示數(shù)量的不同(sm為1,md為2,lg為3),列表使用具備自適應(yīng)布局能力的List組件。

// HomeTabsComponent.ets
@Component
export struct HomeTabs {
  @Link currentBreakpoint: string;
  private scroller: Scroller = new Scroller();
  build() {
    Scroll(this.scroller) {
      GridRow({
        // 設(shè)置sm、md和lg的布局列數(shù)分別為4、8、12
        columns: { xs: Const.GRID_4, sm: Const.GRID_4, md: Const.GRID_8, lg: Const.GRID_12 },
        gutter: { x: $r('app.float.gutter_home') },
        breakpoints: { value: [Const.BREAKPOINTS_SM, Const.BREAKPOINTS_MD, Const.BREAKPOINTS_LG] }
      }) {
        GridCol({ span: { xs: Const.GRID_4, sm: Const.GRID_4, md: Const.GRID_8, lg: Const.GRID_12 } }) {
          ... // 標(biāo)題
        }
        .height($r('app.float.title_height'))
        .margin({ bottom: $r('app.float.home_margin1') })

        // 搜索欄在sm、md下占滿全部列,在lg下占8列
        GridCol({ span: { xs: Const.GRID_4, sm: Const.GRID_4, md: Const.GRID_8, lg: Const.GRID_8 } }) {
          ... // 搜索欄
        }
        .height($r('app.float.home_grid_height1'))

        GridCol({ span: { xs: Const.GRID_4, sm: Const.GRID_4, md: Const.GRID_8, lg: Const.GRID_12 } }) {
          Swiper() {
            ...
          }
          .height($r('app.float.home_swiper_height'))
          .itemSpace(Const.ITEM_SPACE)
          // 根據(jù)屏幕尺寸大小選擇不同的輪播圖數(shù)量
          .displayCount(this.currentBreakpoint === Const.LG ?
          Const.NUM_3 : (this.currentBreakpoint === Const.MD ? Const.NUM_2 : Const.NUM_1))
        }
        .height($r('app.float.home_grid_height2'))

        GridCol({ span: { xs: Const.GRID_4, sm: Const.GRID_4, md: Const.GRID_8, lg: Const.GRID_12 } }) {
          ... // ”最近播放”列表
        }
        .height($r('app.float.home_grid_height3'))

        GridCol({ span: { xs: Const.GRID_4, sm: Const.GRID_4, md: Const.GRID_8, lg: Const.GRID_12 } }) {
          ... // ”為你推薦”列表 
        }
        .height($r('app.float.home_column_height'))
      }
      .height(Const.FULL_SIZE)
    }
    ...
  }
}

發(fā)現(xiàn)頁

發(fā)現(xiàn)頁使用柵格布局實(shí)現(xiàn)“一次開發(fā),多端部署”能力,把sm設(shè)置為4列,md設(shè)置為8列,lg設(shè)置為12列。熱播榜單在不同設(shè)備尺寸上分別占據(jù)4列、6列和8列。

// FindTabsComponent.ets
@Component
export struct FindTabs {
  private scroller: Scroller = new Scroller();
  build() {
    Scroll(this.scroller) {
      GridRow({
        // 設(shè)置sm、md和lg的布局列數(shù)分別為4812
        columns: { xs: Const.GRID_4, sm: Const.GRID_4, md: Const.GRID_8, lg: Const.GRID_12 },
        gutter: { x: $r('app.float.gutter_find') },
        breakpoints: { value: [Const.BREAKPOINTS_SM, Const.BREAKPOINTS_MD, Const.BREAKPOINTS_LG] }
      }) {
        GridCol({ span: { xs: Const.GRID_4, sm: Const.GRID_4, md: Const.GRID_8, lg: Const.GRID_12 } }) {
          ... // 標(biāo)題
        }
        .height($r('app.float.title_height'))

        LazyForEach(new FindDataSource(FindTabsList), (item: FindTabsItem) = > {
          // 設(shè)置熱播榜單在sm、md和lg上分別占據(jù)4、6、8列,并且設(shè)置offset屬性保證在不同設(shè)備形態(tài)上都能保持居中
          GridCol({
            span: { xs: Const.GRID_4, sm: Const.GRID_4, md: Const.GRID_6, lg: Const.GRID_8 },
            offset: {
              md: FindTabsList.indexOf(item) === Const.OFFSET_0 ? Const.OFFSET_1 : Const.OFFSET_2,
              lg: FindTabsList.indexOf(item) === Const.OFFSET_0 ? Const.OFFSET_2 : Const.OFFSET_4
            }
          }) {
            ... // 榜單內(nèi)容
          }
        }, (item: FindTabsItem) = > JSON.stringify(item))
      }
    }
    ...
  }
}

RK3568開發(fā)板上發(fā)現(xiàn)頁的實(shí)際效果如圖所示:

云盤頁

云盤頁的柵格劃分和發(fā)現(xiàn)頁相同,但是每個子組件在所有屏幕尺寸上都只占據(jù)2列。

// DriveTabsComponent.ets
@Component
export struct DriveTabs {
  private scroller: Scroller = new Scroller();
  build() {
    Scroll(this.scroller) {
      GridRow({
        // 設(shè)置sm、md和lg的布局列數(shù)分別為4、812
        columns: { xs: Const.GRID_4, sm: Const.GRID_4, md: Const.GRID_8, lg: Const.GRID_12 },
        gutter: { x : $r('app.float.gutter_drive') },
        breakpoints: { value: [Const.BREAKPOINTS_SM, Const.BREAKPOINTS_MD, Const.BREAKPOINTS_LG] }
      }) {
        GridCol({ span: { xs: Const.GRID_4, sm: Const.GRID_4, md: Const.GRID_8, lg: Const.GRID_12 } }) {
          ... // 標(biāo)題
        }
        .height($r('app.float.title_height'))

        ForEach(DriveList, (item: DriveTabsItem) = > {
          // 設(shè)置云盤內(nèi)容在sm、md和lg上均占據(jù)2列
          GridCol({ span: { xs: Const.NUM_2, sm: Const.NUM_2, md: Const.NUM_2, lg: Const.NUM_2 } }) {
            ... // 云盤內(nèi)容
          }
        }, (item: DriveTabsItem) = > JSON.stringify(item))
      }
    }
    ...
  }
}

RK3568開發(fā)板上云盤頁的實(shí)際效果如圖所示:

個人頁

個人頁的柵格劃分仍然和發(fā)現(xiàn)頁相同,但子組件在sm、md形態(tài)下占滿全部列,在lg形態(tài)下只占據(jù)8列。

// MineTabsComponent.ets
@Component
export struct MineTabs {
  private scroller: Scroller = new Scroller();
  build() {
    Scroll(this.scroller) {
      GridRow({
        // 設(shè)置sm、md和lg的布局列數(shù)分別為4、8、12
        columns: { xs: Const.GRID_4, sm: Const.GRID_4, md: Const.GRID_8, lg: Const.GRID_12 },
        gutter: { x: $r('app.float.gutter_mine') },
        breakpoints: { value: [Const.BREAKPOINTS_SM, Const.BREAKPOINTS_MD, Const.BREAKPOINTS_LG] }
      }) {
        // 設(shè)置個人頁在sm和md上占滿全部列,在lg上占8列,為保證居中在lg上設(shè)置offset為2列
        GridCol({
          span: { xs: Const.GRID_4, sm: Const.GRID_4, md: Const.GRID_8, lg: Const.GRID_8 },
          offset: { lg: Const.OFFSET_2 }
        }) {
          ... // 個人頁內(nèi)容
        }
      }
      .height(Const.FULL_SIZE)
      .backgroundColor($r('app.color.mine_background_color'))
    }
    ...
  }
}

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

搜狗高速瀏覽器截圖20240326151547.png
RK3568開發(fā)板上個人頁的實(shí)際效果如圖所示:

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

    關(guān)注

    79

    文章

    1966

    瀏覽量

    29962
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3635

    瀏覽量

    16061
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    4359
收藏 人收藏

    評論

    相關(guān)推薦

    ?HarmonyOS"一次開發(fā),多端部署"優(yōu)秀實(shí)踐——玩機(jī)技巧

    的潛在用戶群體。個應(yīng)用要在多類設(shè)備上提供統(tǒng)的內(nèi)容,需要適配不同的屏幕尺寸和硬件,開發(fā)成本較高。"一次開發(fā)
    的頭像 發(fā)表于 08-30 10:25 ?2681次閱讀
    ?HarmonyOS"<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>"優(yōu)秀實(shí)踐——玩機(jī)技巧

    HarmonyOS開發(fā)案例:【一次開發(fā),多端部署視頻應(yīng)用)】

    者提供了“一次開發(fā)多端部署”的系統(tǒng)能力,讓開發(fā)者可以基于一次
    的頭像 發(fā)表于 05-11 15:41 ?1304次閱讀
    HarmonyOS<b class='flag-5'>開發(fā)</b>案例:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>(<b class='flag-5'>視頻</b>應(yīng)用)】

    HarmonyOS開發(fā)案例:【一次開發(fā),多端部署-音樂專輯】

    基于自適應(yīng)和響應(yīng)式布局,實(shí)現(xiàn)一次開發(fā)多端部署音樂專輯頁面。
    的頭像 發(fā)表于 05-13 16:48 ?628次閱讀
    HarmonyOS<b class='flag-5'>開發(fā)</b>案例:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>-音樂專輯】

    鴻蒙OS開發(fā):【一次開發(fā)多端部署】(天氣應(yīng)用)案例

    本章通過個天氣應(yīng)用,介紹多應(yīng)用的整體開發(fā)過程,包括UX設(shè)計、工程管理及調(diào)試、頁面開發(fā)等。
    的頭像 發(fā)表于 05-15 15:42 ?964次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(天氣應(yīng)用)案例

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(多天氣)項(xiàng)目

    本示例展示個天氣應(yīng)用界面,包括首頁、城市管理、添加城市、更新時間彈窗,體現(xiàn)一次開發(fā),多端部署的能力。
    的頭像 發(fā)表于 05-20 14:59 ?784次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(<b class='flag-5'>一</b>多天氣)項(xiàng)目

    鴻蒙OS開發(fā):【一次開發(fā)多端部署】(音樂專輯主頁)

    本示例使用一次開發(fā)多端部署中介紹的自適應(yīng)布局能力和響應(yīng)式布局能力進(jìn)行多設(shè)備(或多窗口尺寸)適配,保證應(yīng)用在不同設(shè)備或不同窗口尺寸下可以正常顯示。
    的頭像 發(fā)表于 05-21 14:48 ?644次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(音樂專輯主頁)

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(音樂專輯頁面)

    基于自適應(yīng)和響應(yīng)式布局,實(shí)現(xiàn)一次開發(fā)、多端部署音樂專輯頁面。
    的頭像 發(fā)表于 05-25 16:21 ?702次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(音樂專輯頁面)

    鴻蒙OS開發(fā):典型頁面場景【一次開發(fā)多端部署】實(shí)戰(zhàn)(音樂專輯頁2)

    本示例使用[一次開發(fā)多端部署]中介紹的自適應(yīng)布局能力和響應(yīng)式布局能力進(jìn)行多設(shè)備(或多窗口尺寸)適配,保證應(yīng)用在不同設(shè)備或不同窗口尺寸下可以正常顯示。
    的頭像 發(fā)表于 05-25 16:47 ?2005次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:典型頁面場景【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實(shí)戰(zhàn)(音樂專輯頁2)

    鴻蒙OS開發(fā):典型頁面場景【一次開發(fā)多端部署】實(shí)戰(zhàn)(設(shè)置典型頁面)

    本示例展示了設(shè)置應(yīng)用的典型頁面,其在小窗口和大窗口有不同的顯示效果,體現(xiàn)一次開發(fā)、多端部署的能力。
    的頭像 發(fā)表于 05-27 09:36 ?1064次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:典型頁面場景【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實(shí)戰(zhàn)(設(shè)置典型頁面)

    HarmonyOS\"一次開發(fā),多端部署\"優(yōu)秀實(shí)踐——玩機(jī)技巧,碼上起航

    的潛在用戶群體。個應(yīng)用要在多類設(shè)備上提供統(tǒng)的內(nèi)容,需要適配不同的屏幕尺寸和硬件,開發(fā)成本較高。\"一次開發(fā)
    發(fā)表于 08-30 18:14

    華為開發(fā)者大會2021:一次開發(fā) 多端部署

    一次開發(fā) 多端部署使能開發(fā)者從單設(shè)備生態(tài)跨入多設(shè)備生態(tài)!
    的頭像 發(fā)表于 10-22 15:09 ?1611次閱讀
    華為<b class='flag-5'>開發(fā)</b>者大會2021:<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b> <b class='flag-5'>多端</b><b class='flag-5'>部署</b>

    華為開發(fā)者大會2021:軟件部總裁龔體 鴻蒙系統(tǒng) 一次開發(fā) 多端部署 萬物互連

    華為開發(fā)者大會2021:鴻蒙系統(tǒng) 一次開發(fā) 多端部署 萬物互連 在華為
    的頭像 發(fā)表于 10-22 15:09 ?4467次閱讀
    華為<b class='flag-5'>開發(fā)</b>者大會2021:軟件部總裁龔體 <b class='flag-5'>鴻蒙</b>系統(tǒng) <b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b> <b class='flag-5'>多端</b><b class='flag-5'>部署</b> 萬物互連

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(簡介)

    隨著終端設(shè)備形態(tài)日益多樣化,分布式技術(shù)逐漸打破單硬件邊界,個應(yīng)用或服務(wù),可以在不同的硬件設(shè)備之間隨意調(diào)用、互助共享,讓用戶享受無縫的全場景體驗(yàn)。而作為應(yīng)用開發(fā)者,廣泛的設(shè)備類型也能為應(yīng)用帶來廣大
    的頭像 發(fā)表于 05-14 15:20 ?1132次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(簡介)

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(多設(shè)備自適應(yīng)能力)簡單介紹

    本示例是《一次開發(fā)多端部署》的配套示例代碼,展示了[頁面開發(fā)多能力],包括自適應(yīng)布局、響應(yīng)
    的頭像 發(fā)表于 05-21 14:59 ?2222次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(多設(shè)備自適應(yīng)能力)簡單介紹

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】( 設(shè)置app頁面)

    本示例展示了設(shè)置應(yīng)用的典型頁面,其在小窗口和大窗口有不同的顯示效果,體現(xiàn)一次開發(fā)、多端部署的能力。
    的頭像 發(fā)表于 05-21 14:56 ?887次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】( 設(shè)置app頁面)