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

基于Android的校園選座App的設計與實現(xiàn)

2020-07-14 21:26:47袁世龍李旭芳嚴天立
科教導刊·電子版 2020年11期

袁世龍 李旭芳 嚴天立

摘 要 近年來,隨著互聯(lián)網(wǎng)技術(shù)與移動端技術(shù)的高速發(fā)展,Android因為其在移動端上擁有格外的優(yōu)勢,更有利于構(gòu)建“互聯(lián)網(wǎng)+”的問題解決方案。利用Android平臺開發(fā)“互聯(lián)網(wǎng)+選座”的選座解決方案,可以優(yōu)化或解決高校對于自習、考研學習、課程答疑,向?qū)W生分配座位,管理座位等問題。該系統(tǒng)采用Android(Java)客戶端 + Java套接字服務器 + I/O文件數(shù)據(jù)存儲 + Java 套接字管理客戶端,構(gòu)成系統(tǒng)。旨在快速實現(xiàn)平臺搭建,并滿足相關(guān)管理需求。

關(guān)鍵詞 Android Java Socket 高校選座 選座App

中圖分類號:TP311文獻標識碼:A

1背景

當前,在各大高校,為達到各種目的而分配的座位已成為一種重要的教育資源。雖然座位作為基本單位,但是承載的功能多種多樣,可能是考研學生的自習座位,可能是一般學生的自習座位,也有可能是老師進行答疑的答疑座位等。因為多種多樣的功能目的,同時教室的分配又具有較高的靈活性,在空間與時間上都會發(fā)生變化,所以相關(guān)座位的管理就成為了一大問題。然而,隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,高校對于自習教室的管理,可以借助互聯(lián)網(wǎng)技術(shù)進行優(yōu)化與解決。同時在教室選座這一問題上,用戶靈活性高且管理對象變更速度快,因此Android移動端平臺搭建可以說是最適合用于解決此類問題。

2需求分析

2.1功能需求

基于系統(tǒng)要實現(xiàn)的最終目標,我們整理得到以下幾種基本功能需求:(1)能夠區(qū)分、標識用戶所在學校,并且能夠?qū)τ脩魝€體進行通知與識別;(2)能夠從系統(tǒng)中獲取座位實時信息,并通過Android端的app進行展示;(3)能夠?qū)淌易慌c相關(guān)資源提供足夠的信息來幫助用戶參考、選座;(4)能夠?qū)⒔淌一蜃坏耐ㄖ⒆兏畔⒓磿r發(fā)送給用戶,避免造成管理上的問題。(5)用戶能通過一定的排序,來對可選教室進行過濾篩選,并且可以通過搜索、收藏與查看選座記錄的方式對特定教室加以區(qū)別和搜索,方便再次選座和指定目標的選座。(6)能夠按照學校的相關(guān)規(guī)定對系統(tǒng)用戶的行為進行一定的約束或監(jiān)督,以便管理。

2.2用戶群體

我們把用戶群體進行一定的分類:

(1)一般用戶:

①學生:進行選座與被管理的用戶對象。

②答疑老師:通過發(fā)送消息來通知學生用戶前往對應教室進行答疑的用戶對象。

(2)管理用戶:

①教室管理人員:可以前往教室、對教室內(nèi)的資源進行維護并對違規(guī)行為進行管理的用戶對象。②系統(tǒng)管理人員:對系統(tǒng)的Android端、服務器端和管理客戶端進行軟件維護與數(shù)據(jù)維護的用戶對象。

2.3性能需求分析

(1)突發(fā)性高并發(fā):用戶對于系統(tǒng)的訪問多為周期性的高并發(fā)訪問,而在多數(shù)期間屬于靜息期。高并發(fā)周期取決于校園的晚自習安排、下課后學生自習安排、節(jié)假日自習安排、老師答疑安排等等。并發(fā)峰值基于學校的人數(shù)決定,經(jīng)調(diào)研系統(tǒng)最少需要支持500-700人的峰值并發(fā)使用。

(2)個體用戶持續(xù)的TCP請求:用戶App在線時為了能夠及時刷新用戶界面內(nèi)容,定時會向服務器請求獲取班級信息。因此,當人在線人數(shù)增加時,TCP并發(fā)量會成倍增加。這需要服務器對于高并發(fā)訪問有著更高的性能。

3系統(tǒng)結(jié)構(gòu)與系統(tǒng)設計

安卓客戶端與Java服務端互相通過基于TCP/IP協(xié)議的Socket通訊,獲取Android客戶端所需的相關(guān)信息、用戶信息與管理信息、用戶端上傳的密碼修改、手機綁定與選組等操作信息。Socket通訊的內(nèi)容采用JSON格式進行交付。客戶端與服務端之間通過“對象->JSON文本->對象”的模式進行信息傳遞。

Android客戶端搭載了SQLite數(shù)據(jù)庫對相關(guān)數(shù)據(jù)進行存儲。Java服務端采用Java語言原生的文本I/O流對數(shù)據(jù)進行讀取、存儲。客戶端負責將得到的信息展現(xiàn)在用戶面前,給用戶提供選座的參考信息與通知等功能。Java服務端提供數(shù)據(jù)的匯總、處理與反饋等功能。Java管理客戶端則負責管理用戶中系統(tǒng)管理人員與教室管理人員對教室相關(guān)信息的變更、違規(guī)懲罰以及信息通知等內(nèi)容發(fā)送給服務器,用于更新教室信息。

4系統(tǒng)實現(xiàn)

4.1客戶端界面設計

Android客戶端基于Androidx,API 21(Android5.0),OpenJDK8開發(fā),開發(fā)環(huán)境Android Studio3.5.3。客戶端內(nèi)的數(shù)據(jù)為SQLite(Room庫支持)。客戶端大致結(jié)構(gòu)與控件使用:

4.2 SQLite數(shù)據(jù)庫設計

客戶端內(nèi)采用的Room數(shù)據(jù)庫抽象來對數(shù)據(jù)庫進行管理維護,并將數(shù)據(jù)交互的過程放置在其他線程來避免對主線程造成卡頓,從而影響用戶體驗。

4.2.1 Dao接口設計

定義interface注以注釋@Dao將該接口定義為Dao,以實現(xiàn)對數(shù)據(jù)庫的操作封裝,使得Java對象能夠抽象為特定表中的元組得以存儲。對Dao接口內(nèi)的抽象函數(shù)進行注釋以聲明數(shù)據(jù)庫操作。@Insert注釋方法為插入對象到表中。@Update注釋方法為以主鍵檢索表,更新對象到表中。@Delete注釋方法為以主鍵檢索表,將傳入方法的對象在表中找到并刪除。@Query()注釋可以寫入?yún)?shù),參數(shù)為SQL語句,對表進行特定的操作,并且注釋了該注釋的函數(shù)帶有返回值作為結(jié)果。客戶端中主要采用“@Query”獲取全表對象。

4.2.2 Entity 存儲類設計

能夠被Dao操作的Java對象是注以@Entiy的類,該類決定了數(shù)據(jù)庫中表的設計。類中變量決定表中的屬性名。注以@PrimaryKey(autoGenerate = true)的變量為主鍵,參數(shù)決定其為自動生成主鍵值,注以@ColumnInfo(name = "Column_name")的變量為設置該變量在數(shù)據(jù)庫表中的屬性名,而該屬性的存儲方式將與該變量的Java類型相同。

4.2.3 DataBase類設計

將類注釋以@Database聲明為DataBase類,其封裝了數(shù)據(jù)庫連接,作為一個對象方便訪問。設計時對該類采用了單例模式,以避免反復創(chuàng)建數(shù)據(jù)庫連接對象而產(chǎn)生的系統(tǒng)損耗或內(nèi)存泄露。

4.3服務端設計

服務端使用Java原生的I/O文本流與TCP Socket技術(shù)搭建。通過TCP連接輪詢實現(xiàn)等待TCP連接并響應。

5系統(tǒng)測試

5.1功能測試

(1)用戶自動創(chuàng)建測試。用戶首次登錄App直接創(chuàng)建默認賬號來進行登錄驗證。

(2)頁面跳轉(zhuǎn)測試。App端界面跳轉(zhuǎn)應該流暢、正確。各個界面是否有提供返回到上一界面的按鍵。檢測是否存在界面丟失而引發(fā)的空指針異常。

(3)檢查各個按鈕控件是否正常運行,功能完整,能夠準確向用戶表達其功能用途。

(4)檢測頁面數(shù)據(jù)是否正常,數(shù)據(jù)加載線程與UI線程通信是否正常。

(5)App端與服務器通信測試。

5.2性能測試用例設計

基于阿里云服務器,云服務監(jiān)控。以加快單客戶端TCP連接請求頻率模擬并發(fā)訪問。著重對服務器與客戶端之間的網(wǎng)絡情況:如服務器平均入網(wǎng)帶寬、服務器平均出網(wǎng)帶寬、TCP連接并發(fā)峰值,的測試。同時測試服務器的CPU平均使用率。

經(jīng)過測試,服務器在峰值并發(fā)達到700次訪問時運行平穩(wěn)。在最高并發(fā)數(shù)下Java虛擬機堆內(nèi)存穩(wěn)定在10Mb左右。

5.3測試結(jié)論

系統(tǒng)測試各項指標良好,對于突發(fā)性高并發(fā)訪問有較好的抗壓能力。服務器內(nèi)存運行情況持續(xù)、平穩(wěn)。CPU使用率較低,網(wǎng)絡帶寬要求低,服務器部署運行良好,客戶端接收情況良好。

6結(jié)論

