国产一级三级,久久艹av,www九九热,亚洲免费视频网站,一级黄色美女视频,激情小说激情图片激情电影,久久窝

    電話

    0411-39943997

仟億科技
客服中心
  • 電話
  • 電話咨詢:0411-39943997
  • 手機
  • 手機咨詢:15840979770
    手機咨詢:13889672791
網(wǎng)絡營銷 >更多
您現(xiàn)在的位置:首頁 > 新聞中心 > 常見問題

如何掌握Android中的進程和線程

作者:billionnet 發(fā)布于:2012/7/18 13:16:18 點擊量:

進程和線程是現(xiàn)代網(wǎng)絡操作系統(tǒng)的核心概念。Android作為一種優(yōu)秀的、承襲Linux的移動操作系統(tǒng),其進程和線程的概念是開發(fā)者和安全工作人員需要深入了解的問題。本文將詳細介紹Android中的進程、線程以及相關的技術(shù)問題。

  進程和線程的基本概念

  當一個應用程序開始運行它的第一個組件時,Android會為它啟動一個Linux進程,并在其中執(zhí)行一個單一的線程。默認情況下,應用程序所有的組件均在這個進程的這個線程中運行。然而,你也可以安排組件在其他進程中運行,而且可以為任意進程衍生出其它線程。

  Android中的進程

  組件運行所在的進程由manifest文件所控制。組件元素——, , ——都有一個 process 屬性來指定組件應當運行于哪個進程之內(nèi)。這些屬性可以設置為使每個組件運行于它自己的進程之內(nèi),或一些組件共享一個進程而其余的組件不這么做。它們也可以設置為令不同應用程序的組件在一個進程中運行——使應用程序的組成部分共享同一個Linux用戶ID并賦以同樣的權(quán)限。元素也有一個process屬性,以設定所有組件的默認值。

  所有的組件實例都位于特定進程的主線程內(nèi),而對這些組件的系統(tǒng)調(diào)用也將由那個線程進行分發(fā)。一般不會為每個實例創(chuàng)建線程。因此,某些方法總是運行在進程的主線程內(nèi),這些方法包括諸如View.onKeyDown()這樣報告用戶動作以及生命周期通告的。這意味著組件在被系統(tǒng)調(diào)用的時候,不應該施行長時間的抑或阻塞的操作(諸如網(wǎng)絡相關操作或是循環(huán)計算),因為這將阻塞同樣位于這個進程的其它組件的運行。你應該如同下面線程部分所敘述的那樣,為這些長時間操作衍生出一個單獨的線程進行處理。

  在可用內(nèi)存不足而又有一個正在為用戶進行服務的進程需要更多內(nèi)存的時候,Android有時候可能會關閉一個進程。而在這個進程中運行著的應用程序也因此被銷毀。當再次出現(xiàn)需要它們進行處理的工作的時候,會為這些組件重新創(chuàng)建進程。

  在決定結(jié)束哪個進程的時候,Android會衡量它們對于用戶的相對重要性。比如說,相對于一個仍有用戶可見的activity的進程,它更有可能去關閉一個其activity已經(jīng)不為用戶所見的進程。也可以說,決定是否關閉一個進程主要依據(jù)在那個進程中運行的組件的狀態(tài)。

  Android中的線程

  盡管你可以把你的應用程序限制于一個單獨的進程中,有時,你仍然需要衍生出一個線程以處理后臺任務。因為用戶界面必須非常及時的對用戶操作做出響應,所以,控管activity的線程不應用于處理一些諸如網(wǎng)絡下載之類的耗時操作。所有不能在瞬間完成的任務都應安排到不同的線程中去。

  線程在代碼中是以標準JavaThread對象創(chuàng)建的。Android提供了很多便于管理線程的類:Looper用于在一個線程中運行一個消息循環(huán),Handler用于處理消息,HandlerThread 用于使用一個消息循環(huán)啟用一個線程。

  RPC:遠程過程調(diào)用

  Android有一個輕量級的遠程過程調(diào)用(RPC)機制:即在本地調(diào)用一個方法,但在遠程(其它的進程中)進行處理,然后將結(jié)果返回調(diào)用者。這將方法調(diào)用及其附屬的數(shù)據(jù)以系統(tǒng)可以理解的方式進行分離,并將其從本地進程和本地地址空間傳送至遠程過程和遠程地址空間,并在那里重新裝配并對調(diào)用做出反應。返回的結(jié)果將以相反的方向進行傳遞。Android提供了完成這些工作所需的所有的代碼,以使你可以集中精力來實現(xiàn)RPC接口本身。

  RPC接口可以只包括方法。即便沒有返回值,所有方法仍以同步的方式執(zhí)行(本地方法阻塞直至遠程方法結(jié)束)。


 



分享到:


Copyright@ 2011-2016 版權(quán)所有:大連千億科技有限公司 遼ICP備11013762-3號   google網(wǎng)站地圖   百度網(wǎng)站地圖   網(wǎng)站地圖

公司地址:大連市沙河口區(qū)中山路692號辰熙星海國際2317 客服電話:0411-39943997 QQ:2088827823 37482752

法律聲明:未經(jīng)許可,任何模仿本站模板、轉(zhuǎn)載本站內(nèi)容等行為者,本站保留追究其法律責任的權(quán)利! 隱私權(quán)政策聲明