亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Flutter的跨平臺實驗室安全學(xué)習(xí)平臺開發(fā)

        2022-09-22 05:59:58倪紅軍周巧扣
        軟件導(dǎo)刊 2022年9期
        關(guān)鍵詞:跨平臺題庫頁面

        倪紅軍,周巧扣

        (南京師范大學(xué)泰州學(xué)院,江蘇泰州 225300)

        0 引言

        實驗室是高校和科研院所承擔(dān)實踐教學(xué)任務(wù)和開展科學(xué)研究工作的重要場所[1]。近年來,屢見不鮮的實驗室安全事故不僅影響了實驗教學(xué)和科研工作的順利開展,而且影響了實驗室周邊環(huán)境的安全與穩(wěn)定[2],加強(qiáng)實驗室安全學(xué)習(xí)教育刻不容緩。隨著移動互聯(lián)技術(shù)的發(fā)展,大多數(shù)高校的實驗室安全學(xué)習(xí)平臺開始從傳統(tǒng)的PC 端Web 網(wǎng)站向移動端APP 轉(zhuǎn)變。目前,原生開發(fā)一個移動端APP 至少需要搭建Android 和iOS 平臺兩種開發(fā)環(huán)境,使用兩種計算機(jī)語言構(gòu)建和發(fā)布程序,而每個平臺單獨構(gòu)建和發(fā)布程序的工作量均較為龐大,上線后運行維護(hù)成本高[3-4]。

        跨平臺一直都是應(yīng)用開發(fā)者追求的終極目標(biāo),從最早的Cordova 到現(xiàn)在的Flutter,目前已有很多跨平臺框架技術(shù)可供開發(fā)者選用。2018 年,谷歌主持研發(fā)了開源的Flutter1.0 框架,其創(chuàng)建跨平臺高性能移動APP 的特性受到廣泛青睞[5]。本文基于Flutter 開發(fā)框架和操作SQLite 數(shù)據(jù)庫的sqflite 插件,設(shè)計開發(fā)一個針對性強(qiáng)、使用方便靈活、高效通用的實驗室安全學(xué)習(xí)平臺,以期有效提高學(xué)習(xí)者的實驗室安全防范意識和實驗安全操作技能。

        1 Flutter開發(fā)框架

        Flutter開發(fā)框架提供了一套采用Dart語言實現(xiàn)基礎(chǔ)代碼的軟件開發(fā)工具包,開發(fā)者只需使用Dart 語言代碼庫便可以高效構(gòu)建移動端、Web 端和嵌入式平臺的應(yīng)用程序。針對移動端,F(xiàn)lutter 提供了Android 平臺的Material 風(fēng)格組件和iOS 平臺的Cupertino 風(fēng)格組件,同時又針對不同平臺進(jìn)行了兼容處理,更好地保留了平臺特性,使開發(fā)者編寫的一套程序代碼既能在iOS 平臺上運行,又能在Android 平臺上運行。Flutter 開發(fā)框架主要由框架層(Framework)、引擎層(Engine)和嵌入層(Embedder)3 個結(jié)構(gòu)層組成,具體如圖1所示。

        Fig.1 Flutter frame structure圖1 Flutter框架結(jié)構(gòu)

        Framework 提供了一套使用Dart 語言開發(fā)的基礎(chǔ)庫,包括Material 和Cupertino 風(fēng)格的Widget、手勢、繪圖和動畫等組件。Engine 采用C++編寫,實現(xiàn)了Flutter 的核心庫,包括Dart 虛擬機(jī)、動畫和圖形、文字渲染等。渲染采用2D 圖形渲染庫Skia,虛擬機(jī)采用面向?qū)ο笳Z言的Dart VM,并將它們托管至平臺的Embedder 層。渲染引擎依靠跨平臺的Skia 圖形庫實現(xiàn),依賴系統(tǒng)的只有圖形繪制相關(guān)接口,可最大程度地保證不同平臺、不同設(shè)備體驗的一致性。邏輯處理使用支持預(yù)編譯(Ahead-Of-Time,AOT)的Dart 語言,執(zhí)行效率比其他跨平臺開發(fā)框架采用的JavaScript 高出很多。Embedder 為系統(tǒng)平臺適配層,用于實現(xiàn)渲染Surface設(shè)置、線程設(shè)置和原生插件等平臺相關(guān)性適配[6-7]。

        2 跨平臺實驗室安全學(xué)習(xí)平臺設(shè)計

        學(xué)校在專門的網(wǎng)站上分別提供Android 平臺和iOS 平臺的實驗室安全學(xué)習(xí)平臺APP 下載鏈接,實驗室人員采用手機(jī)或其他終端設(shè)備系統(tǒng)下載、安裝相應(yīng)APP 后可以選擇需要學(xué)習(xí)的內(nèi)容。學(xué)習(xí)完成后選擇模擬測試,測試完成后可以查看評分和試題解析,以便進(jìn)一步鞏固復(fù)習(xí)實驗室安全知識要點,提高學(xué)習(xí)效果。

        2.1 平臺功能

        實驗室安全學(xué)習(xí)平臺包括安全教育題庫、學(xué)習(xí)和測試、查看題目解析3個模塊,結(jié)構(gòu)如圖2所示。

        Fig.2 Platform structure圖2 平臺結(jié)構(gòu)

        (1)安全教育題庫。高校通常建有多學(xué)科不同類型的實驗室,實驗室人員需要掌握的安全知識不盡相同。目前國內(nèi)高校常見的實驗室安全教育內(nèi)容包括通識類、化學(xué)類、醫(yī)學(xué)生物類、機(jī)械建筑類、電氣類、輻射類、特種設(shè)備類和消防類,該平臺構(gòu)建了相應(yīng)8 個類型的安全教育題庫供學(xué)習(xí)者選擇。

        (2)學(xué)習(xí)和測試。為增強(qiáng)安全知識學(xué)習(xí)的趣味性、提高學(xué)習(xí)效率,每種類型的題庫都包含選擇題和判斷題兩種題型供學(xué)習(xí)者邊學(xué)習(xí)邊測試,且兩種題型之間可以自由切換,操作方便快捷。

        (3)查看題目解析。為了便于學(xué)習(xí)者更好地鞏固復(fù)習(xí)學(xué)習(xí)內(nèi)容、提升安全操作技能,在邊學(xué)習(xí)邊測試的過程中,學(xué)習(xí)者可以隨時查看每道題目的標(biāo)準(zhǔn)答案和詳細(xì)解析。

        2.2 數(shù)據(jù)庫設(shè)計

        SQLite 是一個嵌入式輕量級關(guān)系型數(shù)據(jù)庫管理系統(tǒng),sqflite 是基于SQLite 開發(fā)的一款Flutter 插件,同時支持iOS和Android 平臺,在Android、iOS 系統(tǒng)后臺線程中執(zhí)行數(shù)據(jù)庫操作,并且只占用很少內(nèi)存[8-9]。根據(jù)實驗室安全學(xué)習(xí)平臺的功能組成和實驗室人員需要掌握的安全知識,本文設(shè)計的SQLite 數(shù)據(jù)庫中包括通識類、化學(xué)類、醫(yī)學(xué)生物類、機(jī)械建筑類、電氣類、輻射類、特種設(shè)備類和消防類8 個不同類別的安全教育知識題庫表,每個題庫表包含題目編號、題目內(nèi)容、選項A、選項B、選項C、選項D、題型、標(biāo)準(zhǔn)答案及解析等字段,具體表結(jié)構(gòu)如表1所示。

        Table 1 Question bank table structure表1 題庫表結(jié)構(gòu)

        3 跨平臺實驗室安全學(xué)習(xí)平臺實現(xiàn)

        實驗室安全學(xué)習(xí)平臺將安全知識題庫以資源文件的形式保存在數(shù)據(jù)庫文件存儲目錄中,然后結(jié)合sqfliter 插件實現(xiàn)對數(shù)據(jù)庫的訪問。在所有頁面設(shè)計和功能實現(xiàn)后,將在Android Studio 作為開發(fā)工具搭建的Flutter 項目開發(fā)環(huán)境下編寫好的源代碼分別打包成可以直接運行在Android和iOS平臺上的APP。

        3.1 數(shù)據(jù)源準(zhǔn)備

        實驗室安全學(xué)習(xí)平臺的題庫內(nèi)容可以采用Excel 按照題庫的表結(jié)構(gòu)格式進(jìn)行整理編輯,然后采用專門管理SQLite 數(shù)據(jù)庫的軟件(如SQLiteStudio)將Excel 表格式的題庫內(nèi)容轉(zhuǎn)換為SQLite 格式的數(shù)據(jù)庫文件。該數(shù)據(jù)庫文件是實驗室安全學(xué)習(xí)平臺APP 運行時的數(shù)據(jù)源文件,因此需要將其包含在APP 的安裝包中,APP 安裝時會自動將該文件復(fù)制到手機(jī)或其他終端設(shè)備的指定位置。首先在Flutter 項目配置文件pubspec.yaml 中聲明數(shù)據(jù)庫文件和操作SQLite 數(shù)據(jù)庫的sqfliter 插件,然后采用異步方式從存放數(shù)據(jù)庫文件處讀取文件內(nèi)容,待數(shù)據(jù)庫內(nèi)容寫入默認(rèn)存放位置后,便可以調(diào)用openDatabase()方法打開數(shù)據(jù)庫文件,實現(xiàn)對題庫數(shù)據(jù)庫文件的訪問。

        3.2 題庫選擇頁面實現(xiàn)

        實驗室安全學(xué)習(xí)平臺APP 啟動后,首先加載如圖3(彩圖掃OSID 碼可見,下同)所示的題庫選擇頁面,學(xué)習(xí)者單擊某個需要學(xué)習(xí)的實驗室安全知識題庫名稱后,系統(tǒng)便可以將數(shù)據(jù)庫文件名稱和對應(yīng)的安全知識題庫編號作為參數(shù)傳遞給學(xué)習(xí)與測試頁面,以便加載對應(yīng)的安全知識題庫內(nèi)容。題庫選擇頁面上的每個安全知識題庫名稱按鈕和退出系統(tǒng)按鈕均采用Flutter 開發(fā)框架中的FlatButton 組件實現(xiàn),通過該組件的color 屬性設(shè)置按鈕顏色、onPressed 屬性設(shè)置單擊事件,并采用GridView.count()方法對其進(jìn)行封裝,以網(wǎng)格的方式顯示在頁面上。單擊每個按鈕切換到學(xué)習(xí)與測試頁面的操作采用Navigator 導(dǎo)航組件和Material-PageRoute 路由組件實現(xiàn)。

        Fig.3 Question bank selection page圖3 題庫選擇頁面

        3.3 學(xué)習(xí)與測試頁面實現(xiàn)

        圖4 為學(xué)習(xí)與測試頁面,學(xué)習(xí)者單擊上一題、下一題按鈕可以更新題目內(nèi)容,單擊查看解析按鈕后系統(tǒng)會將當(dāng)前試題的標(biāo)準(zhǔn)答案和答案解析顯示出來。由于學(xué)習(xí)與測試頁面上顯示的內(nèi)容會根據(jù)學(xué)習(xí)者的操作而發(fā)生變化,該頁面對應(yīng)的類需繼承自StatefulWidget 有狀態(tài)組件類。題庫中的每一類題目都包含判斷題和選擇題兩種題型,選擇題有4 個選項,而判斷題只有對和錯兩個選項,因此需要分別創(chuàng)建顯示判斷題內(nèi)容的Widget 類型的jdetail 對象,以及顯示選擇題內(nèi)容的Widget 類型的sdetail 對象。為節(jié)省頁面空間,可以采用showModalBottomSheet()方法從頁面底部彈出試題解析內(nèi)容。

        學(xué)習(xí)與測試頁面的頂部導(dǎo)航標(biāo)簽包含判斷題和選擇題兩個選項,采用TabBar 組件顯示導(dǎo)航標(biāo)簽內(nèi)容,采用TabBarView 給導(dǎo)航標(biāo)簽對應(yīng)的頁面封裝內(nèi)容,采用DefaultTabController 組件實現(xiàn)導(dǎo)航標(biāo)簽與頁面內(nèi)容的聯(lián)動控制。

        4 實施效果分析

        2020 年春季學(xué)期,南京師范大學(xué)泰州學(xué)院在資產(chǎn)與實驗室管理處網(wǎng)站發(fā)布了實驗室安全學(xué)習(xí)平臺的Android 端和iOS 端APP 下載鏈接,校內(nèi)學(xué)生下載量達(dá)到5 000 余人次。2020 級新生進(jìn)校后,由各二級學(xué)院負(fù)責(zé)通知其在該平臺上參加實驗室安全教育培訓(xùn)。2021 年1 月,2 600 名2020 級新生參加了實驗室安全考試,一次性通過率達(dá)94.75%,比前一年提高了8.65%,說明該平臺切實提升了學(xué)生的實驗室安全防范意識和安全操作技能水平。

        Fig.4 Learning and testing page圖4 學(xué)習(xí)與測試頁面

        5 結(jié)語

        參加實驗的人員進(jìn)入實驗室前必須了解相關(guān)安全知識、掌握安全操作技能并具備風(fēng)險防范意識?;贔lutter框架開發(fā)的跨平臺實驗室安全學(xué)習(xí)平臺充分利用處處有網(wǎng)絡(luò)、人人有手機(jī)的現(xiàn)狀,使相關(guān)人員進(jìn)入實驗室前都可以方便地下載安裝APP 學(xué)習(xí)鞏固實驗室安全知識、提高實驗室安全風(fēng)險防范意識,為有效減少實驗室安全事故發(fā)生、營造良好的實驗室安全文化氛圍創(chuàng)造了有利條件。然而由于該學(xué)習(xí)平臺基于本地數(shù)據(jù)庫實現(xiàn),安全教育題庫在安裝學(xué)習(xí)平臺APP 時以數(shù)據(jù)庫文件形式保存在移動端存儲器中。如果安全教育題庫內(nèi)容升級更新,則需要學(xué)習(xí)者重新下載安裝學(xué)習(xí)平臺APP,這樣就會給學(xué)習(xí)者帶來不便。解決該問題需要在今后的平臺更新中開發(fā)Flutter 框架訪問網(wǎng)絡(luò)數(shù)據(jù)的技術(shù),使移動端APP 運行時能自動連接網(wǎng)絡(luò)并更新題庫內(nèi)容,確保學(xué)習(xí)者能隨時使用最新的題庫資源進(jìn)行學(xué)習(xí)和測試。

        猜你喜歡
        跨平臺題庫頁面
        大狗熊在睡覺
        刷新生活的頁面
        “勾股定理”優(yōu)題庫
        “軸對稱”優(yōu)題庫
        “軸對稱”優(yōu)題庫
        “整式的乘法與因式分解”優(yōu)題庫
        跨平臺APEX接口組件的設(shè)計與實現(xiàn)
        基于QT的跨平臺輸電鐵塔監(jiān)控終端軟件設(shè)計與實現(xiàn)
        基于OPC跨平臺通信的電機(jī)監(jiān)測與診斷系統(tǒng)
        基于B/S的跨平臺用戶界面可配置算法研究
        中文字幕亚洲人妻系列| 97精品人妻一区二区三区蜜桃| 国产精品久久久久久妇女| 国产产区一二三产区区别在线| 樱花草在线播放免费中文| 麻豆国产巨作AV剧情老师| 一二三四中文字幕日韩乱码| 一区二区三区在线日本视频 | 手机在线观看日韩不卡av| 精品久久久久久久无码人妻热| 午夜成人理论无码电影在线播放| 国产精品99精品一区二区三区∴| 国内精品人人妻少妇视频| 亚洲中文字幕第15页| 2018天天躁夜夜躁狠狠躁| 亚洲综合国产一区二区三区| 狠狠色狠狠色综合网| 欧美xxxx做受欧美88| 免费观看又色又爽又湿的视频| 狠狠久久亚洲欧美专区| 偷拍自拍一区二区三区| 亚洲成av人片极品少妇| 久久久亚洲欧洲日产国码二区| 精品国产午夜理论片不卡| 亚洲午夜福利精品久久| 国内自拍偷拍一区二区| 亚洲av少妇高潮喷水在线| av狠狠色丁香婷婷综合久久| 日韩好片一区二区在线看| 无码专区亚洲avl| 亚洲第一女优在线观看| 无码少妇丰满熟妇一区二区 | 亚洲av无码一区二区三区四区| 欧美成人精品福利在线视频| 老熟妇嗷嗷叫91九色| 久久久久久夜精品精品免费啦 | 99久久99久久精品免观看| 少妇太爽高潮在线播放| 欧美牲交a欧美牲交aⅴ免费下载| 成人免费一区二区三区| 成人永久福利在线观看不卡|