Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Android 的進程和線程

Android 的進程和線程

編輯:高級開發

一、進程(Processes)

  1.應用程序運行的時候,android會為其開啟一個Linux進程,其中含有一個單獨的執行線程。然而你還可以將其安排進其他進程裡或是在其他進程中產生額外的線程。

  2.Manifest文件控制著組件運行在哪個進程當中。、、、這四個標簽都含有“process”屬性,它用來指定這個組件運行在哪個進程裡。

  3.process屬性的功能

  (1)組件運行在各自的進程中。

  (2)一些組件共享著一個進程。

  (3)不同應用程序中的組件運行在相同的進程中(它們共享同一個Linux用戶ID和權限)。

  (4)另外標簽也有個process屬性,默認時:在指定進程中應用所有組件。

  4.所有的組件是在指定進程中的主線程創建,也就是說當系統調用這些組件時,會去那個線程裡面尋找。由於所有方法調用都在那主個線程中,難免會出現阻塞的情況(復雜的循環計算),所以開發人員可以創建額外的線程以避免這情況的發生。

  5.有兩種情況,android需要強制關閉一個進程:

  (1)內存不足。

  (2)其他的進程需要更多的內存以響應用戶需求。

  6.強制關閉進程的簡單原理:Android會衡量哪些進程對當前用戶比較重要,以關閉那些不重要的進程。舉例來說,android更樂意關閉掉那些不在屏幕上顯示的進程。因此,得出一個結論就是,這一行為取決於組件在那個進程中的狀態。

  二、線程(Threads)

  1.用戶界面應當是迅速地響應用戶操作為目的,對於那些不能迅速完成的操作放進其它線程裡面去工作。比如說下載功能,可以放置到後台去嘛。

  2.當然,還是利用JDK中的Thread對象去創建線程,而且android已然提供為開發人員提供好了極為便利的API用以管理線程。

  三、遠程方法調用(Remote procedure calls)

  1.android提供了一個輕量級的機制——遠程方法調用(RPCs),即:在本地方調用方法,卻在遠程方(其它的進程)執行它,並且將結果返回給本地。

  2.調用原理:首先在本地方將這個方法調用和其攜帶的數據分解出來,然後從本地方進程和地址空間傳輸到遠程方進程和地址空間;遠程方會重新組裝和制定方法調用;返回值則是由遠程方傳輸回到本地方。

  3.RPC接口裡面的方法都是同步的,也就是說,只有遠程方法執行完畢之後(如果方法沒有返回值亦如此),本地調用的方法才會結束。

  四、線程安全的方法(Thread-safe methods)

  接上頁

  1.當某個方法有可能同時在不同線程中被調用,那麼開發人員就需要讓這個方法改成線程安全的(比如RPCs)。

  2.Content provider會接收來自不同進程產生的數據請求。詳細點說就是這麼回事,盡管ContentResolver和ContentProvider這兩個類隱藏了關於內部線程通信是如何被管理的信息,但是ContentProvider中的那些方法(也就是響應那些數據請求的方法):query()、 insert()、delete()、update()和getType(),這些方法都是在context provider所處進程的線程池中被調用的,而不是在主進程中。換句話說,它們有可能在同一時刻不同線程中調用這些方法,所以它們必須要在線程安全的情況下執行。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved