這篇文章主要介紹“ 如何為iotjs開發(fā)原生模塊”,在日常操作中,相信很多人在 如何為iotjs開發(fā)原生模塊問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答” 如何為iotjs開發(fā)原生模塊”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、揭陽網(wǎng)站定制設(shè)計、自適應品牌網(wǎng)站建設(shè)、H5技術(shù)、商城網(wǎng)站定制開發(fā)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為揭陽等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
iotjs 是三星開源的 javascript 物聯(lián)網(wǎng)開發(fā)平臺。它為 javascript 應用程序提供了訪問硬件、網(wǎng)絡(luò)、文件系統(tǒng)和異步化的能力,功能類似于 nodejs,但無論是代碼體積還是內(nèi)存需求,iotjs 都要小很多,是用 javascript 開發(fā) iot 設(shè)備應用程序的首選。
AWTK 全稱 Toolkit AnyWhere,是 ZLG 開發(fā)的開源 GUI 引擎,旨在為嵌入式系統(tǒng)、WEB、各種小程序、手機和 PC 打造的通用 GUI 引擎,為用戶提供一個功能強大、高效可靠、簡單易用、可輕松做出炫酷效果的 GUI 引擎。
如果模塊的名稱使用 mymodule 是沒有問題的,但是 mymodule 是一個無意義的名稱,無法表達實際模塊的真實功能。我這里需要把模塊改名為 awtk,可以按下列方式來做:
目錄名使用 awtk-module
mkdir awtk-module
將 C 代碼的源文件改名為 awtk_module.c,并將初始化函數(shù)改名 InitAwtkNativeModule。
創(chuàng)建 awtk-module/modules.json
{ "modules": { "awtk": { "native_files": ["awtk_module.c"], "init": "InitAwtkNativeModule", "external_libs":["awtk-jerryscript", "jerryscript", "awtk", "assets", "glad", "gpinyin", "linebreak", "nanovg"], "platforms": { "linux": { "external_libs":["SDL2", "gtk-3", "gdk-3", "sndio", "Xext", "X11", "stdc++", "dl", "m"] } } } } }
修改編譯腳本參數(shù)
tools/build.py --external-modules=awtk-module --cmake-param=-DENABLE_MODULE_AWTK=ON
ENABLE_MODULE_ 一定要寫實際模塊的名稱,如果忘記將 MYMODULE 修改成實際模塊的名稱,出現(xiàn)的錯誤讓你完全不知道是什么情況。
自己的模塊免不了使用外部庫,但是 modules.json 里可以指定庫的名稱,卻不能指定庫的路徑和頭文件的路徑。做了嘗試始終沒有成功,后來只好自己寫了一個 cmake 文件,在 iotjs 的 CMakeLists.txt 引用了。
awtk.cmake 的內(nèi)容如下:
GET_FILENAME_COMPONENT(PROJ_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) SET(AWTK_ROOT ${PROJ_ROOT}/awtk) SET(AWTK_JS_ROOT ${PROJ_ROOT}/awtk-js) SET(APP_ASSETS_ROOT ${AWTK_ROOT}/demos) SET(AWTK_JS_FILE ${AWTK_JS_ROOT}/src/awtk.js) MESSAGE("AWTK_ROOT=${AWTK_ROOT}") MESSAGE("AWTK_JS_ROOT=${AWTK_JS_ROOT}") MESSAGE("AWTK_JS_ROOT=${CMAKE_CURRENT_LIST_DIR}") SET( CMAKE_VERBOSE_MAKEFILE ON ) ADD_COMPILE_OPTIONS("-DAWTK_JS_FILE=\"${AWTK_JS_FILE}\"") ADD_COMPILE_OPTIONS("-DAPP_ASSETS_ROOT=\"${APP_ASSETS_ROOT}\"") LINK_DIRECTORIES("${AWTK_ROOT}/lib" "${AWTK_JS_ROOT}/lib") INCLUDE_DIRECTORIES("${AWTK_ROOT}/src/" "${AWTK_ROOT}/src/ext_widgets/" "${AWTK_JS_ROOT}/src/jerryscript")
使用下面這行代碼開啟 verbose 模式,可以看到大量調(diào)試信息,有助于快速定位問題所在:
SET( CMAKE_VERBOSE_MAKEFILE ON )
然后在 CMakeLists.txt 里引用:
include(../awtk-iotjs/awtk-module/awtk.cmake) include(cmake/iotjs.cmake)
一定要放在 iotjs.cmake 之前引用,否則無效。
將模塊放在獨立的目錄中,管理起來方便一些,awtk-iotjs 是為 iotjs 寫的模塊,它依賴與 awtk 和 awtk-js,將在幾個模塊放在同級的目錄。
awtk
awtk-js
iotjs
awtk-iotjs
編譯腳本改為:
${iotjs_ROOT}/tools/build.py --external-modules=${CWD}/awtk-module --cmake-param=-DENABLE_MODULE_AWTK=ON
運行腳本改為:
if [ "$1" == "" ]; then JS_FILE="demos/button.js" else JS_FILE="$1" fi ${iotjs_ROOT}/build/x86_64-linux/debug/bin/iotjs "$JS_FILE"
到此,關(guān)于“ 如何為iotjs開發(fā)原生模塊”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
分享題目:如何為iotjs開發(fā)原生模塊
標題網(wǎng)址:http://aaarwkj.com/article18/iighdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、搜索引擎優(yōu)化、品牌網(wǎng)站設(shè)計、標簽優(yōu)化、商城網(wǎng)站、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)