蔣權(quán) 林慶 程立
摘 ?要: 針對在Android操作系統(tǒng)中使用跨平臺轉(zhuǎn)發(fā)的傳統(tǒng)方法造成的諸多不便問題,該文提供一種APP開發(fā)設(shè)計方案,并對其特點(diǎn)分析研究,以簡潔的界面與個性化設(shè)計為用戶在Android跨平臺文本信息的轉(zhuǎn)發(fā)操作中提供方便快捷的操作。
關(guān)鍵詞: Android;第三方轉(zhuǎn)發(fā);跨平臺;APP設(shè)計
中圖分類號: TP319 ? ?文獻(xiàn)標(biāo)識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.05.031
本文著錄格式:蔣權(quán),林慶,程立. 基于Android的跨平臺文本信息轉(zhuǎn)發(fā)的APP設(shè)計與研究[J]. 軟件,2019,40(5):163166
【Abstract】: Aiming at the inconvenience caused by the traditional method of cross-platform forwarding in Android operating system, this paper provides an APP development design scheme, and analyses its characteristics. It provides users with convenient and fast operation in Android cross-platform text information forwarding operation with concise interface and personalized design.
【Key words】: Android; third-party forwarding; cross-platform; APP design
0 ?引言
手機(jī)QQ、微信、新浪微博等社交應(yīng)用APP以智能手機(jī)為載體作為當(dāng)今娛樂與信息通信的主要工具,每時每刻海量的信息通過它們傳送,因其快捷的信息共享與便捷的服務(wù)擁有龐大的用戶基數(shù),而同一用戶使用多個社交平臺提供的應(yīng)用APP的現(xiàn)象已成常態(tài)。但在人們需要在不同的社交應(yīng)用APP之間跨平臺進(jìn)行文本信息的轉(zhuǎn)發(fā)操作時,現(xiàn)有可供選擇的方法有限且都存在較大局限性,不足以滿足人們方便快捷的需求。
例如,需要將存在手機(jī)QQ聊天紀(jì)錄的一條文本信息轉(zhuǎn)發(fā)至微信好友,有兩種傳統(tǒng)方法可以實(shí)現(xiàn):
憑記憶手動完成全部操作,具體可分三步:①通過記憶在手機(jī)QQ上聊天信息查看界面記下此信息;②切換到對應(yīng)微信好友聊天界面,③在文本框中輸入所記信息后發(fā)送。其可行性取決于文本的長度與人的記憶,微信好友接收的信息的正確性難以保證,所以,此方法操作不僅費(fèi)時,而且結(jié)果可能不盡人意。
使用依賴于系統(tǒng)剪貼板的復(fù)制粘貼功能簡化部分操作,具體可分三步:①通過長按操作在手機(jī)QQ聊天信息查看界面選擇復(fù)制此信息;②切換到對應(yīng)微信好友聊天界面;③在文本框中長按或查看剪貼板粘貼所復(fù)制的信息后發(fā)送。與第一種方法類似,雖有效地利用了系統(tǒng)工具簡化了操作,但仍然存在操作不便且需耗費(fèi)較多時間的問題。
此外,當(dāng)需要進(jìn)行多條文本信息跨平臺轉(zhuǎn)發(fā),若采用上述任一傳統(tǒng)方法,需要在兩個應(yīng)用平臺的界面之間來回往復(fù)地切換,其操作之不便,過程之繁瑣,耗時之久顯而易見。針對上述現(xiàn)狀,該文提供一種APP開發(fā)設(shè)計方案,并對其特點(diǎn)分析研究,以簡潔的界面與個性化設(shè)計為用戶在Android跨平臺文本信息的轉(zhuǎn)發(fā)操作中提供方便快捷的操作。
1 ?文本信息轉(zhuǎn)發(fā)APP軟件的相關(guān)技術(shù)分析
1.1 ?軟件的可行性分析
Android是Google公司發(fā)布的基于Linux內(nèi)核、專門為移動設(shè)備開發(fā)的平臺,其中包含操作系統(tǒng)、中間件、用戶界面、應(yīng)用軟件,是一個完全免費(fèi)的開源的手機(jī)平臺[1]。Android的APP開發(fā)使用Java作為主要程序開發(fā)語言,該APP利用Android Studio集成開發(fā)環(huán)境作為開發(fā)工具。
基于Android的跨平臺文本信息轉(zhuǎn)發(fā)APP所采用的方法結(jié)合了上述兩種傳統(tǒng)方法的特點(diǎn),對于單條文本信息的跨平臺轉(zhuǎn)發(fā),與使用傳統(tǒng)方法進(jìn)行操作比較,所需操作的步驟數(shù)量減少不多,但保證了文本內(nèi)容的正確無誤,可靠性提升。而對于多條文本信息的跨平臺轉(zhuǎn)發(fā)利用此APP可以一步操作實(shí)現(xiàn),用戶只需要完成待轉(zhuǎn)發(fā)文本內(nèi)容的選取和轉(zhuǎn)發(fā)對象的選擇,省略了傳統(tǒng)方法方法必須要進(jìn)行的界面來回切換操作,此外,用戶可根據(jù)需要,通過隨時都能打開的懸浮窗按鈕對文本信息進(jìn)行編輯,因繁瑣的界面切換操作的取消,可顯著提高轉(zhuǎn)發(fā)效率。
Android四大基本組件包括:活動(Activity),提供人機(jī)交互可視化界面,是 Android 系統(tǒng)中最重要的也是最基本的組件[2];服務(wù)(Service),后臺運(yùn)行服務(wù),不提供界面呈現(xiàn);廣播接受器(Broadcast Receive),用于接收廣播;內(nèi)容提供者(Content Provider),支持多個應(yīng)用中存儲和讀取數(shù)據(jù),相當(dāng)于數(shù)據(jù)庫。利用Intent可在這些組件中進(jìn)行消息通信,可以方便地啟動組建和傳輸數(shù)據(jù),簡化了跨進(jìn)程通信地難度[3]。在該APP開發(fā)方案中,以Activity為基礎(chǔ),提供文本信息的遍歷、編輯以及系統(tǒng)設(shè)置等人機(jī)交互界面,以Service為核心,提供創(chuàng)建懸浮窗、對剪貼板動態(tài)監(jiān)控等相關(guān)服務(wù)。根據(jù)Google提供的API文檔,因該APP需用到與懸浮窗相關(guān)的開發(fā)技術(shù),而不同版本的API對懸浮窗的屬性要求不同,所以需進(jìn)行懸浮窗適配。另外,對市面上不同廠商的Android手機(jī)也需進(jìn)行與懸浮窗有關(guān)的適配。
1.2 ?軟件功能分析
通過對Android系統(tǒng)的結(jié)構(gòu)分析和用戶的基本需求進(jìn)行功能性分析,得出具體的功能如下:(1)快速獲取文本:用戶通過長按操作復(fù)制文本信息后,該APP后臺獲取文本并保存;(2)文本再編輯:用戶對獲取的文本可進(jìn)行查、改、刪操作;(3)添加文本信息:用戶可直接添加并編輯所需的文本內(nèi)容;(4)快速喚出文本編輯窗口:用戶通過點(diǎn)擊懸浮窗按鈕在Android系統(tǒng)任一界面喚出文本信息編輯的窗口;(4)一鍵轉(zhuǎn)發(fā):用戶可將編輯成功的文本一鍵轉(zhuǎn)發(fā)至指定的第三方平臺;(5)快速跳轉(zhuǎn)至QQ或微信界面:在其它任一界面,用戶可拖動懸浮按鈕至相應(yīng)位置實(shí)現(xiàn)界面的跳轉(zhuǎn);(6)文本收藏夾:用戶可將指定文本添加至收藏夾保存。
2 ?文本信息轉(zhuǎn)發(fā)APP軟件的系統(tǒng)設(shè)計
2.1 ?軟件框架設(shè)計
基于Android的跨平臺信息轉(zhuǎn)發(fā)的APP以清晰的三層結(jié)構(gòu)進(jìn)行架構(gòu),整體架構(gòu)分為數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層以及表現(xiàn)層,有利于實(shí)現(xiàn)“高內(nèi)聚,低耦合”[4],提高各模塊的獨(dú)立性,如圖1所示。
表現(xiàn)層位于三層邏輯架構(gòu)的最上層,由Android移動設(shè)備進(jìn)行訪問,為用戶提供一種交互式操作的界面。例如:用戶需要對某一文本信息修改時,會根據(jù)所選文本信息跳轉(zhuǎn)至文本編輯界面;需要將某一文本添加至收藏夾或刪除,通過滑動對應(yīng)文本進(jìn)行操作;需要將某一文本跨平臺轉(zhuǎn)發(fā),通過懸浮窗的一鍵轉(zhuǎn)發(fā)按鈕實(shí)現(xiàn)快速轉(zhuǎn)發(fā)操作,等等。業(yè)務(wù)邏輯層是處理APP業(yè)務(wù)需求的一層,將用戶需要的對文本信息的增、刪、改、查以及跨平臺轉(zhuǎn)發(fā)等功能進(jìn)行處理。數(shù)據(jù)訪問層作為系統(tǒng)的基礎(chǔ)底層支柱,將用戶執(zhí)行操作過程中產(chǎn)生的文本數(shù)據(jù)以及對該APP的系統(tǒng)設(shè)置數(shù)據(jù)存儲在數(shù)據(jù)庫中,并對數(shù)據(jù)庫進(jìn)行封裝操作,提供訪問數(shù)據(jù)庫的接口給手機(jī)APP。
2.2 ?功能模塊的設(shè)計
通過對該APP開發(fā)過程中所運(yùn)用的技術(shù)分析,將關(guān)鍵技術(shù)提取為以下5點(diǎn)。
(1)基于Server的懸浮窗設(shè)計
懸浮窗在Android操作系統(tǒng)中任一APP應(yīng)用界面都可顯示,便于用戶在任一應(yīng)用界面隨時可以通過懸浮窗按鈕對文本信息進(jìn)行操作或?qū)崿F(xiàn)轉(zhuǎn)發(fā)操作。其分為兩級窗口視圖,一級視圖(小懸浮窗)可用于拖動實(shí)現(xiàn)界面跳轉(zhuǎn)與單擊喚出二級懸浮窗窗口的功能,二級視圖主要實(shí)現(xiàn)對文本信息的選擇與編輯等相關(guān)功能。
懸浮窗主要通過WindowMananger類的服務(wù)與綁定的Service互相配合實(shí)現(xiàn),WindowManager類主要用來管理窗口的一些狀態(tài)、屬性、view增加、刪除、更新、窗口順序、消息收集和處理等,是外界訪問Window的入口,Android中所有的視圖都是Window來呈現(xiàn)的[5]。同時,懸浮窗為在所有應(yīng)用之上顯示控件需要配置權(quán)限。
(2)基于Activity的用戶操作界面設(shè)計
該APP主界面利用Fragment類提供文本信息查看界面、收藏夾界面和系統(tǒng)設(shè)置界面,實(shí)現(xiàn)界面的快速切換。而文本信息查看界面與收藏夾界面類似于Android手機(jī)系統(tǒng)自帶的記事本文本信息查看界面,利用ListView呈現(xiàn)文本信息選擇目錄界面,當(dāng)Android加載一個Listview的布局時,通常是通過getView()方法來獲取該View的各種參數(shù)[6],而ListView最重要的一個功能就Adapter,在用戶往ListView添加數(shù)據(jù)后,需調(diào)用Adapter的notifyData-SetChanged()方法刷新ListView界面[7],單擊相應(yīng)的表項(xiàng)可跳轉(zhuǎn)至文本信息編輯界面實(shí)現(xiàn)相應(yīng)的文本編輯操作。為滿足用戶方便快捷的操作,利用Horiz?ontalScrollView類自定義視圖實(shí)現(xiàn)對文本信息的側(cè)滑操作。
文本信息查看界面與收藏夾界面主要是提供給用戶操作文本的人機(jī)交互界面,系統(tǒng)設(shè)置界面包括懸浮窗開關(guān)按鈕與其它系統(tǒng)設(shè)置按鈕。
(3)基于文本信息保存功能的設(shè)計
為實(shí)現(xiàn)從剪貼板獲取的文本信息與收藏夾中文本信息的長久保存以及操作過程中文本信息的動態(tài)保存,利用SQLiteOpenHelper類實(shí)現(xiàn)數(shù)據(jù)庫存儲技術(shù),對數(shù)據(jù)庫進(jìn)行寫數(shù)據(jù),數(shù)據(jù)搜索和刪除數(shù)據(jù)操作,保證數(shù)據(jù)的穩(wěn)定存儲以及傳輸[8],并建立三張表(Table)分別存儲三種文本信息,并實(shí)現(xiàn)增、刪、改、查操作,每張表(Table)包括文本信息內(nèi)容(Text)、唯一標(biāo)識符(隨機(jī)獲?。?、日期(年:月:日:時:分:秒:毫秒)等屬性。
文本信息查看界面的文本來源包括該APP通過后臺實(shí)時獲取的系統(tǒng)剪貼板文本和用戶添加文本,收藏夾界面文本來源包括用戶自定義的常用語句、重要紀(jì)錄等文本,文本信息查看界面的文本可以根據(jù)用戶需求添加至收藏夾保存。根據(jù)分類,該APP上所有的文本會自動存儲至相應(yīng)的表(Table)中。
(4)基于剪貼板文本信息實(shí)時獲取的設(shè)計
為了動態(tài)獲取用戶隨時都能通過長按操作選擇復(fù)制的文本內(nèi)容,可利用ClipboardManager類對剪貼板操作的功能與Servive后臺監(jiān)控的操作特性。即:Service負(fù)責(zé)每隔一段時間查看剪貼板首條文本信息是否發(fā)生變化,如果是,則獲取并添加至數(shù)據(jù)庫,以至用戶可以在文本信息查看界面中查看所獲取的文本信息后進(jìn)行有關(guān)操作。
(5)基于跨平臺的文本信息快速轉(zhuǎn)發(fā)功能的 設(shè)計
文本信息轉(zhuǎn)發(fā)或分享至第三方平臺有三種可利用的方法:①調(diào)用系統(tǒng)的分享轉(zhuǎn)發(fā)功能;②通過第三方SDK,如ShareSDK,友盟等;③自行使用各自平臺的SDK,比如QQ,微信,微博各自的SDK。其中,后面兩種方法需到相應(yīng)平臺注冊開發(fā)者信息和有關(guān)申請后再導(dǎo)入SDK包才能使用,為提高APP開發(fā)效率,現(xiàn)使用第一種方法,因?yàn)锳ndroid自帶的系統(tǒng)調(diào)用分享轉(zhuǎn)發(fā)功能穩(wěn)定可靠、使用簡單快捷,雖個性設(shè)計不多,但已夠滿足該APP的開發(fā)需求。
3 ?結(jié)語
基于Android的跨平臺文本信息轉(zhuǎn)發(fā)的APP設(shè)計是從傳統(tǒng)跨平臺轉(zhuǎn)發(fā)方法為出發(fā)點(diǎn),簡化了操作流程中部分繁瑣過程,只保留其過程的必要操作,特別是對于多條文本信息的跨平臺轉(zhuǎn)發(fā)效果明顯,并利用了懸浮窗隨時可操作的便捷性,實(shí)現(xiàn)文本快速編輯與快速轉(zhuǎn)發(fā)的操作,在Android智能手機(jī)設(shè)備得到了廣泛應(yīng)用和普及的時代背景下[9],該APP的實(shí)現(xiàn)減少了人力操作的繁瑣過程消耗,給人們帶來更好使用手機(jī)的體驗(yàn)。另外,該APP基于現(xiàn)實(shí)需求開發(fā),采用了結(jié)構(gòu)清晰的三層架構(gòu),層次清晰耦合度低,不僅方便簡潔,操作容易,還順應(yīng)了當(dāng)今時代人們快節(jié)奏的生活方式,一定程度上將Android操作系統(tǒng)中不同應(yīng)用平臺之間的信息交流聯(lián)系在一起。上述方案只是針對文本的跨平臺轉(zhuǎn)發(fā),對與圖片、視頻的跨平臺轉(zhuǎn)發(fā),原理與本方案類似,有待進(jìn)一本對本方案改善。
參考文獻(xiàn)
[1] 明日學(xué)院. Android開發(fā)從入門到精通[M]. 北京: 中國水利水電出版社, 2018:1-2.
[2] 王飛雪. 基于 Android 平臺的手機(jī)助手系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D]. 吉林:吉林大學(xué), 2017: 7-8.
[3] 唐俊杰. 面向Android系統(tǒng)中Intent通信機(jī)制的漏洞分析框架及其應(yīng)用[D]. 山東:山東大學(xué), 2017: 1-2.
[4] 許莉麗. 基于移動平臺的學(xué)生請假審批系統(tǒng)設(shè)計與實(shí)現(xiàn)[J]. 無線互聯(lián)科, 2015(17): 50-51.
[5] 任玉剛. Android開發(fā)藝術(shù)探索[M]. 北京: 電子工業(yè)出版社, 2015: 294.
[6] 毛昊. 一種服務(wù)于 Android 移動設(shè)備的自適應(yīng)滾屏技術(shù)[J]. 軟件, 2018, 39(3): 145-149.
[7] 何紅輝, 關(guān)愛民. Android源碼設(shè)計模式解析與實(shí)戰(zhàn)(第2版). [M]. 北京: 人民郵電出版社, 2017: 231-232.
[8] 陸相任. 基于 Android 平臺開發(fā)的師生學(xué)習(xí)交流APP[J]. 軟件, 2018, 39(4): 21-23.
[9] 閆學(xué)順, 王景暉, 張俊杰. 基于Android的智能醫(yī)療管理軟件設(shè)計方案研究[J]. 軟件, 2018, 39(7): 33-36.