蒙海權 劉娟 陳晴怡 陸忻怡 李世峰
摘要:基于Android系統(tǒng)設計一款教育類應用“電子書包”App軟件,探討了開發(fā)Android經常用到的開發(fā)架構和開發(fā)設計的流程。一個好的App應用不僅需要提供相應的功能,而且要有流暢的操作體驗,App為用戶提供電子教材PDF、電子筆記和學生常用工具等功能,為目標用戶提供一個優(yōu)秀的輔助學習應用。
關鍵詞:Android系統(tǒng);教育應用;移動端;電子教材
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)21-0084-03
開放科學(資源服務)標識碼(OSID):
1 市場狀況與開發(fā)問題
自2007年,蘋果推出第一款iPhone,開創(chuàng)了移動計算的新時代。2007年11月5日,Android1.0版本隨之發(fā)布。Android經過十多年的發(fā)展,在用戶數量方面已一步步打敗Windows Phone、iOS等移動端操作系統(tǒng),成為互聯網市場上最大份額的移動操作系統(tǒng)。各類應用也越來越多,越來越完善,各行各業(yè)也均有著對應的應用。據CNIC第48次發(fā)布的《中國互聯網絡發(fā)展狀況統(tǒng)計報告》報道:截至2021年6月,我國國內市場上監(jiān)測到的App數量為302萬款,較2020年12月減少43萬款App,下降12.5%。截至2021年6月,移動應用規(guī)模居前四位的App 分類占比達58.2%。其中,游戲類 App 數量最多,達到了72.9萬款,占目前已上架市場應用全部AAP的24.1%,其次占比最多的為日常工具類,為15.4%,達到了46.5萬款。電子商務類應用和社交即時通信類應用也分別達到了29.5萬款和27.1萬款,牢牢占據移動應用市場規(guī)模的第三位和第四位,占目前已上市的全部App比重9.8%和9.0%。Android平臺作為移動端最大的操作系統(tǒng),其生態(tài)完善,開發(fā)者和用戶數量眾多,市場份額也呈正增長。同時隨著5G網絡的誕生以及普及,得益于其低延遲的網絡特性,云平臺、云應用以及遠程操控等也得以進一步發(fā)展,移動開發(fā)也受到了眾多開發(fā)者的追捧[1]。
近年來,教育類App也是迅猛發(fā)展,涌現出了學習通、智慧樹、慕課等一大批優(yōu)秀教育類應用[2]。但能較為全面地提供課本電子教材的App卻為數不多,對此,項目旨在開發(fā)一款提供高質量的電子教材App,并加入在學習中常用功能。
1.1 市場狀況
報道的數據顯示,截至2021年6月,我國網民規(guī)模為10.11億人,互聯網普及率達到71.6%,廣大的網民規(guī)模為推動我國經濟高質量發(fā)展、加速我國新型數字基礎設施建設提供了強大的內在動力。人們花在手機上的時間越來越多,這意味著人們獲取信息的渠道多來自移動設備,而傳統(tǒng)傳媒行業(yè)也在加快腳步,把紙質閱讀媒體電子化,例如《人民日報》、新華社等都有自己的相應的公眾號和媒體號,甚至擁有屬于自己的新聞類應用App,供移動端用戶閱讀使用。截至2021年6月,中國有著3.3多億年齡在29歲以內的網民。對于這3.3多億的用戶,教育類App有著巨大的市場,對于應用開發(fā)者來說,這也是一個機遇。Android應用開發(fā)項目有著高額的利潤回報,同時也是一個高風險的項目,移動應用開發(fā)的風險有著各種各樣的風險因素,常見的因素有應用開發(fā)完成后,卻無人問津,以及開發(fā)資金超過了預算,造成項目停滯。而行業(yè)中的競爭也是加大了開發(fā)者的焦慮。總而言之,想要獲得成功,就必須有創(chuàng)意。
1.2 移動開發(fā)面臨的問題
移動應用開發(fā)所面臨的問題有很多,主要集中在開發(fā)的過程,以及保證軟件的安全方面[3]。
1)頁面UI開發(fā)重復度大。如今中國擁有302萬以上的App,安卓應用主要為手機用戶服務,不同的安卓應用為用戶提供的功能服務不同,但其應用UI布局卻大致相同,所以當前UI開發(fā)重復率較高,想要設計出別具一格的UI,就得經長時間深思熟慮,而這也加長了軟件開發(fā)周期,降低了應用開發(fā)效率。
2)應用要提供的功能較多,移動端安卓應用要提供數據存儲,緩存,網絡請求等,還要考慮軟件后期的功能擴展需求,因此,Android應用的具體開發(fā)過程中需要考慮到方方面面,這也給開發(fā)者帶來更多的工作量。
3)軟件的推廣難度大。從Android發(fā)布至2013年,主要是將PC端的應用功能搬到移動端上來,屬于移動端的萌芽期。2013—2015年是移動端App的平臺型應用時期,應用開始有屬于移動端的特有功能,是移動端的成長期。2015年至今是屬于移動端的紅利期,誕生了微信、支付寶和抖音等擁有著超大流量的超級App,而新生App面臨的問題就是發(fā)布運營,如何夾縫求生,殺出重圍成了App運營的一大問題。
由此可看出,Android應用開發(fā)對于眾多的開發(fā)人員來說,這是一個充滿艱辛,極具挑戰(zhàn)的領域。開發(fā)者可以借助各種工具來提升效率,完成這個任務,以謀求在市場中能夠占據一席之地。同時也可以把煩瑣重復的工作交給工具來完成。
2 相關技術
Android系統(tǒng)構架簡介。Google開發(fā)人員封裝了Android底層框架,供安卓程序開發(fā)人員使用,這些封裝的框架可以幫助Android應用程序開發(fā)人員快速地完成對安卓手機應用程序的開發(fā)[4],除了官方提供的底層框架外,國內國外也出現了一大批優(yōu)秀的基于Android應用的快速開發(fā)底層框架[5],這些優(yōu)秀的Android快速開發(fā)框架大多數都是封裝的原生SDK底層開發(fā)部分和完整的功能組合,這些框架的出現,降低了安卓應用開發(fā)的難度。常見的開發(fā)框架有OkHttp、volley、Afinal、xUtils。
Android的系統(tǒng)構架采用了分層的思想,從下往上依次為Linux內核,硬件抽象層(HAL),系統(tǒng)Native庫和Android運行時環(huán)境,java框架層以及應用層共5層構架[6],其中每一層又都包含著大量的子模塊、子系統(tǒng)。結構如圖1所示。
1)Android應用程序層
安卓應用程序包含了所有的安卓應用程序,其中可以分為兩部分應用程序,一部分是Android系統(tǒng)附帶的安卓核心應用程序,如電話、相機等應用。另一部分是由安卓程序開發(fā)人員開發(fā)的第三方App,Android應用程序層也是人們在日常生活中使用手機接觸到最多的一個層次。
2)應用程序框架層
它提供了大量可供開發(fā)人員使用的應用程序接口[7](Application Programming Interface,API),應用程序框架層集中了很多Android開發(fā)所需要的組件,其中最主要的就是Activities(活動)、Broadcast Receiver(廣播接收器)、Services(服務)以及Content Providers(內容提供者)這四大組件。Android自帶的很多核心應用也是使用這些API來完成的。應用程序框架層主要提供的組件如表1所示。
3)硬件抽象層
硬件抽象層處于應用程序框架層和Linux內核驅動層之間,用于將硬件抽象化,對內核驅動程序進行封裝,向上提供接口,向下提供屏蔽具體實現細節(jié)。系統(tǒng)硬件抽象層包含多個庫的模塊,每一個模塊都會為指定類型的硬件組件實現向上的接口,例如電話通信模塊,WLAN網絡通信模塊。當程序應用框架層接口(API)要訪問硬件設備時,安卓系統(tǒng)就會為該硬件組件加載庫模塊。
4)Linux內核層
安卓是基于Linux提供的核心系統(tǒng)服務,比如,進程的管理、內存的管理、網絡堆棧、驅動的模型以及安全。除了標準的Linux內核外,Android還增加了內核的驅動程序,例如顯示驅動、輸入設備驅動、音頻系統(tǒng)驅動、Binder(IPC)驅動、攝像頭驅動[8]、WiFi驅動、藍牙驅動和電源管理。
3 總體設計
3.1 開發(fā)設計原則
在開發(fā)過程中,遵循下列三個原則[9-10]:
1)可擴展性。在開發(fā)過程中,考慮到了App的可擴展性,在后續(xù)的版本中,或許會加入新的功能,為了避免加入新功能時需要對整個App都進行重新構造,因此,要遵守可擴展性的規(guī)則,盡最大限度將App各個模塊之間的耦合性做到最小,以保證在有新需求的時候也可以快速方便進行相應的功能需求添加與改動。
2)穩(wěn)定性原則。在代碼開發(fā)的過程中注重代碼的健壯性,保證App的高效、穩(wěn)定,功能全面,給用戶帶來流暢的體驗。
3)易操作性。除了高效穩(wěn)定,美觀的圖標、簡單易懂的操作界面也是吸引用戶的一大亮點,因此,在設計UI之時,在保證UI美觀的同時,圖標也要通俗易懂,要讓用戶很容易理解不同的圖標對應的功能。
3.2 系統(tǒng)主要功能設計
“電子書包”App的主要功能設計如圖2所示,分為六大模塊進行功能開發(fā)設計。
1)提供電子教材功能模塊
在現已存在的互聯網資源上,通過網絡爬蟲技術抓取互聯網上的電子教材資源,經過后臺工作人員的篩選,將內容復制到數據庫制作索引。經過對電子教材的排版優(yōu)化,最終在該功能頁面上展示高質量的電子教材。在閱讀頁面,將以盡可能地還原真實課本的形式展現在用戶面前,實現真實的翻頁效果。設計了推薦書籍子模塊,按照專業(yè)分類,用戶選擇專業(yè)后,會推薦該專業(yè)未來職業(yè)所需要學的課本。此外,還添加筆記功能,記錄學生在電子教材上的點、畫、寫的原始筆跡,最后上傳到服務器后端,供學生下次打開使用。
2)電子筆記本功能模塊
筆記本功能需要用戶先新建一個筆記本,筆記本既可以采用打印字字體,也可以采用用戶手寫字的原始筆跡,并且可以上傳分享,其他用戶可以在筆記廣場子模塊,看到上傳后的其他用戶的筆記,供學習借鑒,與他人共同進步。由于用戶上傳的筆記質量參差不齊,本項目軟件設計了點贊機制,點贊越多展示排名越靠前,可以有效篩選魚龍混雜的筆記。
3)電子學習工具功能模塊
在電子學習功能模塊,設計了多種學習常用到的工具,如科學計算器、面積計算器,體積計算器、尺子、量角器、公式定理書、軟件快捷鍵匯合和學習鬧鐘等。
尺子、量角器,面積計算器,體積計算器通過手機的TOF攝像頭獲取數據,經過程序計算,返回結果輸出在用戶界面上。用戶設定學習鬧鐘后,鬧鐘響時觸發(fā)學習機制。只有用戶通過學習才可解除鬧鐘,通過背若干單詞,或者完成一些簡單的題目,才可關閉鬧鐘。其間App監(jiān)視用戶的操作,用戶進行解除操作時,鬧鐘會短暫關閉。若用戶在一段時間內沒有操作,鬧鐘會繼續(xù)響。此目的在于解決一些用戶鬧鐘響后,關了鬧鐘繼續(xù)睡的習慣,通過短暫的學習達到頭腦清醒的目的。
4)個人中心功能模塊
個人中心功能模塊包含用戶登錄子模塊,包括用戶注冊、密碼修改,以及個人信息、個人收藏、App的相關設置等子模塊。
4 應用主要功能的界面
電子書包App根據功能需求將應用界面設計為4個主界面,分別為教材展示界面、筆記功能界面、工具箱界面、個人中心界面。
圖3所展示的界面是教材展示界面。電子書包App的主要功能,對教材進行了封面展示,點擊書面可以進行課本的預覽,既可以在線閱讀全書,也可以下載下來離線觀看。在頁面的頂部,有搜索以及掃碼。兩種尋找教材的方式,用戶可以方便快捷地搜索到自己需要的電子教材。此外,對用戶進行搜索次數最多的教材進行了排序,歸納在熱門教材的功能模塊中,并且展示前3名的熱門教材,用戶可以點擊“更多”查看更多推薦教材。在課程分類功能模塊中,按照用戶所學的專業(yè)課程進行了教材的整理歸納,把該專業(yè)所需要學的教材歸納到一起,并且加入了該專業(yè)比較著名的非在校課程的教材。
圖4所展示的界面是筆記功能界面。它是App主打的功能之一,筆記本功能模塊。分為兩個功能模塊,第一個為用戶自己創(chuàng)建的電子筆記本,用戶在創(chuàng)建筆記本的時候,點擊新建筆記,即可創(chuàng)建筆記。同時可以選擇使用自己手寫的筆跡或打印字字體,最后可以在具體筆記頁面里上傳自己的筆記,供其他用戶使用觀看,第二個為其他用戶分享的筆記,這里展示了其他用戶上傳的筆記,用戶可以點擊進去觀看、收藏以及評論。對于上傳的筆記,把點贊前三名展示在首頁當中,對于后續(xù)的工作,會加入按照專業(yè)來對上傳的筆記分類歸納和展示的功能。
圖5所展示的是工具箱界面。點擊不同的工具圖標則進入相應的工具,在尺子當中,首先獲取用戶的手機屏幕信息,包括分辨率、尺寸、比例等信息,根據尺寸和比例來算出用戶電子設備屏幕的長寬。再根據這一信息來分配長度刻度表,最后把刻度表顯示在屏幕上。
圖6則是個人中心界面。上方顯示的是用戶的頭像以及昵稱,分別點擊頭像和昵稱可以更改頭像圖片和昵稱名稱。下方顯示的是一些功能按鍵,點擊“我的教材”,進入用戶下載過的電子教材,點擊“我的收藏”,進入用戶收藏的筆記,還有其他的一些功能。
5 結束語
隨著目前教育電子化的進程不斷進行,早在幾年前的課堂上就已經應用多媒體教學設備進行教學。越來越多的課本也已經數字化,能提供電子教材的網站也有不少,但手機端的應用還比較少且功能較為單一。電子書包App為同學提供優(yōu)質的電子教材,以及優(yōu)秀筆記的分享平臺,集合學生常用的工具,可以有效地為學生節(jié)省網上尋找電子教材的時間。為學生打造一個高品質、高效率的輔助學習應用。
參考文獻:
[1] 劉鵬飛.電子書包的應用現狀及建設建議[J].甘肅教育,2022(7):74-78.
[2] 劉丹,胡衛(wèi)星,李玉斌,等.移動教育APP的研發(fā)現狀與應用問題分析[J].電化教育研究,2016,37(8):47-52.
[3] 冀永歡.移動應用開發(fā)現狀與前景[J].數字技術與應用,2022,40(4):164-166.
[4] 何紅輝.Android開發(fā)進階:從小工到專家[M].北京:人民郵電出版社,2016.
[5] 馬永起,陳全根,程錚.基于Android的IETM平板閱讀器設計[J].電腦與信息技術,2021,29(5):32-36.
[6] 周星錦,秦宇,吳秋新,等.Android框架層完整性度量方案[J].計算機系統(tǒng)應用,2019,28(8):1-9.
[7] 陳強.Android底層接口與驅動開發(fā)技術詳解[M].2版.北京:中國鐵道出版社,2015.
[8] 鮑美英,申晉祥.基于Android的智慧閱讀APP的設計與實現[J].山西大同大學學報(自然科學版),2021,37(4):17-18,21.
[9] 王佩.關于軟件開發(fā)過程的設計原則研究[J].電子測試,2017(11):133,105.
[10] 牛曉麗.計算機軟件開發(fā)中的軟件工程方法分析[J].電腦編程技巧與維護,2021(6):71-72,98.
【通聯編輯:謝媛媛】