隨著互聯(lián)網(wǎng)浪潮的來襲,互聯(lián)網(wǎng)技術(shù)結(jié)合移動端平臺給許多現(xiàn)實中的問題帶來了新的解決思路。通過實驗,可以看到本論文設計的校園選座APP能夠充分利用功能性座位這種教學資源,改善傳統(tǒng)的座位管理方式。并且該系統(tǒng)也擁有較好的可擴展性,可以擴充入物聯(lián)網(wǎng)技術(shù),大數(shù)據(jù)技術(shù)等,讓選座的紀律管理與安排效果更好。但該系統(tǒng)也有一定的缺點,比如Java服務端可以進行優(yōu)化,部署專業(yè)的Web服務器而不是Socket服務器,并且可以使用數(shù)據(jù)庫存儲相關(guān)信息,而不是IO文件流存儲。不過當前系統(tǒng)的數(shù)據(jù)關(guān)系性較低,并發(fā)量并不是非常大,所以采用IO文件流存儲會更加適合。

Android移動端平臺發(fā)展至今,由于其開源而擁有良好的生態(tài),用戶群體龐大,市場前景可觀。通過Android平臺解決各大高校對于座位教學資源的管理的各種問題,是一個較為可觀的方案。這將使得用戶能夠高效的尋找合適的位置,管理者也能夠精準的實施管理。

參考文獻

[1] 張紅霞.基于Java Socket的一個簡單Web服務器實現(xiàn)[J].電腦知識與技術(shù),2015,11(18):52-53.

[2] 陽暉.高校圖書館自習室管理存在的問題與對策[J].辦公室業(yè)務,2019(21):175-176.

[3] 王紅偉,吳坤芳.Android手機App程序中SQLite數(shù)據(jù)存儲應用[J].漯河職業(yè)技術(shù)學院學報,2018(05):30-32.

[4] 孫翠改.Android環(huán)境下主UI線程與子線程通信機制研究[J].數(shù)字技術(shù)與應用,2016(09):66-67

[5] 陳天超.單例設計模式研究[J].福建電腦,2016,32(08):14-15+20.

[6] 歐陽燊.Android Studio開發(fā)實戰(zhàn) 從零基礎(chǔ)到App上線(第2版)[M].北京:清華大學出版社,2018.

主站蜘蛛池模板: 怡红院美国分院一区二区| 中文字幕在线看视频一区二区三区| 欧美精品v| 久久久久人妻一区精品色奶水 | 国产美女一级毛片| 成人在线综合| 无码一区二区波多野结衣播放搜索| 99ri精品视频在线观看播放| 欧美久久网| 国产精品一区在线麻豆| 国产自在自线午夜精品视频| 国产精品蜜臀| 美女一区二区在线观看| 精品国产电影久久九九| 久久永久精品免费视频| 国产91精品调教在线播放| 日韩高清无码免费| 午夜三级在线| 中文字幕在线一区二区在线| 国产精品3p视频| 综合网天天| 婷婷综合在线观看丁香| 四虎影院国产| 波多野结衣中文字幕久久| 成年A级毛片| 久久中文字幕2021精品| 午夜精品福利影院| 天天色天天综合| 在线色综合| 久久美女精品| 视频二区中文无码| 美女一级毛片无遮挡内谢| 久久久久人妻一区精品色奶水| 精品伊人久久久大香线蕉欧美| 欧美一级高清视频在线播放| 亚洲成年网站在线观看| 国产免费久久精品99re不卡| 久久国产精品波多野结衣| 久久综合国产乱子免费| 亚洲成av人无码综合在线观看| 精品撒尿视频一区二区三区| a级免费视频| 99国产精品国产| 天天色天天操综合网| 91网站国产| 国产视频a| 国产成+人+综合+亚洲欧美| 日本一区中文字幕最新在线| 免费xxxxx在线观看网站| 国语少妇高潮| 日本高清有码人妻| 色综合天天综合| 国产精品第| 国产精品熟女亚洲AV麻豆| 欧美成人A视频| 在线无码私拍| 最近最新中文字幕免费的一页| 久久伊伊香蕉综合精品| 婷婷五月在线| 国产福利一区在线| 国产99视频精品免费观看9e| 国产成人精彩在线视频50| 久久久久青草大香线综合精品 | 亚洲精选无码久久久| 亚洲Aⅴ无码专区在线观看q| 免费观看成人久久网免费观看| 国产在线视频自拍| 日韩高清一区 | 女人18毛片水真多国产| 91精品国产91久无码网站| 最新精品久久精品| 欧美影院久久| 国产迷奸在线看| 九九视频免费看| 亚洲成人福利网站| 亚洲人成成无码网WWW| 国产精品视频第一专区| 久久中文电影| 亚洲天堂视频在线免费观看| 精品撒尿视频一区二区三区| 亚洲永久视频| 日韩高清在线观看不卡一区二区|