鴻蒙HarmonyOS組件的分布式適配和應用暢想
https://harmonyos.51cto.com/#zz
1、開發板是什么級別,類似51單片機,ESP8266或nanopi之類?
答:本次直播抽獎的WIFI Iot智能家居套件是可以運行鴻蒙OS的開發版套件,采用3861芯片。比51單片機的算力要強很多。
2、畫的組件有點擊或者觸摸事件?
答:單擊或觸摸事件需要通過ClickListner和TouchEventListner實現。
3、老師,可以幫忙整理下代碼結構和前后互掉邏輯嗎?謝謝🙏
答:可以的,我會近期理順以下發到51CTO論壇中。
4、和直接AI camera C++源碼控制的LCD顯示有什么聯系?
答:不好意思,這個問題我暫時不太了解,不能夠給出準確的回答。
5、DevEcoStudio里用js寫的UI需要用自定義組件實現?
答:JS UI中也有很多預設的組件類型可以直接使用,但是對于某些特別需求下也可以通過自定義組件來實現組件功能。
6、RoundProgressBar 可以實現點擊調整,或者拖動調整嗎?
答:不可以的。
7、為什么鴻蒙FA要區分exampleAblity和exampleAbilitySlice兩個類,基于什么思路設計的?
答:Ablity和AbilitySlice是兩個概念,分別有點類似于android中的Activity和Fragment,但是也并不完全一樣。同一個界面中,只能顯示1個AbilitySlice,而Fragment可以顯示多個。
Ability是鴻蒙應用程序開發的基本單元,這么設計是為了能夠將功能相關的界面組合在1個Ability之中,方便應用程序在多個設備之間的互相調用。
8、控件自繪的流程和Vc 的gdi 是不是一樣的原理呢?
答:原理并不完全一樣,但是似乎也可以這么類比,畢竟都需要高級的繪圖方法來繪制我們想要的界面功能。
9、鴻蒙的界面開發和安卓,web的界面開發有什么相同和不同的地方呢?
答:鴻蒙的UI開發分為兩類:Java UI和JavaScript UI。Java UI與Android UI開發非常類似。JavaScript UI與Web界面開發非常類似。
從技術實現上,差別不大,但是仍然需要開發者熟悉鴻蒙UI中各個組件的用法。
10、董老師好,請問一下startAbility() 用到的ElementName 和 OperationBuilder 有什么區別?
答:通過ElementName 和OperationBuilder 都可以進行Ability的跳轉,只是ElementName 可以序列化,而OperationBuilder 不可以。
11、從你了解的看,南向和北向開發聯調估計什么時候可以進行?
答:這個估計還沒有確切的日期。
12、"從https://harmonyos.51cto.com/posts/2798下載的代碼無法運行,提示* What went wrong:
Execution failed for task ':entry:preBuild'.
Check if 'storeFile' is configured correctly, it can't be null or empty.為啥?"
答:可以加將entry的build.gradle中的簽名部分刪除試一下。
這個問題我已經在上面的帖子中回復了,請查看哦。
13、對于有多年嵌入式C開發基礎,剛學習JAVA但是沒android基礎的開發者,對于鴻蒙應用開發有什么建議和注意事項?
答:首先,應當學習好Java語言,因為畢竟和C語言區別比較大(面向對象)。然后,可以適當的學習和參考Android一些資料,畢竟鴻蒙OS和Android在開發上比較類似。
14、鴻蒙應用沙箱和安卓類似,但是官方文檔沒有寫如何通過類似FileProvider來給其他應用共享文件,現在訪問SD卡的路徑都是沒有權限,無法直接通過文件路徑生成的uri訪問,請問有沒有什么其他方法?
答:不好意思,這個問題我暫時不太了解,不能夠給出準確的回答。我近期研究一下,然后在51CTO論壇中給您回復。
15、是不是說JS寫界面,Java寫邏輯,這種搭配設備的兼容性更好?
答:在一定層面上可以這么說。例如在輕量化穿戴設備上,只能通過JS設計用戶界面,但是無法直接運行Java的邏輯代碼。這時候可以通過分布式能力,遠程調用手機等其他設備的Java邏輯代碼(Action)。
16、地圖可以集成各個地圖服務商的SDK嗎?如何來做
答:絕大多數的地圖服務商都是閉源的SDK,這種情況下并不能集成。但是多數服務商都通過切片的形式提供地圖接口,這樣的話我們就可以輕松調用這些地圖了。
17、鴻蒙的布局和組件相對安卓有哪些主要改進和優勢?對應軟總線有哪些特色的布局和組件?
答:改進:提供了很多原子化布局能力和自適應功能。例如,可以通過AdaptiveBoxLayout來進行自適應的布局,這一點非常有特色。
軟總線是底層技術,不太涉及布局和組件的設計。
18、請問Java和js在編程方法和應用領域主要區別是什么?各自的優勢如何?
答:Java提供了細粒度的UI接口,采用命令式編程范式,并且提供了最為豐富的API。JavaScript提供了高層UI描述,采用聲明式編程范式,目前其API較為有限。事實上,開發者可以采用混合編程的方式,同時使用Java和JavaScript進行應用程序設計。例如,可以采用Java語言進行功能類模塊的編程,實現業務邏輯,使用JavaScript語言進行界面編程,實現數據內容的展示。
19、單純的程序員,弄出來的app很丑,鴻蒙控件有沒有提供幾套皮膚可以切換呢?比如,亮色的皮膚,暗色的皮膚。謝謝老師!
答:鴻蒙OS中是存在主題(Theme)功能的,但是目前其相關的API似乎并沒有完全公開,還需要各位開發者等待。
20、老師你好,我想問問有沒有c應用相關的課程,這個分布式是否局限于Java應用
答:這里的C應用指的是C語言開發的應用程序的。目前鴻蒙OS應用程序開發所能夠使用的語言為Java、JavaScript和C++。但是C++通常應用在性能要求高的邏輯代碼中,不能夠設計用戶界面。
從UI層面,分布式能力不僅限于Java應用,也支持JavaScript應用。
21、董老師,我看qq群里面好多人都是想用js開發app,是不是因為java的控件庫數量少,而js控件庫數量豐富?
答:目前來看,Java和JavaScript都提供了基礎的組件(控件)庫,但是好像數量都基本夠用但并不豐富。我覺得大家可以根據自己的知識結構和喜好選擇Java和JS語言。不過JS語言的API目前并不全面,有些具體的功能還需要Java來實現。
22、董老師,鴻蒙開發工具里面有沒有現成的一些控件庫使用?
答:在鴻蒙SDK中,提供了包含有文本、按鈕等常見的組件類,即比較基礎的組件(控件)庫。
23、老師有空給我們整個類似安卓的mvp或者mvcm唄?
答:非常感謝,您的需求我已經記下來,以后有機會我會研究。
24、請問我這的Text的沒有weight比重,只有text-weight,這是怎么回事?
答:weight比重只存在于當這個組件處在定向布局(Directionallayout)的情況下。
25、發現官方的文檔里面例子都比較少,那么怎么把控件的屬性和基本用法了解清楚呢?好期待有那種根據上下文來展開常用用法的插件提供。就像aiXcoder一樣的,在一個類或方法上面顯示這個類或方法的常用用法 。
答:目前關于鴻蒙OS開發的資料較少,但是還是希望各位開發者理解,這是因為鴻蒙是一個全新的系統,許多資料還需要各位開發者共同努力。目前,可以參考51CTO學院上的課程以及相關的文章,希望能對您有所幫助。
26、老師,這個課是有JavaScript基礎才能看懂么?分布式應用是編好一段代碼,直接各種設備通用還是得對各設備專門編代碼,大概怎么適配?
答:這個課程主要介紹了Java UI,還沒有涉及到JavaScript UI。分布式應用是各個設備通用的。分布式應用可以包含多個HAP(harmonyOS Ability Package),不能的HAP可以對應不同的設備類型。在華為應用商店分發應用時,是按需分發HAP的。
27、如果從頭學習Java代碼的話,需要學習到什么程度?
答:語言知識學的越多越好。最少需要掌握到面向對象的3個特征:封裝、繼承和多態。
但是,我當時學習Android開發時,也僅僅學習了很少的Java知識。但是Java知識越多,可能會讓你充滿學習信心和興趣。
如果時間充裕,還是希望好好學習完Java再學習鴻蒙OS。
28、如果所有的軟件功能都打通了,軟件可以共享資源,比如地圖部分,每個軟件都調用相同的地圖組件,視頻部分,每個軟件也都調用相同的視頻軟件,會不會緩解軟件過于臃腫的問題
具有分布式處理功能的軟件大小會不會比安卓系統的軟件大小還要大,目前軟件的體積都好臃腫
還有,這兩個設備上的軟件功能應該也不一樣吧,軟件大小是不是也不一樣。但是如果依靠投屏或者分布式處理,是不是另外一個設別就不想需要安裝那個軟件了呢。
答:統一的操作系統,但是不同設別之間的差別還是很大的,會針對不同的設備進行軟件的新適配嗎。那一個軟件如果想在多種設備上運行是不是還需要重新編寫軟件的代碼
鴻蒙OS可以解決應用程序臃腫的問題。分布式應用可以包含多個HAP(harmonyOS Ability Package),不同的HAP可以對應不同的設備類型。在華為應用商店分發應用時,是按需分發HAP的。另外,還有一些HAP是在安裝的時候并不直接下載的,而是在需要的時候再進行下載。
因此,在不同設備上安裝同一的軟件,其軟件的大小很有可能不一樣。不過,即使鴻蒙OS有分布式能力,每一個運行應用程序的設備在運行應用程序之前還是需要從應用市場上拉取安裝包的。
在鴻蒙SDK中,提供了許多組件本身是具有適配能力的。例如,可以通過AdaptiveBoxLayout來進行自適應的布局,這一點非常有特色。但是,在某些復雜需求的情況下,還是需要針對不同設備來重新設計UI界面的。
https://harmonyos.51cto.com/#zz