android應(yīng)用技術(shù)簡(jiǎn)介_第1頁(yè)
android應(yīng)用技術(shù)簡(jiǎn)介_第2頁(yè)
android應(yīng)用技術(shù)簡(jiǎn)介_第3頁(yè)
android應(yīng)用技術(shù)簡(jiǎn)介_第4頁(yè)
android應(yīng)用技術(shù)簡(jiǎn)介_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

場(chǎng)占有率為%。Android的系統(tǒng)架構(gòu)和其它操作系統(tǒng)一樣,采納了分層的架構(gòu)。android分為四個(gè)層,從高層到低層別離是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和linux核心層。Android是以Linux為核心的電話操作平臺(tái),作為一款開放式的操作系統(tǒng),隨著Android的快速進(jìn)展,現(xiàn)在已許諾開發(fā)者利用多種編程語(yǔ)言來(lái)開發(fā)Android應(yīng)用程序,而再也不是以前只能利用Java開發(fā)Android應(yīng)用程序的單一局面,因此受到眾多開發(fā)者的歡迎,成為真正意義上的開放式操作系統(tǒng)。在Android中,開發(fā)者能夠利用Java作為編程語(yǔ)言來(lái)開發(fā)應(yīng)用程序,也能夠通過(guò)NDK利用C/C++作為編程語(yǔ)言來(lái)開發(fā)應(yīng)用程序,也可利用SL4A來(lái)利用其他各類腳本語(yǔ)言進(jìn)行編程(如:python、lua、tcl、php等等),還有其他諸如:QT(qtforandroid)、Mono(monoforandroid)等一些聞名編程框架也開始支持Android編程,乃至通過(guò)MonoDroid,開發(fā)者還能夠利用C#作為編程語(yǔ)言來(lái)開發(fā)應(yīng)用程序。另外,谷歌還在2020年專門發(fā)布了針對(duì)初學(xué)者的AndroidSimple語(yǔ)言,該語(yǔ)言類似Basic語(yǔ)言。而在網(wǎng)頁(yè)編程語(yǔ)言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已經(jīng)支持Android開發(fā)。二、應(yīng)用程序初期的Android應(yīng)用程序開發(fā),通常通過(guò)AndroidSDK(Android軟件開發(fā)包)下利用Java作為編程語(yǔ)言來(lái)開發(fā)應(yīng)用程序,但通過(guò)不同的軟件開發(fā)包,那么利用的編程語(yǔ)言也不同。例如開發(fā)者能夠通過(guò)AndroidNDK(AndroidNative開發(fā)包)利用C語(yǔ)言或C++語(yǔ)言來(lái)作為編程語(yǔ)言開發(fā)應(yīng)用程序。同時(shí)谷歌還推出了適合初學(xué)者編程利用的Simple語(yǔ)言,該語(yǔ)言類似微軟公司的VisualBasic語(yǔ)言。另外,谷歌公司還推出了GoogleAppInventor開發(fā)工具,該開發(fā)工具能夠快速地構(gòu)建應(yīng)用程序,方便新手開發(fā)者。3、Java開發(fā)方面Android支持利用Java作為編程語(yǔ)言來(lái)開發(fā)應(yīng)用程序,而Android的Java開發(fā)方面從接口到功能,都有層出不窮的轉(zhuǎn)變??紤]到Java虛擬機(jī)的效率和資源占用,谷歌從頭設(shè)計(jì)了Android的Java,以便能提高效率和減少資源占用,因此與J2ME等不同。4、C/C++開發(fā)方面初期的Android開發(fā)只支持Java作為編程語(yǔ)言開發(fā)應(yīng)用程序,因此使得其他語(yǔ)言開發(fā)者只能望而卻步。2020年4月,谷歌正式對(duì)開發(fā)者發(fā)布了AndroidNDK,NDK許諾開發(fā)者利用C/C++作為編程語(yǔ)言來(lái)為Android開發(fā)應(yīng)用程序,第一版的NDK使得開發(fā)者看到了C/C++在Android開發(fā)中的希望??墒?,當(dāng)前版本的NDK在功能上還有很多局限性:NDK并無(wú)提供對(duì)應(yīng)用程序生命周期的保護(hù);NDK也不提供對(duì)Android系統(tǒng)中大量系統(tǒng)事件的支持;關(guān)于作為應(yīng)用程序交互接口的UIAPI,當(dāng)前版本的NDK中也沒有提供??墒窍嚓P(guān)于第一版的NDK,此刻的NDK已經(jīng)進(jìn)行了許多重大的功能改良。由此可見,NDK仍然需要完善和進(jìn)展,相信以后隨著NDK的進(jìn)展,NDK能夠做得更多更好。4.1硬件抽像層Android的HAL(硬件抽像層)是能以封鎖源碼形式提供硬件驅(qū)動(dòng)模塊。HAL的目的是為了把Androidframework與Linuxkernel隔開,讓Android不至過(guò)度依托Linuxkernel,以達(dá)到kernelindependent的概念,也讓Androidframework的開發(fā)能在不考量驅(qū)動(dòng)程序?qū)崿F(xiàn)的前提下進(jìn)行進(jìn)展。HALstub是一種代理人(proxy)的概念,stub是以*.so檔的形式存在。Stub向HAL“提供”操作函數(shù)(operations),并由Androidruntime向HAL取得stub的operations,再callback這些操作函數(shù)。HAL里包括了許多的stub(代理人)。Runtime只要說(shuō)明“類型",即moduleID,就能夠夠取得操作函數(shù)。4.2系統(tǒng)內(nèi)核Android是運(yùn)行于Linuxkernel之上,但并非是GNU/Linux。因?yàn)樵谝粯覩NU/Linux里支持的功能,Android多數(shù)沒有支持,包括Cairo、X1一、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉y°Android又以bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。Android為了達(dá)到商業(yè)應(yīng)用,必需移除被GNUGPL授權(quán)證所約束的部份,例如Android將驅(qū)動(dòng)程序移到userspace,使得Linuxdriver與Linuxkernel完全分開。bionic/libc/kernel/并非標(biāo)準(zhǔn)的kernelheaderfiles。Android的kernelheader是利用工具由Linuxkernelheader所產(chǎn)生的,如此做是為了保留常數(shù)、數(shù)據(jù)結(jié)構(gòu)與宏。4.3平安權(quán)限機(jī)制Android本身是一個(gè)權(quán)限分立的操作系統(tǒng)。在這種操作系統(tǒng)中,每一個(gè)應(yīng)用都以唯一的一個(gè)系統(tǒng)識(shí)別身份運(yùn)行(Linux用戶ID與群組ID)。系統(tǒng)的各部份也別離利用各自獨(dú)立的識(shí)別方式。Linux確實(shí)是如此將應(yīng)用與應(yīng)用,應(yīng)用與系統(tǒng)隔離開。系統(tǒng)更多的平安功能通過(guò)權(quán)限機(jī)制提供。權(quán)限能夠限制某個(gè)特定進(jìn)程的特定操作,也能夠限制每一個(gè)URI權(quán)限對(duì)特定數(shù)據(jù)段的訪問(wèn)。Android平安架構(gòu)的核心設(shè)計(jì)思想是,在默許設(shè)置下,所有應(yīng)用都沒有權(quán)限對(duì)其他應(yīng)用、系統(tǒng)或用戶進(jìn)行較大阻礙的操作。這其中包括讀寫用戶隱私數(shù)據(jù)(聯(lián)系人或電子郵件),讀寫其他應(yīng)用文件,訪問(wèn)網(wǎng)絡(luò)或阻止設(shè)備待機(jī)等。安裝應(yīng)歷時(shí),在檢查程序簽名提及的權(quán)限,且通過(guò)用戶確認(rèn)后,軟件包安裝器會(huì)給予應(yīng)用權(quán)限。從用戶角度看,一款A(yù)ndroid應(yīng)用通常會(huì)要求如下的權(quán)限:撥打、發(fā)送短信或彩信、修改/刪除SD卡上的內(nèi)容、讀取聯(lián)系人的信息、讀取日程信的息,寫入日程數(shù)據(jù)、讀取狀態(tài)或識(shí)別碼、精準(zhǔn)的(基于GPS)地理位置、模糊的(基于網(wǎng)絡(luò)獲取)地理位置、創(chuàng)建藍(lán)牙連接、對(duì)互聯(lián)網(wǎng)的完全訪問(wèn)、查看網(wǎng)絡(luò)狀態(tài),查看WiFi狀態(tài)、幸免電話待機(jī)、修改系統(tǒng)全局設(shè)置、讀取同步設(shè)定、開機(jī)自啟動(dòng)、重啟其他應(yīng)用、終止運(yùn)行中的應(yīng)用、設(shè)定偏好應(yīng)用、震動(dòng)操縱、拍照?qǐng)D片等。一款應(yīng)用應(yīng)該依照自身提供的功能,要求合理的權(quán)限。用戶也能夠分析一款應(yīng)用所需權(quán)限,從而簡(jiǎn)單判定這款應(yīng)用是不是平安。如一款應(yīng)用是不帶廣告的單機(jī)版,也沒有任何附加的內(nèi)容需要下載,那么它要求訪問(wèn)網(wǎng)絡(luò)的權(quán)限就比較可疑。編輯本段系統(tǒng)組件Android開發(fā)四大組件別離是:活動(dòng)(Activity):用于表現(xiàn)功能。效勞(Service):后臺(tái)運(yùn)行效勞,不提供界面呈現(xiàn)廣播接收器(BroadcastReceiver:)用于接收廣播。內(nèi)容提供商(ContentProvider):支持在多個(gè)應(yīng)用中存儲(chǔ)和讀取數(shù)據(jù),相當(dāng)于數(shù)據(jù)庫(kù)。ActivityAndroid中,Activity是所有程序的全然,所有程序的流程都運(yùn)行在Activity當(dāng)中,人。5丫M能夠算是開發(fā)者碰到的最頻繁也是Android當(dāng)中最大體的模塊之一在Androic的程序當(dāng)中,Activity一樣代表電話屏幕的一屏。若是把電話比作一個(gè)閱讀器那么人。5丫設(shè)就相當(dāng)于一個(gè)網(wǎng)頁(yè)在Activity當(dāng)中能夠添加一些ButtonCheckbox等控件。能夠看到Activity概念和網(wǎng)頁(yè)的概念相當(dāng)類似。一樣一個(gè)Android應(yīng)用是由多個(gè)Activity組成的。這多個(gè)Activity之間能夠進(jìn)行彼此跳轉(zhuǎn),例如,按下一個(gè)Button按鈕后,可能會(huì)跳轉(zhuǎn)到其他的Activity和網(wǎng)頁(yè)跳轉(zhuǎn)略微有些不一樣的是,Activity之間的跳轉(zhuǎn)有可能返回值,例如,從ActivityA跳轉(zhuǎn)到ActivityB,那么當(dāng)ActivityB運(yùn)行終止的時(shí)候,有可能會(huì)給ActivityA一個(gè)返回值。如此做在很多時(shí)候是相當(dāng)方便的。、ServiceService是android系統(tǒng)中的一種組件,它跟Activity的級(jí)別差不多,可是他不能自己運(yùn)行,只能后臺(tái)運(yùn)行,而且能夠和其他組件進(jìn)行交互。Service是沒有界面的永生命周期的代碼。Service是一種程序,它能夠運(yùn)行很長(zhǎng)時(shí)刻,可是它卻沒有效戶界面。這么說(shuō)有點(diǎn)枯燥,來(lái)看個(gè)例子。打開一個(gè)音樂播放器的程序,那個(gè)時(shí)候假假想上網(wǎng)了,那么,咱們打開Android閱讀器,那個(gè)時(shí)候盡管咱們已經(jīng)進(jìn)入了閱讀器那個(gè)程序,可是,歌曲播放并無(wú)停止,而是在后臺(tái)繼續(xù)一首接著一首的播放。其實(shí)那個(gè)播放確實(shí)是由播放音樂的Service進(jìn)行操縱。固然那個(gè)播放音樂的Service也能夠停止。注冊(cè)BroadcastReceiver有兩種方式:(1)在進(jìn)行注冊(cè)。這種方式有一個(gè)特點(diǎn)即便你的應(yīng)用程序已經(jīng)關(guān)閉了,但那個(gè)BroadcastReceiver仍然會(huì)同意廣播出來(lái)的對(duì)象,也確實(shí)是說(shuō)不管你那個(gè)應(yīng)用程序時(shí)開仍是關(guān)都屬于活動(dòng)狀態(tài)都能夠同意到廣播的事件;(2)在代碼中注冊(cè)廣播。第一種俗稱靜態(tài)注冊(cè),第二種俗稱動(dòng)態(tài)注冊(cè),這兩種注冊(cè)BroadcastReceiver的區(qū)別:動(dòng)態(tài)注冊(cè)較靜態(tài)注冊(cè)靈活。實(shí)驗(yàn)證明:當(dāng)靜態(tài)注冊(cè)一個(gè)BroadcastReceiver時(shí),不論應(yīng)用程序是啟動(dòng)與否。都能夠同意對(duì)應(yīng)的廣播。動(dòng)態(tài)注冊(cè)的時(shí)候,若是不執(zhí)行unregisterReceiver();方式取消注冊(cè),跟靜態(tài)是一樣的??墒侨羰菆?zhí)行該方式,當(dāng)執(zhí)行過(guò)以后,就不能同意廣播了。ContentProviderContentProvider是Android提供的第三方應(yīng)用數(shù)據(jù)的訪問(wèn)方案。在Android中,對(duì)數(shù)據(jù)的愛惜是很周密的,除放在SD卡中的數(shù)據(jù),一個(gè)應(yīng)用所持有的數(shù)據(jù)庫(kù)、文件、等等內(nèi)容,都是不許諾其他直接訪問(wèn)的。五、心得體會(huì)通過(guò)這一學(xué)期對(duì)Android的學(xué)習(xí)加上平常查閱的一些Android資料對(duì)Androic有了一個(gè)大致的了解。開始接觸Android感覺到它很成心思,在界面開發(fā)上和web也能夠形成了相通的架構(gòu),加倍方便,視覺上也是超級(jí)的酷,這十分符合此刻人們的需求,專門是年輕人。Android的進(jìn)展前景是毋庸置疑的,早一點(diǎn)的邁入那個(gè)領(lǐng)域,就能夠夠更早的體驗(yàn)Android的樂趣。通過(guò)Android的學(xué)習(xí),在咱們畢業(yè)之前又把握了一項(xiàng)新的前沿開發(fā)技術(shù),也有了更多的進(jìn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論