999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Flutter的跨平臺實驗室安全學習平臺開發

2022-09-22 05:59:58倪紅軍周巧扣
軟件導刊 2022年9期
關鍵詞:跨平臺頁面實驗室

倪紅軍,周巧扣

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

0 引言

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

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

1 Flutter開發框架

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

Fig.1 Flutter frame structure圖1 Flutter框架結構

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

2 跨平臺實驗室安全學習平臺設計

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

2.1 平臺功能

實驗室安全學習平臺包括安全教育題庫、學習和測試、查看題目解析3個模塊,結構如圖2所示。

Fig.2 Platform structure圖2 平臺結構

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

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

(3)查看題目解析。為了便于學習者更好地鞏固復習學習內容、提升安全操作技能,在邊學習邊測試的過程中,學習者可以隨時查看每道題目的標準答案和詳細解析。

2.2 數據庫設計

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

Table 1 Question bank table structure表1 題庫表結構

3 跨平臺實驗室安全學習平臺實現

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

3.1 數據源準備

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

3.2 題庫選擇頁面實現

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

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

3.3 學習與測試頁面實現

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

學習與測試頁面的頂部導航標簽包含判斷題和選擇題兩個選項,采用TabBar 組件顯示導航標簽內容,采用TabBarView 給導航標簽對應的頁面封裝內容,采用DefaultTabController 組件實現導航標簽與頁面內容的聯動控制。

4 實施效果分析

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

Fig.4 Learning and testing page圖4 學習與測試頁面

5 結語

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

猜你喜歡
跨平臺頁面實驗室
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
電競實驗室
電子競技(2019年22期)2019-03-07 05:17:26
電競實驗室
電子競技(2019年21期)2019-02-24 06:55:52
電競實驗室
電子競技(2019年20期)2019-02-24 06:55:35
電競實驗室
電子競技(2019年19期)2019-01-16 05:36:09
跨平臺APEX接口組件的設計與實現
測控技術(2018年9期)2018-11-25 07:44:58
基于QT的跨平臺輸電鐵塔監控終端軟件設計與實現
基于OPC跨平臺通信的電機監測與診斷系統
基于B/S的跨平臺用戶界面可配置算法研究
主站蜘蛛池模板: 国产精品亚洲日韩AⅤ在线观看| 日本尹人综合香蕉在线观看| 欧美三级视频网站| 久久国产精品娇妻素人| 国产在线观看第二页| 欧美中文字幕在线二区| 精品国产免费人成在线观看| 久草网视频在线| 日韩午夜片| 亚洲天天更新| 色婷婷在线影院| 毛片在线看网站| 亚洲一级毛片在线播放| 一级福利视频| 国产精品手机在线播放| 美女内射视频WWW网站午夜 | 久久青青草原亚洲av无码| 伊人狠狠丁香婷婷综合色| 国产对白刺激真实精品91| 日韩第九页| 日本不卡在线| 亚洲精品成人福利在线电影| 超薄丝袜足j国产在线视频| 一级毛片无毒不卡直接观看 | 国产精品永久免费嫩草研究院| 在线免费不卡视频| 五月天丁香婷婷综合久久| 国产专区综合另类日韩一区| 久青草网站| 日韩天堂在线观看| 国产91av在线| 精品久久国产综合精麻豆| 亚洲aⅴ天堂| 色天天综合久久久久综合片| 国产69囗曝护士吞精在线视频| 国产特级毛片aaaaaa| 2021最新国产精品网站| 一本久道久久综合多人| 无套av在线| 久久久黄色片| 极品性荡少妇一区二区色欲| 波多野结衣一区二区三区88| 国产网友愉拍精品| 97久久精品人人| 一级全黄毛片| 国内精自视频品线一二区| 亚洲天堂伊人| 欧美不卡在线视频| 亚洲日产2021三区在线| 欧美精品色视频| 97成人在线视频| 黄片一区二区三区| 国产精品亚洲一区二区在线观看| 中文字幕在线日本| 亚洲欧美日韩另类在线一| 欧美激情成人网| 久久精品aⅴ无码中文字幕| 大陆精大陆国产国语精品1024 | 高h视频在线| 少妇精品久久久一区二区三区| 激情午夜婷婷| 日韩中文字幕亚洲无线码| 中文字幕av无码不卡免费| 中文字幕在线一区二区在线| 久久夜色撩人精品国产| 国产aⅴ无码专区亚洲av综合网| AV在线天堂进入| 亚洲欧洲日韩久久狠狠爱| 亚洲成人网在线观看| 久久国产成人精品国产成人亚洲| 国产精品亚洲一区二区三区z| 国产91无码福利在线| 乱人伦99久久| 性欧美久久| 午夜啪啪网| 国产欧美日韩视频怡春院| 午夜日b视频| 免费jjzz在在线播放国产| 欧美伊人色综合久久天天| 东京热一区二区三区无码视频| 国产视频久久久久| 无码网站免费观看|