鴻蒙Harmony 應用開發view-binding 插件,和findComponentById說再見

2021-01-10 51CTO

想了解更多內容,請訪問:

51CTO和華為官方戰略合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

harmony-view-binding

最新版本:Gitee倉庫查看

是什麼?

- view-binding for harmony

- 鴻蒙應用開發view-binding插件,消除findComponentById模版代碼

- 無註解、編譯期間生成Binding類文件

怎麼用?

1. 在project根目錄的build.gradle文件中引入view-binding的maven倉庫地址和classpath

buildscript {     repositories {         maven {             url 'https://mirrors.huaweicloud.com/repository/maven/'         }         maven {             url 'https://developer.huawei.com/repo/'         }          jcenter()         maven{             url 'https://dl.bintray.com/eholee/maven'         }     }     dependencies {         classpath 'com.huawei.ohos:hap:2.4.0.1'         // view-binding         classpath 'com.eholee.plugin:view-binding:1.0.1'     } } 

2. 在feature模塊的build.gradle文件中引入view-binding插件

apply plugin: 'com.huawei.ohos.hap'  apply plugin: 'com.eholee.plugin.view-binding'  ohos {  ...  }  viewBinding{  enable true  }  dependencies {  ...  } 

3. 執行gradle sync 即可自動生成ViewBinding類,生成目錄在feature中的build/generated/source/viewBinding中,

類的命名方法通過獲得xml布局文件名後遵循大駝峰法(Upper Camel Case)並追加Binding後綴,如:MainAbilityBinding

4. 在需要填充布局的地方使用

主要是兩個api:1. binding = AbilityMainBinding.parse(this); 2. binding.getRoot()

public class MainAbilitySlice extends AbilitySlice {  private AbilityMainBinding binding;  @Override  public void onStart(Intent intent) {  super.onStart(intent);  binding = AbilityMainBinding.parse(this);  super.setUIContent(binding.getRoot());  binding.textHelloworld.setClickedListener(new Component.ClickedListener() {  @Override  public void onClick(Component component) {  new ToastDialog(MainAbilitySlice.this).setText("click").show();  }  });  }  @Override  public void onActive() {  super.onActive();  }  @Override  public void onForeground(Intent intent) {  super.onForeground(intent);  }  } 

可選項

1. 提供設置根布局api

parse(Context context, ComponentContainer parent, boolean attachToRoot)   

2. 支持feature模塊view-binding功能的開啟與關閉:

feature中的build.gradle中設置

viewBinding{         enable false          // false為關閉,插件將不會解析該feature所有的xml布局文件,         //true為開啟,插件將會解析該feature下所有的xml布局文件 }  

3. 支持針對單個xml布局文件開啟與關閉view-binding功能

默認是都開啟,如需關閉,需在xml根節點中加入如下信息:

xmlns:eholee="http://schemas.eholee.com/viewbinding"  eholee:view_binding="false"  示例:  <?xml version="1.0" encoding="utf-8"?>  <DirectionalLayout       xmlns:ohos="http://schemas.huawei.com/res/ohos"       xmlns:eholee="http://schemas.eholee.com/viewbinding"       eholee:view_binding="false"       ohos:height="match_parent"       ohos:width="match_parent"       ohos:background_element="$color:colorAppBackground"       ohos:orientation="vertical">       ...   </DirectionalLayout>  

Gitee倉庫地址:https://gitee.com/jeffer_s/harmony-view-binding

參考

1. Android ViewBinding

2. com.huawei.ohos:hap:2.4.0.1 插件api

LICENSE

Apache License 2.0

©著作權歸作者和HarmonyOS技術社區共同所有,如需轉載,請註明出處,否則將追究法律責任.

想了解更多內容,請訪問:

51CTO和華為官方戰略合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

【編輯推薦】

點讚 0

相關焦點

  • 華為發布鴻蒙:鴻蒙有開天闢地的意思,希望給世界帶來和諧
    商悟社8月9日今日,在2019華為開發者大會上,華為消費者業務CEO餘承東正式宣布:發布華為鴻蒙OS,據了解,這是全球首個基於微內核的全場景分布式OS,可支撐各種不同的設備,為消費者帶來天生流暢、內核級的安全和生態共享。
  • 鴻蒙系統特性「揭曉」!一次開發靈活使用,生態構建難題被解決?
    根據華為副總裁的說法,華為的鴻蒙作業系統是一個分布式、輕量級、緊湊的作業系統,它有著十分強大的功能,但是它並不複雜,相比市面上其它的作業系統,它的代碼行數要少很多,所以在安全性上,鴻蒙作業系統也要更高,也就是說,鴻蒙系統雖然看起來很簡單,但其內在並不簡單。而在應用的開發上,華為的副總裁闡述了鴻蒙系統跟安卓以及iOS手機作業系統所不同的地方。
  • 鴻蒙內外:華為的燈塔和星光在哪裡?鴻蒙和HMS到底是什麼?
    同時他也對21世紀經濟報導記者坦言,轉向To C軟體並非易事,比如開發和運維結合的流程,和原先開發面向企業和運營商軟體走IPD流程很不一樣,所以很多同事加入之後,開發流程就先要轉變,這是很不容易的。據記者了解,在「松湖會戰」初期,工程師們會白天幹活,晚上進行培訓,來快速適應崗位。
  • 鴻蒙系統真的只是安卓的替代品嗎?鴻蒙要做成什麼樣?(下)
    IPC,就是進程間通訊,進程之間非常需要通信傳遞消息和數據來協同運作,因微內核架構好,鴻蒙的IPC效率能提升5倍。安卓和IOS系統因架構限制辦不到,這是從性能方面說。 「基於微內核架構,重塑終端設備,可信安全。」
  • 開發過程中的常用Eclipse插件
    它能夠自動化代碼規範檢查過程,從而使得開發人員從這項重要,但是枯燥的任務中解脫出來。CheckStyle檢驗的主要內容有:Javadoc注釋、命名約定、標題、import語句、體積大小、空白、修飾符、塊、代碼問題、類設計以及混合檢查(包括一些有用的比如非必須的System.out和printstackTrace)等。
  • HMS Core什麼意思,能否助力華為鴻蒙系統有更多應用誕生
    HMS Core(華為移動核心服務)是華為移動服務(HMS,HUAWEI Mobile Services)提供的端、雲開放能力的合集,助力開發者高效構建精品應用,是華為為其設備生態系統提供的一套應用程式和服務。開發者只需集成HMS SDK即可使用華為的多個開放能力。
  • 華為鴻蒙,告別 PPT
    鴻蒙最主要的特點是「分布式」,到鴻蒙 2.0,華為帶來了分布式軟總線、分布式數據管理、分布式安全等分布式能力的升級。同時發布了自適應的UX框架,一次開發,就能夠同時適配移動、大屏、車機等多個平臺。時間節點上,9 月分鴻蒙會發布大屏、手錶、車機的測試版本,12 月對國內開發者發布針對智慧型手機的 HarmonyOS beta 版本,明年,發布搭載鴻蒙系統的智慧型手機產品。
  • 外媒:華為鴻蒙系統基於旗魚OS開發 兼容安卓並非從零開始
    華為方面前段時間對外宣布了自己的Plan B之後,被曝光出華為已經在全球多個國家註冊了ARK和鴻蒙等商標,並且有消息表明華為自主研發的作業系統在國內將被稱為鴻蒙,而在國外將會被稱為ARK OS。目前已知的消息是,華為鴻蒙作業系統將會完美兼容安卓,並且不會局限在手機上,同時在華為電視、電腦等設備上都會無縫連接。正當外界對華為鴻蒙作業系統十分期待的時候,近日外媒卻爆料宣稱,華為鴻蒙作業系統是基於旗魚OS開發的,並且也並非從零開始。Aurora OS是俄羅斯開發的行動作業系統,基於開源的Sailfish OS(旗魚)研發而來,Aurora OS可以理解為旗魚OS的分支。
  • 打破谷歌壟斷,華為以分成構建鴻蒙生態系統
    鴻蒙系統和安卓都是基於Linux開發出來的,華為早些時候就修改了谷歌最原始的安卓,建立了自己的EMUI作業系統,與鴻蒙系統相比,EMUI只能使用於手機,而鴻蒙系統將在手機、電腦、穿戴等多個智能設備上應用。但作為新入局者,鴻蒙生態系統的建立仍面臨挑戰。
  • 華為鴻蒙作業系統全解讀:先進在哪?為何不現在用於手機?
    同時,鴻蒙是面向整個IT體系的下一代作業系統,並非限定在手機領域,甚至主要應用不是在手機上。對此不要有封閉心態,從市場角度考慮,華為與中國手機繼續用安卓系統開發,也是合理的發展,鴻蒙的作用會是保障中國手機生存。不管是用鴻蒙還是安卓,中國公司團結組成強大的開發陣營,共同應對市場衝擊,是有劃時代意義的。
  • 俄羅斯工程師加入研發華為鴻蒙 OS 作業系統
    IT之家9月16日消息 據俄羅斯衛星通訊社報導,華為駐俄分公司 R&D 軟體開發技術總監弗拉基米爾魯巴諾夫表示,俄羅斯工程師加入華為鴻蒙作業系統和手機應用研發項目。華為駐俄分公司 R&D 軟體開發技術總監指出,華為駐俄羅斯研究機構共有約 1500 名工作人員。
  • 鴻蒙系統登陸手機,生態至關重要,batj是關鍵,騰訊為何遲疑?
    近日,鴻蒙系統2.0Beta版本正式上線,與鴻蒙1.0不同,鴻蒙2.0系統特意為華為智慧型手機做了適配,這款系統目前正處於公測階段,華為p40系列和華為mate30系列以及華為matepad等硬體設備已經可以升級為鴻蒙系統,鴻蒙系統是ppt系統的傳言不攻自破。
  • 鴻蒙或讓華為走出困境:因為它不僅是手機作業系統,更是新的生態
    那麼,鴻蒙系統的定位,真的只是國產手機作業系統這麼簡單嗎?要懂鴻蒙先懂 loT想要知道鴻蒙系統是什麼,首先要了解一個概念,那就是 loT。它的英文全稱是 Internet of things,也就是我們常說的物聯網。它是利用局部網絡或網際網路等通信技術把傳感器、控制器、機器、人員和物等通過新的方式連在一起,形成人與物、物與物相聯,實現信息化、遠程管理控制和智能化的網絡。
  • 華為王成錄:鴻蒙OS不是安卓和iOS的拷貝 今年目標覆蓋3-4億臺設備
    不論是蘋果的App Store上的應用還是安卓上的應用,真正的開發工作量佔大頭的是UI部分的適配。這麼多不同的大大小小的尺寸和解析度,就會帶來整個的開發工作量倍增。從消費者來看,第一,除了手機以外,其它智能設備的應用很少,我們用這樣的設備本身,給生活帶來的便利非常有限。另外,每一種設備不同的系統、不同的操作方式,對消費者來講,學習成本是非常高的。
  • 應用BioPython解析和可視化蛋白質的結構
    BioPython計劃是一個使用Python語言開發計算生物學工具的國際社團,而BioPython是該社團開發的生命科學研究模塊。現在很多生物信息學家、基礎和臨床醫學研究者喜歡使用Python來編程,而調用BioPython模塊/框架可以節省很多時間和精力來實現想要的生物信息學算法。今天咱們就使用BioPython模塊來解析和可視化蛋白質分子。
  • 華為晶片最新消息 鴻蒙」到底會有哪些應用?
    華為晶片最新消息 鴻蒙」到底會有哪些應用?有個朋友沈老闆是做車載系統的,通過車載監控建立了一個全國性的車輛安全網絡系統,不論在什麼地方,車輛出了事情,都會被 及時監控和處理。幾年前,他就跟老徐(微信公眾號:明天軍事)大為感慨,說華為拯救了這個產業。以前,監控攝像頭的晶片都是進口的,價格奇高,華為開發出晶片,價格一下子降了幾倍,成本低了,可靠性強了,市場得到迅速推廣,生意做大了,而且這個產業全部國產化,佔領全國市場和世界市場。
  • 關於鴻蒙 2.0,那些開發者不知道的一切
    鴻蒙圍繞手機把系列 IoT 設備變成手機、電腦、電視的附屬設備,以分布式模式融入到華為生態。在鴻蒙第一版代碼開源後,有人和我說有一點失望,這個失望點在於鴻蒙開源部分僅圍繞 LiteOS 推出,是 LiteOS 包裝的一個版本。
  • 鴻蒙系統戰略首發:你和你的馬奇諾防線,我和我的諾曼第登陸
    這就是任正非所說的「調集了幾千專家」回來「補洞」和2019年春節期間華為「5000多人加班」。那麼,這其中涉及到加快鴻蒙系統首發和落地節奏的,華為必然臨時啟動了平常並不多見的三大服務中臺,分別是服務不同處理器平臺的中臺、服務境外HMS開發者的中臺和服務國內HMS開發者的中臺。
  • 華為鴻蒙成第五大作業系統,有希望超過蘋果系統嗎?
    華為鴻蒙到目前只在華為和榮耀智慧屏電視上使用,還沒有裝載在華為的智慧型手機上。所以華為鴻蒙2020年全球份額達2%,計算的應該也不是手機系統的份額。而且從這個數字來看,所謂的「全球第五大作業系統」也是很有水分的,因為前兩大作業系統iOS和Android就佔據了95%以上的市場份額。
  • 十問華為鴻蒙作業系統:跟安卓有何差異,其他終端廠商怎麼看
    「鴻蒙OS的出發點和Android(安卓)、iOS都不一樣,是一款全新的基於微內核的面向全場景的分布式作業系統,能夠同時滿足全場景流暢體驗、架構級可信安全、跨終端無縫協同,以及一次開發多終端部署的要求,鴻蒙應未來而生。」餘承東說。那麼,這些技術特點,對鴻蒙意味著什麼?目前的鴻蒙系統與安卓的差距在哪?未來,鴻蒙是否有機會取代安卓?