1. 程式人生 > >Android基礎知識學習

Android基礎知識學習

運行 系列 vid 以及 service ras binding comm font

IPC (Inter-Process Communication) 意思是:  進程間的通信,是指兩個進程之間進行數據交換的過程。

Android中如何開啟多進程呢?

只需要給四大組件(Activity、Service、Receiver、ContentProvider)在Android Menifest 中指定 android:process 屬性即可。

技術分享圖片

不同的進程組件擁有獨立的虛擬機、Application以及內存空間,直觀的理解相當於兩個應用不同的UID。

不同進程中,存在內存中的數據是互不幹擾的,對其他進程不會造成任何影響。

多進程造成的問題:
1、靜態成員變量、單例模式等凡是存在內存中的數據完全失效
2、Application 會創建多次
3、線程同步完全失效

Intent 意圖,意向

Intent組件雖然不是四大組件,但卻是連接四大組件的橋梁,學習好這個知識,也非常的重要。

Intent是一種運行時綁定(runtime binding)機制,它能在程序運行的過程中連接兩個不同的組件。通過Intent,你的程序可以向Android表達某種請求或者意願,Android會根據意願的內容選擇適當的組件來響應。

技術分享圖片

圖 1-1 通過Intent進行通信

如果Activity1需要和Activity2進行聯系,二者不需要直接聯系,而是通過Intent作為橋梁。

Intent由以下各個組成部分:

  1. component(組件):目的組件
  2. action(動作):用來表現意圖的行動
  3. category(類別):用來表現動作的類別
  4. data(數據):表示與動作要操縱的數據
  5. type(數據類型):對於data範例的描寫
  6. extras(擴展信息):擴展信息
  7. Flags(標誌位):期望這個意圖的運行模式

Intent類型分為顯式Intent(直接類型)、隱式Intent(間接類型)。官方建議使用隱式Intent。上述屬性中,component屬性為直接類型,其他均為間接類型。

相比與顯式Intent直接指定活動,隱式Intnet則含蓄了許多,它並不明確指出我們想要啟動哪一個活動,而是指定一系列更為抽象的action和category等信息,然後交由系統去分析這個Intent,並幫我們找出合適的活動去啟動。

Android基礎知識學習