亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Android的進(jìn)程與單線程模型淺析

        2011-12-10 04:58:31源,劉
        儀器儀表用戶 2011年5期
        關(guān)鍵詞:進(jìn)程程序用戶

        汪 源,劉 芳

        (大連交通大學(xué)教務(wù)處,大連116021)

        0 引言

        Android一詞本義指機(jī)器人,Google于2007年11月發(fā)布了以Android命名的開(kāi)源移動(dòng)設(shè)備綜合平臺(tái),包括其基于Linux的操作系統(tǒng)、中間件和關(guān)鍵的手機(jī)應(yīng)用。并且組建了開(kāi)放手機(jī)聯(lián)盟,其成員囊括了全球著名的各大手機(jī)生產(chǎn)商和移動(dòng)運(yùn)營(yíng)商。2008年8月,Google又發(fā)布了網(wǎng)上應(yīng)用商店Android Market。任何一個(gè)開(kāi)發(fā)者只需要借助Android發(fā)布的SDK開(kāi)發(fā)手機(jī)應(yīng)用,即可把開(kāi)發(fā)的應(yīng)用在Android Market上銷售。目前Android Market上已經(jīng)有一萬(wàn)多的應(yīng)用程序,大大豐富了Android手機(jī)用戶的功能。一個(gè)完整的產(chǎn)業(yè)鏈已經(jīng)形成。

        1 基本概念

        1.1 Android

        Android是基于Linux內(nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布的手機(jī)操作系統(tǒng),早期由Google開(kāi)發(fā),后由開(kāi)放手持設(shè)備聯(lián)盟(Open Handset Alliance)開(kāi)發(fā)。它采用了軟件堆層(software stack,又名以軟件疊層)的架構(gòu),主要分為三部分。底層Linux內(nèi)核只提供基本功能;其他的應(yīng)用軟件則由各公司自行開(kāi)發(fā),部分程序以Java編寫[2]。

        2010年末數(shù)據(jù)顯示,僅正式推出兩年的操作系統(tǒng)Android已經(jīng)超越稱霸十年的諾基亞(Nokia)Symbian OS系統(tǒng),采用Android系統(tǒng)主要手機(jī)廠商包括宏達(dá)電子(HTC)、三星(SAMSUNG)、摩托羅拉(MOTOROLA)、LG、Sony Ericsson、魅族 M9、聯(lián)想(LENOVO)、中興通訊(ZTE)、華為等,使之躍居全球最受歡迎的智能手機(jī)平臺(tái),Android系統(tǒng)不但應(yīng)用于智能手機(jī),也在平板電腦市場(chǎng)急速擴(kuò)張。

        1.2 Android 的進(jìn)程

        當(dāng)一個(gè)程序第一次啟動(dòng)的時(shí)候,什么是素質(zhì)模型,Android會(huì)啟動(dòng)一個(gè)LINUX進(jìn)程和一個(gè)主線程。默認(rèn)的情況下,所有該程序的組件都將在該進(jìn)程和線程中運(yùn)行。同時(shí),Android會(huì)為每個(gè)應(yīng)用程序分配一個(gè)單獨(dú)的LINUX用戶。Android會(huì)盡量保留一個(gè)正在運(yùn)行進(jìn)程,只在內(nèi)存資源出現(xiàn)不足時(shí),Android會(huì)嘗試停止一些進(jìn)程從而釋放足夠的資源給其他新的進(jìn)程使用,也能保證用戶正在訪問(wèn)的當(dāng)前進(jìn)程有足夠的資源去及時(shí)的響應(yīng)用戶的事件[3]。Android會(huì)根據(jù)進(jìn)程中運(yùn)行的組件類別以及組件的狀態(tài)來(lái)判斷該進(jìn)程的重要性,Android會(huì)首先停止那些不重要的進(jìn)程。按照重要性從高到低一共有五個(gè)級(jí)別:

        1)前臺(tái)進(jìn)程

        前臺(tái)進(jìn)程是用戶當(dāng)前正在使用的進(jìn)程。只有一些前臺(tái)進(jìn)程可以在任何時(shí)候都存在。他們是最后一個(gè)被結(jié)束的,當(dāng)內(nèi)存低到根本連他們都不能運(yùn)行的時(shí)候。一般來(lái)說(shuō),在這種情況下,設(shè)備會(huì)進(jìn)行內(nèi)存調(diào)度,中止一些前臺(tái)進(jìn)程來(lái)保持對(duì)用戶交互的響應(yīng)。

        2)可見(jiàn)進(jìn)程

        可見(jiàn)進(jìn)程不包含前臺(tái)的組件但是會(huì)在屏幕上顯示一個(gè)可見(jiàn)的進(jìn)程,其重要程度很高,除非前臺(tái)進(jìn)程需要獲取它的資源,不然不會(huì)被中止[4]。

        3)服務(wù)進(jìn)程

        運(yùn)行著一個(gè)通過(guò) startService方法啟動(dòng)的 service,這個(gè)service不屬于上面提到的2種更高重要性的進(jìn)程。service所在的進(jìn)程雖然對(duì)用戶不是直接可見(jiàn)的,但是他們執(zhí)行了用戶非常關(guān)注的任務(wù)(比如播放mp3,下載數(shù)據(jù)等)。只要前臺(tái)進(jìn)程和可見(jiàn)進(jìn)程有足夠的內(nèi)存,系統(tǒng)不會(huì)回收他們。

        4)后臺(tái)進(jìn)程

        運(yùn)行著一個(gè)對(duì)用戶不可見(jiàn)的activity。這些進(jìn)程對(duì)用戶體驗(yàn)沒(méi)有直接的影響,可以在服務(wù)進(jìn)程、可見(jiàn)進(jìn)程、前臺(tái)進(jìn)程需要內(nèi)存的時(shí)候回收。通常系統(tǒng)中會(huì)有很多不可見(jiàn)進(jìn)程在運(yùn)行,他們被保存在LRU(least recently used)列表中,以便內(nèi)存不足的時(shí)候被第一時(shí)間回收。如果一個(gè)activity正確的執(zhí)行了它的生命周期,關(guān)閉這個(gè)進(jìn)程對(duì)于用戶體驗(yàn)沒(méi)有太大的影響[5]。

        5)空進(jìn)程

        未運(yùn)行任何程序組件。運(yùn)行這些進(jìn)程的唯一原因是作為一個(gè)緩存,縮短下次程序需要重新使用的啟動(dòng)時(shí)間。系統(tǒng)經(jīng)常中止這些進(jìn)程,這樣可以調(diào)節(jié)程序緩存和系統(tǒng)緩存的平衡。

        Android對(duì)進(jìn)程的重要性評(píng)級(jí)的時(shí)候,選取它最高的級(jí)別。另外,當(dāng)被另外的一個(gè)進(jìn)程依賴的時(shí)候,某個(gè)進(jìn)程的級(jí)別可能會(huì)增高。一個(gè)為其他進(jìn)程服務(wù)的進(jìn)程永遠(yuǎn)不會(huì)比被服務(wù)的進(jìn)程重要級(jí)低。因?yàn)榉?wù)進(jìn)程比后臺(tái)activity進(jìn)程重要級(jí)高,因此一個(gè)要進(jìn)行耗時(shí)工作的activity最好啟動(dòng)一個(gè)service來(lái)做這個(gè)工作,而不是開(kāi)啟一個(gè)子進(jìn)程。特別是這個(gè)操作需要的時(shí)間比activity存在的時(shí)間還要長(zhǎng)的時(shí)候。例如,在后臺(tái)播放音樂(lè),向網(wǎng)上上傳圖片等。使用service可以使進(jìn)程最少獲取到“服務(wù)進(jìn)程”級(jí)別的重要級(jí),而不用考慮activity目前是什么狀態(tài)。

        2 Android的單線程模型

        當(dāng)一個(gè)程序第一次啟動(dòng)時(shí),Android會(huì)同時(shí)啟動(dòng)一個(gè)對(duì)應(yīng)的主線程(Main Thread),主線程主要負(fù)責(zé)處理與UI相關(guān)的事件,如:用戶的按鍵事件,用戶接觸屏幕的事件以及屏幕繪圖事件,并把相關(guān)的事件分發(fā)到對(duì)應(yīng)的組件進(jìn)行處理。所以主線程通常又被叫做UI線程。在開(kāi)發(fā)Android應(yīng)用時(shí)必須遵守單線程模型的原則:Android UI操作并不是線程安全的并且這些操作必須在UI線程中執(zhí)行[6]。

        應(yīng)用時(shí)必須遵守單線程模型的原則:Android UI操作并不是線程安全的并且這些操作必須在UI線程中執(zhí)行。由于UI線程負(fù)責(zé)事件的監(jiān)聽(tīng)和繪圖,因此,必須保證UI線程能夠隨時(shí)響應(yīng)用戶的需求,UI線程里的操作應(yīng)該向中斷事件那樣短小,費(fèi)時(shí)的操作(如網(wǎng)絡(luò)連接)需要另開(kāi)線程,否則,如果UI線程超過(guò)5s沒(méi)有響應(yīng)用戶請(qǐng)求,會(huì)彈出對(duì)話框提醒用戶終止應(yīng)用程序[7]。

        如果在新開(kāi)的線程中需要對(duì)UI進(jìn)行設(shè)定,就可能違反單線程模型,因此android采用一種復(fù)雜的Message Queue機(jī)制保證線程間通信。

        3 結(jié)束語(yǔ)

        本文首先介紹了Android的進(jìn)程與單線程模型及其原則。進(jìn)一步認(rèn)識(shí)和理解Android的單線程模型及其原則。由于更多地關(guān)注Android的進(jìn)程與單線程模型,本文或許不足以幫助讀者全面的認(rèn)識(shí)Android技術(shù),關(guān)于文中提到的其他技術(shù)細(xì)節(jié)以及Android的其他相關(guān)技術(shù)可以訪問(wèn)Android的官方網(wǎng)站進(jìn)行進(jìn)一步的了解和學(xué)習(xí)。

        [1]田亞平.智能終端OS之博愈烈Android能否分一杯羹[J].今日電子,2009,(3):23.

        [2]http://baike.baidu.com/view/3091265.htm(網(wǎng)絡(luò)資料)

        [3] http://www.cnmsdn.com/html/201010/1287295341ID8320.html(網(wǎng)絡(luò)資料)

        [4]孫曉宇.Android手機(jī)界面管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2009.

        [5]許翠蘋.手機(jī)操作系統(tǒng)列強(qiáng)爭(zhēng)霸進(jìn)行時(shí)[J].通訊世界,2010,(7):24-25.

        [6]王軍偉,武巖,易勇.淺論Android線程模型[J].中國(guó)電子商務(wù),2009,(9):72.

        [7]張誠(chéng)潔.Android在線圖書閱讀器設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)應(yīng)用,2010,31(10):77-80.

        猜你喜歡
        進(jìn)程程序用戶
        債券市場(chǎng)對(duì)外開(kāi)放的進(jìn)程與展望
        試論我國(guó)未決羈押程序的立法完善
        “程序猿”的生活什么樣
        英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        如何獲取一億海外用戶
        社會(huì)進(jìn)程中的新聞學(xué)探尋
        免费看黄色亚洲一区久久| 亚洲色欲Aⅴ无码一区二区| 一区二区三区国产97| 亚洲成熟中老妇女视频| 中文亚洲av片不卡在线观看| 亚洲国产激情一区二区三区| 亚洲欧美日韩国产精品网| 夜色视频在线观看麻豆| 久久精品第九区免费观看| 中国熟妇人妻xxxxx| 免费高清日本中文| 精品久久免费国产乱色也| 国产精品美女久久久网av| 午夜福利影院成人影院| 两个人看的www免费视频中文| 亚洲欧美另类自拍| 国产精品成人久久一区二区| 日本不卡的一区二区三区中文字幕| 特级毛片a级毛片100免费播放 | 精品九九人人做人人爱| 亚洲av色无码乱码在线观看| 亚洲a∨好看av高清在线观看| 久久精品国产亚洲av一般男女| 久久国产加勒比精品无码| 久久国产精品波多野结衣av| 在线观看国产精品自拍| 国产日产韩国av在线| 男人j进女人j啪啪无遮挡| 91国在线啪精品一区| 99久久精品人妻一区| av狠狠色丁香婷婷综合久久 | 亚洲三级黄色| 美女福利视频网址导航| 欧美精品欧美人与动人物牲交| 久久乐国产精品亚洲综合| 黄 色 成 年 人 网 站免费| 蜜桃视频第一区免费观看| 中文字幕欧美人妻精品一区| 亚洲爱婷婷色婷婷五月| 无码高潮少妇毛多水多水免费 | 久久国产高潮流白浆免费观看|