簡介
ets_frontend組件是方舟運行時子系統的前端工具,結合ace-ets2bundle組件,支持將ets文件轉換為方舟字節碼文件。
ets_frontend組件架構圖
目錄
/arkcompiler/ets_frontend/
├── test262 # test262測試配置和運行腳本
├── testTs # 系統測試目錄
├── es2panda
├── aot # 邏輯入口
├── binder # 信息綁定
├── compiler # 編譯邏輯
├── ir # 字節碼生成
├── lexer # 詞法分析
├── parser # 語法解析,ast生成
├── scripts # 腳本目錄
├── test # 測試目錄
├── typescript # typescript支持
└── util # 工具目錄
├── ts2panda
├── doc # 文檔
├── scripts # 依賴的腳本
├── src # 源碼存放目錄
├── templates # ruby模板文件
├── tests # UT單元測試目錄
├── tools # ts2abc提供的工具
└── ts2abc # abc文件生成相關
編譯構建
ets_frontend組件采用命令行交互方式,支持將JavaScript代碼轉換為方舟字節碼文件,使其能夠在方舟運行時上運行。支持Windows/Linux/MacOS平臺。方舟前端工具在linux平臺上可通過全量編譯或指定編譯前端工具鏈獲取。
$ ./build.sh --product-name rk3568 --build-target ets_frontend_build
使用說明
es2panda使用方式
使用ets_frontend組件下的es2abc可執行文件將JavaScript文件轉換為方舟字節碼文件
$ cd out/rk3568/clang_x64/arkcompiler/ets_frontend/
$ ./es2abc [options] file.js
當不輸入任何option參數時,默認生成方舟二進制文件。
[]()
[]()[]()選項 | []()[]()描述 | []()[]()取值范圍 | []()[]()默認值 |
---|---|---|---|
[]()[]()--debug-info | []()[]()攜帶debug信息 | []()[]()- | []()[]()- |
[]()[]()--debugger-evaluate-expression | []()[]()debugger下對輸入的base64形式的表達式求值 | []()[]()- | []()[]()- |
[]()[]()--dump-assembly | []()[]()輸出為匯編文件 | []()[]()- | []()[]()- |
[]()[]()--dump-ast | []()[]()打印解析得到的ast(抽象語法樹) | []()[]()- | []()[]()- |
[]()[]()--dump-debug-info | []()[]()打印debug信息 | []()[]()- | []()[]()- |
[]()[]()--dump-literal-buffer | []()[]()打印literal buffer內容 | []()[]()- | []()[]()- |
[]()[]()--dump-size-stat | []()[]()顯示字節碼相關的統計信息 | []()[]()- | []()[]()- |
[]()[]()--extension | []()[]()指定輸入類型 | []()[]()['js', 'ts', 'as'] | []()[]()- |
[]()[]()--help | []()[]()幫助提示 | []()[]()- | []()[]()- |
[]()[]()--module | []()[]()按照ESM模式編譯 | []()[]()- | []()[]()- |
[]()[]()--opt-level | []()[]()指定編譯優化等級 | []()[]()['0', '1', '2'] | []()[]()0 |
[]()[]()--output | []()[]()輸出文件路徑 | []()[]()- | []()[]()- |
[]()[]()--parse-only | []()[]()只對輸入文件做解析動作 | []()[]()- | []()[]()- |
[]()[]()--thread | []()[]()指定生成字節碼時所用的線程數目 | []()[]()0-機器支持的線程數目 | []()[]()0 |
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
鴻蒙
+關注
關注
57文章
2392瀏覽量
43055
發布評論請先 登錄
相關推薦
鴻蒙原生開發手記:01-元服務開發
簡介
元服務是鴻蒙中的一種輕量應用形態,無需下載,直接運行。類似于微信小程序,但與小程序不同的是,元服務更加輕量。
元服務使用原生開發,是系統級提供的,無論從易用性、性能、體驗上,都要比小程序好
發表于 11-14 17:28
鴻蒙Flutter實戰:07混合開發
# 鴻蒙Flutter實戰:混合開發
鴻蒙Flutter混合開發主要有兩種形式。
## 1.基于har
將flutter module打包成har包,在原生
發表于 10-23 16:00
鴻蒙開發組件:DataAbility的生命周期
應用開發者可以根據業務場景實現data.js/data.ets中的生命周期相關接口。DataAbility生命周期接口說明見下表。
鴻蒙開發就業前景到底怎么樣?
鴻蒙, 作為華為自主研發的基于微內核的下一代操作系統,正在逐漸走進人們的視野 。隨著鴻蒙系統的不斷發展和完善,越來越多的人開始關注鴻蒙開發這一領域,想要了解
發表于 05-09 17:37
HarmonyOS實戰開發-如何使用全局狀態保留能力彈窗來實現評論組件。
層-短視頻切換
||---CommentView.ets // 視圖層-評論組件
模塊依賴
路由模塊:供entry模塊實現路由導航
公共模塊:全局狀態保留能力彈窗
最后
如果大家覺得這篇內容對學習
發表于 05-07 15:06
HarmonyOS實戰開發-如何通過BlendMode屬性來實現掛件和圖片的混合
||---BlendModeView.ets // 視圖層-應用主頁面
模塊依賴
本實例依賴common模塊來實現日志的打印、資源 的調用、依賴動態路由模塊來實現頁面的動態加載。
最后
如果大家覺得這篇內容對學習鴻蒙
發表于 05-07 14:45
鴻蒙OS開發實例:【組件化模式】
組件化一直是移動端比較流行的開發方式,有著編譯運行快,業務邏輯分明,任務劃分清晰等優點,針對Android端的組件化;與Android端的組件化相比,HarmonyOS的
![<b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發</b>實例:【<b class='flag-5'>組件</b>化模式】](https://file1.elecfans.com/web2/M00/C6/E8/wKgZomYNKT6AFK72AAD8Uj1qiZc498.png)
鴻蒙實戰項目開發:【短信服務】
://gitee.com/openharmony/applications_app_samples.git
git pull origin master
? 最后呢,很多開發朋友不知道需要學習那些鴻蒙技術?
發表于 03-03 21:29
鴻蒙實戰:HarmonyOS NEXT【城市選擇】
||---DetailData.ets// 模型層-數據模塊
模塊依賴
依賴[har包-common庫中UX標準]
更多鴻蒙開發內容
`可+ mau123789令頁,是v喔!`
發表于 02-29 15:50
未來從事鴻蒙開發?是否會有前景?
應屆畢業生:有一定Java編程基礎,系統學習鴻蒙應用開發
想轉行/跨行人員:求職、轉行,希望趕上時代風口并彎道超車
IT相關工作者:工作遇上瓶頸,想提升技能,升職加薪
鴻蒙
發表于 02-19 21:31
評論