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