江志華,陳翱天
(1.樂山師范學院 人工智能學院,四川 樂山 614000;2.北京交通大學 計算機與信息技術學院,北京100044)
隨著移動互聯網的發展,移動智能終端設備在人們工作生活中起著越來越重要的作用。在人們日常學習和工作中經常需要快速高效地記錄許多信息,然而傳統的記錄方式已經滿足不了這種需求,因此開發一款能夠便捷、高效運行在移動智能終端設備上的記事本App變得很有必要[1]。
在文獻[1]中作者利用語音識別以及合成技術將語音轉換成文字,通過云存儲技術存儲用戶的筆記數據,設計實現了一款語音云記事本軟件。在文獻[2-5]中作者僅實現了記事本文本增刪改查、檢索以及信息分享、同步等基本功能。現有記事本App大多只實現了基本的信息記錄功能,功能較單一,記錄的信息類型也僅限于文本類信息;缺少用戶身份驗證功能,存在一定的安全隱患,一旦用戶的安卓設備丟失,用戶的筆記數據就可能會泄漏。本文開發實現的記事本App集多種功能于一體,在實現信息記錄基本功能的基礎上,還實現了用戶安全驗證、信息云備份等功能。App通過在客戶端設置密碼,實現啟動驗證功能,保障了用戶信息的安全性;能夠支持文本、清單、圖片、語音多種信息類型的記錄與備份,實現了記錄信息類型的多樣性;實現了信息云備份功能,用戶能夠根據需要關閉或打開云備份功能,將信息備份至云端服務器。該App具有一定的創新性和應用價值,能有效地幫助人們提高記錄效率,為人們的工作生活提供了方便。
記事本App以Android5.0+為開發平臺,服務端前臺采用html、javascript、CSS+DIV等技術,后臺數據利用Spring Boot、Jpa等框架技術進行處理。App采用MySql數據庫存儲信息,實現對信息的增加、刪除、查找、修改、上傳到云端備份等功能。
Android是以Linux核心作為基礎的一種操作系統,其代碼是開源的,由Google公司和開放手機聯盟領導及開發。其主要應用于移動智能終端設備,如智能手機和平板電腦,是目前市面上主流手機的操作系統之一[2-3]。
App服務端開發環境為Tomcat。Tomcat是Apache基金會的核心項目之一,是一個免費開源的Web 應用服務器,主要用在基于Java的Web應用中,是開發和調試JSP程序的首選[6]。
App服務端采用Spring Boot框架管理整個應用,使用Jpa做數據的持久化,與數據庫之間進行交互。
Spring Boot框架可用于簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于成為快速應用開發領域(rapid application development)的領導者[7]。
JPA是Java Persistence API的簡稱,是JDK 5.0注解或XML描述對象—關系表的映射關系,其可將運行期的實體對象持久化到數據庫中[8]。
記事本App采用前后端分離的設計模式,系統總體上分為前端客戶端和后端服務端兩大模塊。客戶端模塊包括:用戶注冊和登錄、啟動驗證、信息添加和查詢、云備份、賬戶信息設置和修改。服務端模塊包括:用戶登錄、賬戶管理、查詢信息、郵箱驗證、圖片服務器、數據持久化等。客戶端功能模塊見圖1,服務端功能模塊見圖2[9]。

圖1 客戶端功能模塊

圖2 服務端功能模塊
根據記事本App總體功能,為系統設計8個基本信息表,客戶端包括:用戶信息表user_info、啟動驗證信息表note_lock、信息記錄清單表note_bill、信息記錄表note_info。服務端包括:用戶信息表user_info、郵件信息表email_info、信息記錄清單表note_bill、信息記錄表note_info[9]; 客戶端和服務端數據庫模型圖見圖3、圖4。

圖3 客戶端數據庫模型圖

