摘要:隨著市場(chǎng)的不斷需求,Android操作系統(tǒng)越來(lái)越完善,由于時(shí)代的發(fā)展需要,App也逐漸成為市場(chǎng)空缺,App終端研究成為主流研究項(xiàng)目。該文對(duì)基于Android操作系統(tǒng)的移動(dòng)終端App開(kāi)發(fā)視角下進(jìn)行深入細(xì)致的剖析,為相關(guān)領(lǐng)域從業(yè)人員提供一定理論指導(dǎo)和參考,更好地促進(jìn)了在當(dāng)前互聯(lián)網(wǎng)不斷發(fā)展普及背景下Android操作系統(tǒng)的移動(dòng)終端App的開(kāi)發(fā)工作創(chuàng)新。
關(guān)鍵詞:Android操作系統(tǒng);移動(dòng)終端App;開(kāi)發(fā)研究
中圖分類號(hào):TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)04-0064-02
在我國(guó)市場(chǎng)上運(yùn)行的操作系統(tǒng)中,Android操作系統(tǒng)起步較早,構(gòu)建完善,受到了大部分國(guó)內(nèi)廠商的喜愛(ài),并與之展開(kāi)深層次合作。在不斷提升、完善Android操作系統(tǒng)性能的同時(shí),被開(kāi)發(fā)推出的移動(dòng)終端App也越來(lái)越多,而如何基于Android操作系統(tǒng)更好地進(jìn)行移動(dòng)終端App的開(kāi)發(fā)仍然有待研究。
1 Android系統(tǒng)
Android系統(tǒng)是一種移動(dòng)操作系統(tǒng),擁有以Linux內(nèi)核為基礎(chǔ)的開(kāi)發(fā)平臺(tái)。系統(tǒng)的架構(gòu)包含了多層次,而相互獨(dú)立的各層又包含了多內(nèi)容。也是因?yàn)檫@一特點(diǎn),開(kāi)發(fā)人員可以更好地實(shí)現(xiàn)開(kāi)發(fā)需求,提升開(kāi)發(fā)的質(zhì)量和效率[1]。而想要基于Android操作系統(tǒng)進(jìn)行移動(dòng)終端App的開(kāi)發(fā),需要熟悉Android的一些基本信息。
1.1 架構(gòu)
1.1.1 Linux內(nèi)核層
Android基礎(chǔ)層是依靠Linux內(nèi)核建立的,該層包含了幾乎所有移動(dòng)設(shè)備會(huì)用到的驅(qū)動(dòng)程序,并幫助系統(tǒng)與硬件通信,其包含的驅(qū)動(dòng)程序有:DisplayDriver、KeyBoardDriver、FlashMemoryDriver、CameraDriver、AudioDriver、BluetoothDriver、PowerManagement等。除此之外,它還會(huì)提供對(duì)內(nèi)存、電源、系統(tǒng)進(jìn)程、文件系統(tǒng)、USB的管理,合理分配處理系統(tǒng)運(yùn)行資源、管理進(jìn)程通信、保存運(yùn)行狀態(tài)。
1.1.2 系統(tǒng)運(yùn)行庫(kù)層
系統(tǒng)運(yùn)行庫(kù)層包含兩部分,一是庫(kù)文件,多為Android系統(tǒng)會(huì)用到的C或C++庫(kù)文件,比如媒體庫(kù)、SQLite。二是Android運(yùn)行環(huán)境,也就是虛擬機(jī)技術(shù),是運(yùn)行Android應(yīng)用程序時(shí)需要的核心庫(kù)。
1.1.3 應(yīng)用程序框架層
這是編寫(xiě)方發(fā)布的核心應(yīng)用時(shí)需要使用的API框架,包括十個(gè)部分:活動(dòng)管理器、窗口管理器、內(nèi)容提供者、視圖系統(tǒng)、通知管理器、包管理器、電話管理器、資源管理器、位置管理器、XMPP服務(wù)。開(kāi)發(fā)人員可以使用其中的框架,也就是谷歌直接提供的庫(kù)存來(lái)進(jìn)行開(kāi)發(fā)。只要遵循框架的開(kāi)發(fā)原則,就可以簡(jiǎn)化進(jìn)行架構(gòu)設(shè)計(jì)的步驟,節(jié)省時(shí)間。
1.1.4 應(yīng)用程序?qū)?/p>
該層與基于Android操作系統(tǒng)的移動(dòng)終端App直接相關(guān),也就是Java語(yǔ)言來(lái)進(jìn)行程序開(kāi)發(fā)。
1.2 構(gòu)件
1.2.1 活動(dòng)(Activity)
這是開(kāi)發(fā)中使用最頻繁的構(gòu)件,一個(gè)Activity就是一個(gè)單獨(dú)窗口,并有運(yùn)行中(Running/Active)、暫停(Paused)、停止(Stoped)、銷毀(Detroyed)四種狀態(tài)。彼此之間通過(guò)Intent通信,是用戶操作時(shí)可視化的界面,基于Android操作系統(tǒng)的移動(dòng)終端App中,能看見(jiàn)的都要依托于它。而要讓系統(tǒng)識(shí)別并執(zhí)行Activity,應(yīng)用中每一個(gè)Activity都必須在AndroidManifest.xml配置文件中聲明。
1.2.2 服務(wù)(Service)
它是移動(dòng)終端App后臺(tái)運(yùn)行的解決方案,不依賴用戶界面,可以長(zhǎng)期保持正常運(yùn)行,適合執(zhí)行無(wú)須與用戶交互且需長(zhǎng)期運(yùn)行的任務(wù)。與Activity十分類似,存在生命周期,也需要在AndroidManifest.xml配置文件中聲明,只是沒(méi)有窗口。另外值得注意的是,Service在獨(dú)立進(jìn)程中運(yùn)行,不會(huì)自動(dòng)開(kāi)啟線程,而是依賴創(chuàng)建服務(wù)時(shí)所在的移動(dòng)終端App進(jìn)程,其代碼運(yùn)行于主線程中。Service分啟動(dòng)(started)、綁定(bound)兩種,啟動(dòng)方式也有startService、bindService兩種,兩兩之間互相對(duì)應(yīng)。當(dāng)構(gòu)件調(diào)用start Service方法啟動(dòng),Service就處于啟動(dòng)狀態(tài),當(dāng)調(diào)用bind Service方法綁定到Service,它就處于綁定狀態(tài)。
2 App在Android操作系統(tǒng)中的應(yīng)用、發(fā)展
因?yàn)楣潭ㄓ脩羧巳簲?shù)量多,多方進(jìn)入了一個(gè)良性循環(huán)。比如Android手機(jī)的App在初期就擁有大批用戶群,開(kāi)發(fā)者即可獲得大量利益,而要想得到利益,手機(jī)廠商需要與Android公司長(zhǎng)期工作,開(kāi)發(fā)者需要針對(duì)手機(jī)型號(hào)和Android系統(tǒng)開(kāi)發(fā)并不斷完善App。當(dāng)Android系統(tǒng)在不斷更新時(shí),各種手機(jī)和App也在逐漸完善,用戶得到的體驗(yàn)也越來(lái)越好。
在我國(guó),基于Android操作系統(tǒng)的移動(dòng)終端App在所有全新Android系統(tǒng)中都可以運(yùn)行,適配所有Android智能設(shè)備。安裝時(shí)無(wú)須付費(fèi),只要正規(guī)應(yīng)用市場(chǎng)安裝就沒(méi)有各種木馬病毒,而且App在源頭上保障了用戶的使用安全,充分保護(hù)了用戶的隱私信息。更難能可貴的是,經(jīng)過(guò)多年發(fā)展和不斷淘汰,App的基本原則之一就是要符合國(guó)人使用習(xí)慣。各大應(yīng)用市場(chǎng)也為此做出了不少改變和更新,界面簡(jiǎn)潔明了,個(gè)性化信息及時(shí)推送,一鍵下載安裝,還有各種用戶福利[2]。
3 基于Android操作系統(tǒng)的移動(dòng)終端App開(kāi)發(fā)
3.1 軟件開(kāi)發(fā)
3.1.1 數(shù)據(jù)存儲(chǔ)
這是開(kāi)發(fā)過(guò)程中的重要環(huán)節(jié),而Android提供了多種技術(shù)方案供開(kāi)發(fā)者使用,主要有五種:共享首選項(xiàng)(Shared? Preferences)、內(nèi)部存儲(chǔ)(Internal Storage)、外部存儲(chǔ)(External Storage)、SQLite數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)存儲(chǔ)。Shared? Preferences使得開(kāi)發(fā)者可以鍵值對(duì)的方式,通過(guò)該類提供的框架永久保存原始數(shù)據(jù)。即便是應(yīng)用終止了,數(shù)據(jù)也可以跨多用戶對(duì)話永久保留。
在使用時(shí),需要先通過(guò)get Shared Preferences或是get Preferences方法獲取Shared Preferences的對(duì)象。接著通過(guò)Shared Preferences對(duì)象的edit方法,獲取一個(gè)一個(gè)Shared Preferences.Editor對(duì)象。當(dāng)對(duì)象獲取之后,調(diào)用put Boolean等方法添加值,并使用commit提交。最后在需要獲取數(shù)據(jù)之處,使用Shared Preferences對(duì)象的get Boolean等方法讀取值Internal Storage位于內(nèi)部存儲(chǔ)器分配的Internal Storage分區(qū)里,用于保存私有文件。當(dāng)用戶卸載App之后,該分區(qū)里的文件也會(huì)被清除。External Storage類似于公共分區(qū),私密性不強(qiáng),可以共享保存數(shù)據(jù),既可以是內(nèi)部存儲(chǔ)器分配的External Storage分區(qū),比如大家在手機(jī)“文件管理”中看到的“音樂(lè)”這種目錄,也可以是可移動(dòng)的外部存儲(chǔ)介質(zhì),比如存儲(chǔ)卡和硬盤。
SQLite數(shù)據(jù)庫(kù)的核心思想與一般數(shù)據(jù)庫(kù)相差無(wú)幾,只是更輕量一些,是一個(gè)嵌入式關(guān)系型數(shù)據(jù)庫(kù)。所以使用它的流程也就幾步,先看數(shù)據(jù)庫(kù)有沒(méi)有打開(kāi),接著確認(rèn)有無(wú)數(shù)據(jù)表,沒(méi)有就進(jìn)行創(chuàng)建。在創(chuàng)建的時(shí)候要記得添加“IF NOT EXISTS”,避免重復(fù)操作。當(dāng)完成之后,就是常規(guī)的增刪查改操作了[3]。最后操作完畢時(shí),數(shù)據(jù)庫(kù)進(jìn)入close狀態(tài)。網(wǎng)絡(luò)存儲(chǔ)則最為簡(jiǎn)單,就是通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)與獲取,只需要解析HTTP協(xié)議或者是調(diào)用Web Service的數(shù)據(jù)即可實(shí)現(xiàn)。
3.1.2 界面開(kāi)發(fā)
這是開(kāi)發(fā)中的基本內(nèi)容,工期短、工作量小,但不可圖快,不然即便功能開(kāi)發(fā)得再好,應(yīng)用也不會(huì)得到多好的反響。因?yàn)榻缑鏇Q定應(yīng)用功能模塊的分布,對(duì)于設(shè)計(jì)、開(kāi)發(fā)的影響很大。更重要的是,它直接關(guān)系用戶體驗(yàn)。界面就是第一印象,只有第一印象好了,用戶才會(huì)有興趣體驗(yàn)實(shí)際使用效果。所以對(duì)于界面的開(kāi)發(fā),要注意對(duì)資源的溝通和操作。
3.1.3 語(yǔ)音識(shí)別
這是一種改善人機(jī)交互的技術(shù),簡(jiǎn)化操作,節(jié)省用戶的時(shí)間,提升效率。用戶只需要通過(guò)語(yǔ)音指令,就可以完成一些信息查詢和Android智能設(shè)備操作。它可以說(shuō)是人機(jī)接口中很關(guān)鍵的一步,相關(guān)市場(chǎng)發(fā)展迅速,相關(guān)的產(chǎn)業(yè)已經(jīng)極具規(guī)模。要想在基于Android操作系統(tǒng)的移動(dòng)終端App開(kāi)發(fā)中利用技術(shù)并實(shí)現(xiàn)語(yǔ)音識(shí)別,需要借助一些商業(yè)解決方法,保證語(yǔ)音識(shí)別能力和速度維持在較高水平[4]。
3.1.4 AR、VR、AI
增強(qiáng)現(xiàn)實(shí)(AR)、虛擬現(xiàn)實(shí)(VR)和人工智能(AI)這三種皆為當(dāng)下最前沿的技術(shù),要想在開(kāi)發(fā)過(guò)程中運(yùn)用這些技術(shù),需要依靠相應(yīng)的硬件設(shè)備。
3.2 開(kāi)發(fā)重點(diǎn)
由于Android繼承了Linux的安全機(jī)制,開(kāi)發(fā)之前就需要獲得相應(yīng)的權(quán)限,可通過(guò)添加標(biāo)簽和Manifest.xml文件進(jìn)行操作。搭建用戶界面,生產(chǎn)過(guò)程有兩種:XML配置和直接使用代碼,生產(chǎn)之后便是界面進(jìn)行相關(guān)的UI設(shè)計(jì)和布局。最后需要了解各大構(gòu)件以及通過(guò)數(shù)據(jù)存儲(chǔ)獲取各種資源文件。
4 基于Android操作系統(tǒng)的移動(dòng)終端App開(kāi)發(fā)安全環(huán)境
由于Android存在時(shí)間久,市場(chǎng)份額高,基于Android操作系統(tǒng)進(jìn)行移動(dòng)終端App的開(kāi)發(fā)可以借鑒很多前輩開(kāi)發(fā)者的經(jīng)驗(yàn)。而且Android本身在設(shè)計(jì)上就考慮得很全面,借助該平臺(tái)進(jìn)行開(kāi)發(fā)可以降低不少難度,工作量也會(huì)大大減少。但需要注意的是,Android的特點(diǎn)是開(kāi)源,也就是提供一個(gè)開(kāi)放的環(huán)境,并不會(huì)處處注重其他開(kāi)發(fā)者可能對(duì)環(huán)境造成安全威脅的情況。相較于電腦這種桌面設(shè)備來(lái)說(shuō),移動(dòng)智能設(shè)備受到的安全挑戰(zhàn)更大,面臨的情況更加嚴(yán)峻。所以開(kāi)發(fā)者要注意管理和維護(hù)自身開(kāi)發(fā)環(huán)境的安全,發(fā)現(xiàn)漏洞就要及時(shí)開(kāi)展修補(bǔ)工作,開(kāi)發(fā)的全程要保證安全性。
4.1 框架層安全
框架層安全需要借助Android的數(shù)字認(rèn)證,也就是通過(guò)數(shù)字證書(shū)來(lái)保證安全。數(shù)字證書(shū)是SSL通信協(xié)議的核心,是安全領(lǐng)域的大招,由Certificate Authority發(fā)行,本質(zhì)是一串?dāng)?shù)字,不過(guò)可以在互聯(lián)網(wǎng)中標(biāo)記各方的身份信息。
4.2 代碼安全
開(kāi)發(fā)者編寫(xiě)的代碼要安全規(guī)范,對(duì)于軟件質(zhì)量和安全性來(lái)說(shuō)都是基礎(chǔ)。Android的開(kāi)放性很強(qiáng),終端開(kāi)發(fā)容易遭受惡意攻擊,代碼也會(huì)被惡意反編譯,所以對(duì)代碼安全進(jìn)行質(zhì)量管控非常重要。開(kāi)發(fā)者可以增加保護(hù)性的編程,通過(guò)混淆的代碼來(lái)保護(hù)代碼。在編程完畢之后,還要進(jìn)行細(xì)致的安全審計(jì)。
4.3 權(quán)限管理
安卓在初期設(shè)計(jì)的時(shí)候就考慮到了權(quán)限方面的問(wèn)題,并借鑒當(dāng)時(shí)一些操作系統(tǒng)解決安全問(wèn)題的經(jīng)驗(yàn),對(duì)于權(quán)限的設(shè)定、授予進(jìn)行了規(guī)范。開(kāi)發(fā)者若想對(duì)權(quán)限進(jìn)行管理,可以借助Android manifest.xml等配置文件,或者通過(guò)內(nèi)部的權(quán)利管理機(jī)制設(shè)定。另外,也要避免網(wǎng)絡(luò)的隱藏威脅。如果要訪問(wèn)移動(dòng)數(shù)據(jù),需要加入運(yùn)行訪問(wèn)的ACCESS NETWORK STATE條目。為防萬(wàn)一,在用戶安裝App時(shí)也要提醒用戶檢查權(quán)限,提前規(guī)避可能遇到的風(fēng)險(xiǎn)。
5 結(jié)束語(yǔ)
科學(xué)技術(shù)的不斷發(fā)展給我們的生活帶來(lái)極大便利,尤其是當(dāng)今的信息化時(shí)代之下,各種智能設(shè)備的出現(xiàn)更是提高了我們的生活質(zhì)量,同時(shí)也對(duì)發(fā)展提出了新的要求。正是在此基礎(chǔ)之上,以Android操作系統(tǒng)為載體,推進(jìn)移動(dòng)終端App的開(kāi)發(fā)研究顯得尤為必要,除了提升人類的生產(chǎn)生活水平之外,也讓移動(dòng)終端App與Android操作系統(tǒng)更好地相適應(yīng),并推動(dòng)著移動(dòng)終端App的運(yùn)用和Android操作系統(tǒng)的發(fā)展。
參考文獻(xiàn):
[1] 李登科,王聰華.基于Android操作系統(tǒng)的移動(dòng)終端APP開(kāi)發(fā)研究[J].電腦編程技巧與維護(hù),2020(9):69-70.
[2] 唐翔.基于Android平臺(tái)的某景點(diǎn)移動(dòng)端旅游軟件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2020.
[3] 楊樂(lè).基于權(quán)限的Android惡意軟件檢測(cè)方法研究[D].天津:天津理工大學(xué),2020.
[4] 吳明瑞,王莉軍.基于Android操作系統(tǒng)的移動(dòng)終端APP開(kāi)發(fā)研究[J].數(shù)字通信世界,2019(2):113.
收稿日期:2021-05-06
作者簡(jiǎn)介:姚雅峰,女,天津人,講師,碩士,主要研究方向?yàn)橛?jì)算機(jī)軟件技術(shù)、計(jì)算機(jī)應(yīng)用技術(shù)。