郝強(qiáng)
摘 ?要:隨著計(jì)算機(jī)技術(shù)和信息技術(shù)的不斷進(jìn)步和發(fā)展,人們信息獲取的方式也發(fā)生了很大的變化。智能手機(jī)作為一種比較便捷的現(xiàn)代化通訊工具,功能越來(lái)越強(qiáng)大,在人們的生活中扮演著較為重要的作用。而Android平臺(tái)的軟件程序保障了智能手機(jī)的一系列軟件功能的實(shí)現(xiàn)。相比于其他系統(tǒng)軟件,Android平臺(tái)具有著便捷性、開(kāi)放性的優(yōu)點(diǎn),能夠讓用戶量的良好的體驗(yàn),在市場(chǎng)上占有著重要的地位。本文首先分析了Android平臺(tái)軟件的優(yōu)勢(shì),闡述了應(yīng)用程序開(kāi)發(fā)過(guò)程中的重點(diǎn),探索了Android軟件開(kāi)發(fā)方法的構(gòu)建流程,以及平臺(tái)應(yīng)用組件。
關(guān)鍵詞:Android平臺(tái);軟件開(kāi)發(fā);通訊工具;構(gòu)建流程
中圖分類號(hào):TP309 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
Abstract: With the continuous development of computer science and information technology, the way people get information changes greatly. Smart phone, as a convenient modern communication tool, is playing an important role in people's life with its ever-increasing functions which are realized through software programs run on Android platform. Compared with other system software, Android platform has advantages of convenience, openness, and user-friendliness. This paper first analyzes the advantages of the Android platform software, expounds the key points in the development process, and explores the construction process of the Android software development method, as well as the platform application components.
Keywords: Android platform; software development; communication tools; the build process
1 ? 引言(Introduction)
隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,手機(jī)成為移動(dòng)互聯(lián)網(wǎng)的比較重要的承載設(shè)備,且在人們的信息交流中發(fā)揮著重要的作用。而技術(shù)的不斷進(jìn)步,與人們交往方式的不斷變化,人們對(duì)手機(jī)功能的需求也發(fā)生了很大的變化。智能手機(jī)需要操作系統(tǒng)平臺(tái)的支撐。要想滿足市場(chǎng)不斷變化的需求,就要對(duì)手機(jī)平臺(tái)軟件進(jìn)行深度研發(fā),而對(duì)智能手機(jī)平臺(tái)的研發(fā)也逐漸成為科技工作者和用戶關(guān)注的重要領(lǐng)域。Android平臺(tái)軟件是2007年由Google開(kāi)發(fā)設(shè)計(jì)而推出的平臺(tái)軟件,這個(gè)平臺(tái)軟件是專門為移動(dòng)設(shè)備進(jìn)行設(shè)計(jì)的,具有著獨(dú)特的優(yōu)點(diǎn),掙脫了運(yùn)營(yíng)商的束縛和選擇,硬件選擇也比較豐富,系統(tǒng)兼容性好,突破了傳統(tǒng)平臺(tái)軟件的各種限制,也讓用戶體驗(yàn)到了最有的移動(dòng)服務(wù)[1]。
2 ? Android平臺(tái)軟件的優(yōu)勢(shì)(Advantages of Android platform software)
Android平臺(tái)軟件突破了傳統(tǒng)軟件對(duì)運(yùn)營(yíng)商,以及硬件的各種限制。有著多方面的優(yōu)勢(shì),受到了市場(chǎng)的青睞,以下是Android平臺(tái)軟件的優(yōu)勢(shì)分析。
2.1 ? 簡(jiǎn)單易用
Android是由Linux+Java構(gòu)成的開(kāi)源軟件,允許所有廠商和個(gè)人在它的軟件基礎(chǔ)上進(jìn)行開(kāi)發(fā),且很逗系統(tǒng)價(jià)法人員和架構(gòu)師,對(duì)開(kāi)源開(kāi)發(fā)技術(shù)都比較熟悉,所以開(kāi)發(fā)起來(lái)比較容易。同時(shí),Android平臺(tái)軟件支持不同的硬件,這從Google與34家廠商聯(lián)合推出移動(dòng)互聯(lián)系統(tǒng)時(shí)便已知曉。且安卓手機(jī)開(kāi)發(fā)者,以及手機(jī)生產(chǎn)廠商都可以向用戶提供所需的硬件,這與蘋果Mac操作系統(tǒng)相比,在硬件豐富度方面有著鮮明的對(duì)比[2]。
2.2 ? 靈活開(kāi)放
Android平臺(tái)軟件一個(gè)最大的特點(diǎn)就是其具有開(kāi)放性的特點(diǎn),這也是其作為以開(kāi)源軟件所具備的靈活性的特征,能夠?yàn)樘囟ǖ能浖峁└觽€(gè)性的設(shè)計(jì)。開(kāi)發(fā)者能夠根據(jù)企業(yè)和用戶的需求對(duì)軟件進(jìn)行改進(jìn),以促進(jìn)其商業(yè)價(jià)值最大化的發(fā)揮。
2.3 ? 易于開(kāi)發(fā)
Android應(yīng)用開(kāi)發(fā)提供了Java、C#和Cplusplus等接口,尤其是向Java應(yīng)用開(kāi)發(fā)者提供了一套完整的應(yīng)用系統(tǒng)解決方案,Java軟件工程師能夠方便地開(kāi)發(fā)系統(tǒng),為用戶提供個(gè)性化的軟件[3]。
3 ?應(yīng)用程序開(kāi)發(fā)過(guò)程中的重點(diǎn)(Focus on the application development process)
3.1 ? 權(quán)限獲取
在Android系統(tǒng)中,在一般的情況下,應(yīng)用程序是不會(huì)直接訪問(wèn)或者操作其他應(yīng)用程序的,不會(huì)對(duì)其他的應(yīng)用程序帶來(lái)干擾,且這個(gè)程序沒(méi)有響應(yīng)的權(quán)限進(jìn)行這些操作。這樣以來(lái)不會(huì)對(duì)用戶的隱私和數(shù)據(jù)帶來(lái)一些安全隱患。然而,Android可以對(duì)存在相關(guān)聯(lián)的權(quán)限進(jìn)行相應(yīng)的操作,所以要注意對(duì)權(quán)限的命名,以獲取到相應(yīng)的信息[4]。如果沒(méi)有關(guān)聯(lián)相應(yīng)的權(quán)限,則不能進(jìn)行關(guān)聯(lián)性的操作。比如對(duì)自動(dòng)執(zhí)行訪問(wèn),對(duì)用戶聯(lián)系人訪問(wèn),以及對(duì)記事本進(jìn)行訪問(wèn),需要對(duì)權(quán)限進(jìn)行命名,才可以保持相應(yīng)的關(guān)聯(lián)。此外,特別注意的是AndroidManifest.xml文件是支持權(quán)限的,添加
3.2 ? Android用戶界面的構(gòu)建
Android用戶界面的構(gòu)建是應(yīng)用程序開(kāi)發(fā)過(guò)程中的重點(diǎn)之一,目前Android界面生成方式主要有兩種,分別是使用代碼直接生成的界面,以及由XML配置生成的界面。UI界面一般是利用XML進(jìn)行定義,而利用XML有著較大的優(yōu)點(diǎn),可以順利實(shí)現(xiàn)頁(yè)面向另一個(gè)頁(yè)面的自由切換。目前Android系統(tǒng)中的基本作用是Activity,這個(gè)程序并不會(huì)直接顯示在屏幕上,要想在屏幕上進(jìn)行顯示,就必須對(duì)UI進(jìn)行設(shè)計(jì),并通過(guò)Android平臺(tái)中的用戶界面來(lái)實(shí)現(xiàn)對(duì)其功能的表現(xiàn),一般使用的表達(dá)元素有View、Viewgroup等。此外,對(duì)頁(yè)面的布局方法一般由相對(duì)布局、表格布局、線形布局這幾種方法[5]。
3.3 ? 資源獲取和使用
資源指的是外部的文件,Android平臺(tái)軟件上能夠支持多種類型的資源文件,像XML、JPEG、PNG等格式的文件,都可以在這個(gè)平臺(tái)上讀取到。當(dāng)程序運(yùn)行時(shí),這些資源文件會(huì)被讀取和解析,還可以轉(zhuǎn)換成其他不同類型的格式[6]。此外,Android平臺(tái)還能夠?qū)?yīng)用程序代碼進(jìn)行跟蹤,現(xiàn)在的技術(shù)手段還可以對(duì)非代碼形式的資源進(jìn)行跟蹤,程序可以看到用戶對(duì)資源的使用情況,以此實(shí)現(xiàn)數(shù)據(jù)的收集和定位跟蹤[7]。程序員只要將數(shù)據(jù)資源錄入到相應(yīng)的程序中,或者是代碼目錄中,再進(jìn)行編譯工作,則就可以明確獲取資源的使用狀況。
4 ?Android軟件開(kāi)發(fā)方法的構(gòu)建流程(The construction process of the Android software development method)
4.1 ? Android軟件平臺(tái)搭建
對(duì)Android軟件平臺(tái)進(jìn)行搭建,首先要做的是環(huán)境搭建工作,先安裝JDK軟件,安裝完成后,要進(jìn)行多次反復(fù)的檢查,確保無(wú)誤后,下一步則進(jìn)行Eclipse程序的安裝工作,再進(jìn)行反復(fù)的檢查,使用Eclipse來(lái)實(shí)現(xiàn)應(yīng)用開(kāi)發(fā),需要安裝的軟件如表1所示。之后進(jìn)行Eclipse程序的安裝,再安裝ADT程序,同樣要進(jìn)行反復(fù)檢查。在以上程序都安裝成功并進(jìn)行反復(fù)檢測(cè)無(wú)誤后,開(kāi)始AVD系統(tǒng)的創(chuàng)建,方可正式投入到Android軟件的開(kāi)發(fā)工作中來(lái)。
4.2 ? Android軟件啟動(dòng)流程
Android軟件的啟動(dòng)的實(shí)現(xiàn),首先要對(duì)啟動(dòng)Initial進(jìn)程,通過(guò)內(nèi)核的載入,全部清除原始數(shù)據(jù),對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行完善,并完成腳本文件的初始化,以進(jìn)入到進(jìn)程的引導(dǎo)工作中來(lái)。其次是啟動(dòng)Native服務(wù),構(gòu)建一個(gè)獨(dú)立的操作系統(tǒng)運(yùn)行空間,對(duì)虛擬機(jī)中模擬搭建的函數(shù)進(jìn)行運(yùn)行操作,并完成對(duì)系統(tǒng)中的服務(wù)請(qǐng)求的接收。之后對(duì)Android系統(tǒng)自帶的服務(wù)程序進(jìn)行啟動(dòng),建立起虛擬服務(wù)功能的框架,在此基礎(chǔ)上實(shí)現(xiàn)AddService服務(wù)的搭建個(gè)動(dòng)作。最后一個(gè)環(huán)節(jié)則是Home功能的啟動(dòng)工作,這個(gè)過(guò)程能夠讓操作者的指令被通知到各個(gè)系統(tǒng)中,這是利用軟件之間的相互聯(lián)系作用實(shí)現(xiàn)的[8]。通過(guò)以上四個(gè)過(guò)程,Android軟件的加載工作就可以實(shí)現(xiàn)了,這也顯示出Android軟件平臺(tái)軟件得以開(kāi)發(fā)和應(yīng)用成功。
5 ?Android平臺(tái)軟件應(yīng)用組件(Android platform software application components)
5.1 ? Activity組件
Activity組件是Android平臺(tái)軟件中比較基礎(chǔ)的一個(gè)組件,也是開(kāi)發(fā)中比較常見(jiàn)的開(kāi)發(fā)對(duì)象。一般來(lái)說(shuō)一個(gè)Activity文件與一個(gè)界面相對(duì)應(yīng),通過(guò)這種對(duì)應(yīng)關(guān)系,進(jìn)而實(shí)現(xiàn)與用戶之間的交互。程序流程大多是在不同的Activity之間運(yùn)行的。Activity的基本狀態(tài)主要有四種。一是Active/Running,這被稱為激活態(tài),它處在屏幕的最前端,能夠與用戶進(jìn)行直接交互;二是Paused,也被成為暫停態(tài),這個(gè)狀態(tài)代表著Activity失去焦點(diǎn),此時(shí)Activity不能夠與用戶進(jìn)行交互;三是Stopped,代表的是停止態(tài),此時(shí)Activity界面處于不可見(jiàn)的狀態(tài),這個(gè)狀態(tài)下一般是系統(tǒng)收回了緊張的系統(tǒng)資源;四是Killed,也就是死亡態(tài),此時(shí)Activity將會(huì)被系統(tǒng)從內(nèi)存中清除掉。
5.2 ? View(視圖)
Android的用戶界面是一系列的視圖樹(shù)構(gòu)組成的。接口都是由一組以樹(shù)的形式出現(xiàn)View的組成的。軟件開(kāi)發(fā)者可以對(duì)圖形處理技術(shù)進(jìn)行自定義,就可以通過(guò)創(chuàng)建一個(gè)新的View來(lái)實(shí)現(xiàn),像游戲開(kāi)發(fā),亦或者已經(jīng)運(yùn)用了自定義的圖形窗口界面。
5.3 ? Intent
Intent代表的是消息對(duì)象,表示程序想要獲取某種資源的一種“意圖”,比如應(yīng)用程序想要查看某個(gè)網(wǎng)址或者某個(gè)圖片,就可以創(chuàng)建一個(gè)Intent實(shí)例,并將其傳達(dá)給系統(tǒng),并可以獲取到相應(yīng)的瀏覽網(wǎng)址和內(nèi)容,在進(jìn)行運(yùn)行。
5.4 ? Service組件
Service組件是一項(xiàng)服務(wù)性的組件,是由在后臺(tái)運(yùn)行的一段代碼組成的,其運(yùn)行狀態(tài)是不可見(jiàn)的。Service組件能夠根據(jù)自身的需要,可以在自己的進(jìn)程中運(yùn)行,也可以運(yùn)行在其他應(yīng)用程序中。Service組件包含兩種服務(wù)類型,分別是本地服務(wù)和遠(yuǎn)程服務(wù)。本地進(jìn)程一般是依附在主進(jìn)程中的,這樣以來(lái)大大節(jié)省了系統(tǒng)資源。但是當(dāng)主進(jìn)程停止運(yùn)行后,Service也就跟著相應(yīng)停止了。bindService和context.startService是Service組件的兩種啟動(dòng)方式。同時(shí),Service也有著自己的生命周期,主要經(jīng)歷四個(gè)階段,分別是onCreate、onStart、onDestroy、onBind。Service組件常常被用于數(shù)據(jù)處理,像播放背景音樂(lè),從網(wǎng)絡(luò)中獲取遠(yuǎn)程數(shù)據(jù)都屬于Service應(yīng)用范疇。
5.5 ? BroadcastReceiver組件
BroadcastReceiver組件的存在主要是為了接收系統(tǒng)中的廣播信息,系統(tǒng)開(kāi)發(fā)者可以根據(jù)不同的廣播類型從而進(jìn)行廣播機(jī)制的設(shè)定。在進(jìn)行Android軟件開(kāi)發(fā)時(shí),對(duì)BroadcastReceiver組件的應(yīng)用進(jìn)行熟練地把握是比較重要的。BroadcastReceiver組件也存在著生命周期,包含三個(gè)進(jìn)程,分別是創(chuàng)建BroadcastReceiver對(duì)象、調(diào)用onReceive方法,以及廣播銷毀。
5.6 ? ContentProvider組件
ContentProvider組件是一種共享的組件機(jī)制,能夠?qū)崿F(xiàn)不同數(shù)據(jù)之間的共享。像在發(fā)短信時(shí),在選擇聯(lián)系人時(shí),ContentProvider組件就可以發(fā)揮自己的作用,為系統(tǒng)提供極大的便利性。Android平臺(tái)以URI的形式為每項(xiàng)資源提供了資源名,這些形式和“content://應(yīng)用程序的標(biāo)準(zhǔn)前綴/URI標(biāo)識(shí)/路徑/需要獲取的記錄的ID”是極其相似的。ContenProvider就是在URI基礎(chǔ)上實(shí)現(xiàn)的。ContentProvider數(shù)據(jù)共享是通過(guò)接口中的標(biāo)準(zhǔn)方法實(shí)現(xiàn)的。onCreate、update、query、insert、delete等是常見(jiàn)的操作方法。
5.7 ? Sqlite數(shù)據(jù)庫(kù)
Android平臺(tái)大致有五種數(shù)據(jù)存儲(chǔ)方式,分別是SQLite、網(wǎng)絡(luò)、文件、SharedPreferences,以及外部存儲(chǔ)。SQLite數(shù)據(jù)庫(kù)則有著自身的優(yōu)點(diǎn),是一種比較好的選擇,SQLite數(shù)據(jù)庫(kù)占用的空間資源比較少,在Android系統(tǒng)平臺(tái)中發(fā)揮了重要的作用。對(duì)SQLite數(shù)據(jù)庫(kù)的應(yīng)用主要是通過(guò)execSQL方法對(duì)QLiteOpenHelper進(jìn)行SQL語(yǔ)句操作。且這種存儲(chǔ)方式操作比較簡(jiǎn)單,可以順利實(shí)現(xiàn)新建、查詢、刪除,以及更新等相關(guān)的操作。
6 ? 結(jié)論(Conclusion)
總而言之,Android軟件平臺(tái)技術(shù)在智能手機(jī)中發(fā)揮了重要作用,目前使用比較廣泛,且技術(shù)被不斷的創(chuàng)新和發(fā)展,有著廣闊的發(fā)展前景。同時(shí)Android軟件平臺(tái)相比著其他軟件有著較多的優(yōu)點(diǎn),無(wú)論是在硬件方面,還是在供應(yīng)商方面,其不受到相關(guān)的約束和限制,有著較強(qiáng)的實(shí)用性。隨著信息技術(shù)的不斷技術(shù),Android軟件平臺(tái)的技術(shù)的開(kāi)發(fā)將會(huì)朝向科學(xué)性和實(shí)用性統(tǒng)一的方向發(fā)展,且更加符合用戶的實(shí)際需求。
參考文獻(xiàn)(References)
[1] 王萌.基于Android平臺(tái)軟件開(kāi)發(fā)方法的研究與應(yīng)用[J].中國(guó)新通信,2015(18):3-4.
[2] 殷濤,崔佳冬.基于Android軟件開(kāi)發(fā)組件化研究[J].計(jì)算機(jī)應(yīng)用與軟件,2019(09):10-12.
[3] 趙東方.探究Android平臺(tái)軟件開(kāi)發(fā)方法的研究與應(yīng)用[J].信息技術(shù)與信息化,2017(09):6-8.
[4] 夏瑋.基于Android平臺(tái)軟件開(kāi)發(fā)方法研究[J].電子技術(shù)與軟件工程,2016(06):23.
[5] 曾文韜.Android APP自動(dòng)化專項(xiàng)測(cè)試工具的設(shè)計(jì)與實(shí)現(xiàn)[D].內(nèi)蒙古大學(xué),2019:16.
[6] Atefeh Nirumand, Bahman Zamani, Behrouz Tork Ladani. VAnDroid: A framework for vulnerability analysis of Android applications using a model-driven reverse engineering technique[J]. Software: Practice and Experience, 2019(1): 10-12.
[7] 喬婷.試論Android平臺(tái)下軟件開(kāi)發(fā)的關(guān)鍵技術(shù)[J].電子技術(shù)與軟件工程,2015(21):9.
[8] 曾文韜.Android APP自動(dòng)化專項(xiàng)測(cè)試工具的設(shè)計(jì)與實(shí)現(xiàn)[D].內(nèi)蒙古大學(xué),2019:41.
作者簡(jiǎn)介:
郝 ?強(qiáng)(1981-),男,碩士,講師.研究領(lǐng)域:軟件開(kāi)發(fā),信息研究.