圖4 服務端數據庫模型圖
4.1.1 客戶端預計效果
記事本APP客戶端提供用戶記錄信息功能,用戶的所有操作都是基于客戶端完成的。其設計效果包括:增加、修改和查詢游客信息,設置App啟動驗證。用戶可以通過登錄App獲取設置/修改郵箱、設置/修改頭像、設置/修改昵稱、修改/設置密碼、修改電話、云備份、后臺管理等權限。用戶可選擇電話驗證碼直接登錄,也可通過注冊賬戶密碼的方式登錄。用戶忘記登錄賬戶密碼時可通過手機號找回。游客用戶卸載App時將導致記錄的信息永久刪除,登錄用戶卸載App時已同步至服務器的數據信息不受影響。客戶端對游客和注冊用戶的功能支持情況見表1。

表1 客戶端角色功能表
4.1.2 用戶模塊
a)用戶注冊。用戶可通過注冊獲得記事本App賬號,在登錄頁面點擊“立即注冊”進入注冊頁面。注冊頁面包含:輸入手機號、密碼、確認密碼、圖形驗證碼、短信驗證碼、記事本相關協議等信息。用戶注冊頁面對輸入的信息都有驗證功能,當輸入的信息不恰當時,會出現相應提示,注冊成功后返回登錄頁面。
b) 用戶登錄。App提供電話號碼加短信驗證碼以及注冊賬號加登錄密碼兩種登錄方式。用戶通過在個人信息頁面點擊“登錄”進入登錄頁面,登錄頁面對每一個輸入的信息都有驗證:是否為空驗證,電話號碼和密碼長度以及有效性驗證。用戶登錄成功后返回到個人信息頁。用戶登錄App后可獲取用戶基本信息設置、云備份、后臺管理等權限。用戶登錄流程如圖5,界面設計如圖6所示。

圖5 登錄模塊流程圖

圖6 登錄頁面

圖7 云備份模塊
4.1.3 云備份模塊
注冊用戶在登錄成功后就可獲得云備份的權限,可以將記錄的信息備份至服務器。在個人中心頁面打開云備份按鈕即可開啟云備份功能,記事本App客戶端在后臺將用戶信息上傳至服務器。用戶在關閉云備份按鈕后,客戶端將停止向服務器上傳信息,但已上傳的信息不受影響。在信息列表處可以看到當前已備份至服務器的記錄數。云備份模塊界面見圖7。
4.1.4 啟動驗證模塊
用戶可以為客戶端設置啟動驗證,在個人中心頁面選擇打開啟動驗證按鈕即可進入圖案密碼設置界面。按照頁面提示設置圖案密碼,客戶端將擁有啟動驗證功能。當退出記事本App重新進入后將進入驗證圖案密碼界面,只有密碼正確才可進入客戶端。記事本App客戶端密碼保存在本地數據庫,App不會將密碼上傳至服務器,用戶必須牢記客戶端啟動驗證密碼,一旦忘記將無法找回。同樣,如果用戶需要關閉啟動驗證,需在個人中心頁面選擇關閉啟動驗證按鈕,選擇后將進入圖形密碼驗證頁面,驗證成功后即成功關閉啟動驗證功能。
4.1.5 信息記錄模塊
a)信息清單。用戶進入客戶端主界面后可見信息清單頁面,頁面上的信息包括:信息列表、信息標題、信息標記、信息包含類型、信息創建時間。在信息清單上支持對每一條信息進行左滑、信息置頂或刪除操作。信息被置頂后將顯示于信息清單的最上層;信息被刪除后將會從數據庫刪除,刪除后不可找回。
b)信息清單搜索。App提供信息搜索功能,用戶點擊清單最上方搜索框即可進入搜索頁面。搜索采用模糊搜索和即時響應的方式,用戶只需輸入少量的關鍵字即可查詢到相關信息。
c)信息錄入。用戶點擊記事本頁面的新建按鈕,即可進入記事頁面。App支持文本、清單、圖片、語音等多種數據類型。用戶可以選擇相應的數據類型進行信息錄入,錄入完畢點擊返回按鈕即可保存數據。
4.2.1 用戶信息模塊
服務端提供App客戶端用戶信息處理,實現與客戶端信息的交互。該模塊包含用戶注冊、登錄、獲取及更新用戶信息、發送郵箱激活及驗證碼郵件、驗證郵箱驗證碼、設置頭像、忘記密碼、重置密碼等功能接口。
4.2.2信息上傳模塊
服務端提供App客戶端信息云同步的數據處理,實現將客戶端上傳的信息保存至服務器。該模塊包含處理從客戶端傳遞過來的數據的接口。
4.2.3 郵箱驗證模塊
用戶在發送郵箱激活驗證郵件后,當用戶收到郵件并發起驗證請求時,服務器將判斷驗證是否通過。服務器判斷的依據為驗證碼是否有效、是否超時發起驗證、驗證郵箱與當前郵箱是否一致。驗證通過后,用戶的郵箱被標記為已驗證。
4.3.1登錄后臺管理
在瀏覽器中輸入地址http://www.xfishs.shop/note/manager即可進入用戶的后臺管理登錄界面,用戶登錄成功后進入用戶后臺管理主頁。后臺管理不支持注冊和短信驗證碼登錄,用戶需要在客戶端注冊才可以登錄后臺管理。后臺管理登錄界面如圖8所示。

圖8 后臺管理登錄界面
以下是實現登錄的關鍵代碼:
@PostMapping("/login")
publicString login(HttpServletRequest request,
@RequestParam("phone")String phone,
@RequestParam("password")String password){
UserInfo userInfo = userInfoService.findUserInfoBy
UserPhone(phone);
if(Objects.isNull(userInfo))
return"fail";
if(!userInfo.getUserPassword().equals(password))
return"fail";
request.getSession().setAttribute(Constants.US
ER_SESSION,userInfo.getUserAccount());//
return "redirect:/manager/home";}
4.3.2 刪除信息
用戶在后臺管理主頁可以看到已上傳至服務器的所有信息。當用戶鼠標移動到某條信息上時,該條信息的右上角會顯示刪除按鈕,點擊刪除按鈕將彈出提示窗口。確認刪除后,信息將從服務器中刪除。信息的刪除操作采用異步處理,刪除后數據將從頁面移除。
4.3.3 注銷登錄
為防止造成信息泄露,當前登錄用戶可以注銷登錄。用戶在后臺管理主頁面點擊安全退出按鈕即可退出當前登錄,退出后APP將跳轉到登錄界面,用戶需要重新登錄才可以進行后臺管理等相關操作。
4.3.4 查看信息詳情
用戶在后臺管理主頁點擊信息,即可查看每條信息的詳情。用戶在信息詳情頁也可對信息進行刪除,刪除按鈕位于信息右上方。詳情界面如圖9所示。

圖9 信息詳情
本次系統測試客戶端使用的硬件設備為努比亞NX511J,其基本配置為2G內存、 Android5.1.1操作系統;服務端使用的硬件設備為HP246G3筆記本電腦,其基本配置為8G內存、i5-4210U 2.40GHz CPU、Windows10(64位)操作系統。
將編譯后的客戶端安裝至手機,服務端項目發布至tomcat中,并打開數據庫服務器,對App各項功能進行測試[10]。由于功能模塊比較多,限于篇幅原因,此處僅選擇客戶端用戶登錄和服務端信息刪除功能做測試用例介紹。測試用例表具體見表2、表3。

表2 客戶端用戶登錄測試用例表

表3 服務端信息刪除測試用例表
本次測試因受測試條件限制,只測試了系統功能,對系統性能和穩定性沒有進行充分測試。對照系統需求分析文檔對功能測試結果進行分析,系統所有模塊的功能基本實現,能夠滿足用戶的需求,因此本次系統功能測試通過。
記事本App從總體上實現了前端客戶端和后端服務端兩大模塊的相關功能,能夠滿足人們日常的記錄需求,為工作和生活中的信息記錄帶來了便利。但是該App也存在不足之處,比如在系統性能、穩定性方面依然存在潛在風險,后續將有待提升。