剛開始學習安卓的時候,看的最多的就是官網了。
這幾天可能比較空,是以想再看看,溫故知新,希望有所收獲。
多入口
Android 不同于以往的單一入口程式,例如 C++ 或者是 Java,都隻有一個 main 函數。
而 Android 是通過 Intent 過濾來啟動的,第三方應用也可以打開你的應用,隻要為 Intent 過濾所比對即可。
Android 中的權限
Android 是多使用者作業系統,它将每個 APP 看做是一個使用者。
在安裝應用時,系統會為應用配置設定一個 User Id 作為辨別,直到該應用被解除安裝。
作業系統為 APP 中的檔案設定了權限(是以data 目錄下的檔案都不能由第三方程式通路,即使是作業系統原生的程式),隻有該 APP 可以通路。
當 APP 的某個元件需要被啟動時(還是通過 Intent 過濾),作業系統就會為該 APP 建立程序,而每個程序都有自己的 VM,都是獨立的。
預設情況下,應用沒有任何權限,無法讀取使用者資訊,無法通路其他應用的檔案,無法通路網絡等等。
想要獲得權限?
應用必須在主配置檔案中靜态聲明所需要的權限,恩,是靜态。
使用者在安裝該 APP 時會看到應用所需權限的資訊。使用者同意安裝後, APP 就獲得額外的權限了。(如果是靜默安裝,就不清楚了。)
因為各個 APP 都是獨立,受權限保護的,是以不能由一個應用直接去通路或啟動另一個應用。
這一切隻能交給作業系統,而應用則需要向作業系統送出請求,也就是 Intent。
Intent
Intent 是異步的,盡管一般是來說,啟動一個元件是很快的。
Intent 分為顯示和隐式兩種,其中隐式的較為常見。
簽名
系統是如何差別應用的? 第一是包名,第二是簽名。
每個應用需要簽名,用證書(certificate)簽名,而證書中的 private key 代表了應用的作者。
以上來自:
http://developer.android.com/guide/index.html
http://developer.android.com/guide/components/fundamentals.html
http://developer.android.com/guide/topics/security/permissions.html