Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 我的Android筆記--我對安卓系統的一些了解,android筆記--安卓

我的Android筆記--我對安卓系統的一些了解,android筆記--安卓

編輯:關於android開發

我的Android筆記--我對安卓系統的一些了解,android筆記--安卓


敲了這麼長時間代碼,記錄一下我對Android的一些概念,下面大部分內容來源自網絡資料和官方給的文檔。     1,Android操作系統的核心屬於Linux的一個分支,具有典型的Linux調度和功能,為了Linux在移動設備上更好的運行,Google對其進行修改和擴充,修修改改便成了現在我們所見到的Android系統。 2,通常,我們使用Java編程語言來編寫Android項目,有時我們可能還會用到JNI,C/C++來完成其他Android框架無法完成的功能或者處於其它目的。對於JNI部分,我們NDK來將其編譯成.so動態庫文件,放置在項目的指定位置,並且在需要用到的Java類中進行裝載和調用。在我們手動完成對JNI部分的處理以後,Android SDK便將我們所編寫的Java代碼和項目中包含的其他數據及資源打包成一個.apk(Android編譯器提供一個dx工具,將Java類文件轉換成dex文件。然後通過aapt將Android項目中的所有數據打包成一個.apk文件)後綴的文件,該文件便可安裝在Android操作系統上運行使用。 3,對於apk的運行我們必須了解的是:      a,Android操作系統是一個多用戶Linux系統,其中的每個應用都是一位不同的用戶。      b,默認情況下,系統會為每個應用分配一個唯一的Linux用戶ID(該ID由系統使用,應用不能獲取)。系統還對應用中的所有文件設置權限,似的只有分配給該應用的用戶ID才能訪問這些文件。      c,每個用戶(進程)都有自己的虛擬機,因此應用代碼是在與其他應用隔離的環境中運行的。      d,默認情況下,每個應用在自己的Linux進程中運行。Android會在需要執行任何應用組件時啟動該進程,然後在不再需要該進程或系統必須為其他應用恢復內存時關閉該進程。 4,Android一開始使用的虛擬機是Dalvik虛擬機,在4.4系統以後使用ART虛擬機。ART與Dalvik的不同之處,主要是在成員安裝時,便將apk中的代碼轉換成機器碼,以此來提升運行效率,比以往使用JIT的Dalvik虛擬機效率高。  

Android 系統可以通過這種方式實現最小權限原則。也就是說,默認情況下,每個應用都只能訪問執行其工作所需的組件,而不能訪問其他組件。 這樣便營造出一個非常安全的環境,在這個環境中,應用無法訪問系統中其未獲得權限的部分。

不過,應用仍然可以通過一些途徑與其他應用共享數據以及訪問系統服務:      a,可以安排兩個應用共享同一 Linux 用戶 ID,在這種情況下,它們能夠相互訪問彼此的文件。為了節省系統資源,可以安排具有相同用戶 ID 的應用在同一 Linux 進程中運行,並共享同一 VM(應用還必須使用相同的證書簽署);      b,應用可以請求訪問設備數據(如用戶的聯系人、短信、可裝入存儲裝置 [SD 卡]、相機、藍牙等)的權限。所有應用權限都必須由用戶在安裝時授予。      在一開始學習Android編程的時候,我們最開始接觸的應該就是四大組件了。它們是Android的基本構建模塊,每個組件都是一個不同的餓點,系統可以通過它進入應用中。但是不是所有組件都是用戶的實際入口點,每個組件都是獨立存在的,發揮各自不同的作用。            

應用組件是 Android 應用的基本構建基塊。每個組件都是一個不同的點,系統可以通過它進入您的應用。並非所有組件都是用戶的實際入口點,有些組件相互依賴,但每個組件都以獨立實體形式存在,並發揮特定作用—每個組件都是唯一的構建基塊,有助於定義應用的總體行為。

共有四種不同的應用組件類型。每種類型都服務於不同的目的,並且具有定義組件的創建和銷毀方式的不同生命周期。

以下便是這四種應用組件類型:

Activity Activity表示具有用戶界面的單一屏幕。例如,電子郵件應用可能具有一個顯示新電子郵件列表的 Activity、一個用於撰寫電子郵件的 Activity 以及一個用於閱讀電子郵件的 Activity。 盡管這些 Activity 通過協作在電子郵件應用中形成了一種具有凝聚力的用戶體驗,但每一個 Activity 都獨立於其他 Activity 而存在。 因此,其他應用可以啟動其中任何一個 Activity(如果電子郵件應用允許)。 例如,相機應用可以啟動電子郵件應用內用於撰寫新電子郵件的 Activity,以便用戶共享圖片。 服務 服務 是一種在後台運行的組件,用於執行長時間運行的操作或為遠程進程執行作業。 服務不提供用戶界面。 例如,當用戶位於其他應用中時,服務可能在後台播放音樂或者通過網絡獲取數據,但不會阻斷用戶與 Activity 的交互。 諸如 Activity 等其他組件可以啟動服務,讓其運行或與其綁定以便與其進行交互。 內容提供程序 內容提供程序 管理一組共享的應用數據。您可以將數據存儲在文件系統、SQLite 數據庫、Web 上或您的應用可以訪問的任何其他永久性存儲位置。其他應用可以通過內容提供程序查詢數據,甚至修改數據(如果內容提供程序允許)。 例如,Android 系統可提供管理用戶聯系人信息的內容提供程序。因此,任何具有適當權限的應用都可以查詢內容提供程序的某一部分(如 ContactsContract.Data),以讀取和寫入有關特定人員的信息。 內容提供程序也適用於讀取和寫入您的應用不共享的私有數據。 例如,記事本示例應用使用內容提供程序來保存筆記。 廣播接收器 廣播接收器 是一種用於響應系統范圍廣播通知的組件。 許多廣播都是由系統發起的—例如,通知屏幕已關閉、電池電量不足或已拍攝照片的廣播。應用也可以發起廣播—例如,通知其他應用某些數據已下載至設備,並且可供其使用。 盡管廣播接收器不會顯示用戶界面,但它們可以創建狀態通知欄通知,在發生廣播事件時提醒用戶。 但廣播接收器更常見的用途只是作為通向其他組件的“通道”,設計用於執行極少量的工作。 例如,它可能會基於事件發起一項服務來執行某項工作。   在Android系統啟動應用組件之前,系統必須通過讀取應用的“AndroidMainfest.xml”文件來確認組件是否存在。絕大部分組件都必須在清單文件中聲明。除了聲明組件,清單文件還有許多其他作用:      1,確定應用需要的任何用戶權限。      2,根據應用使用的API,聲明API最低級別。      3,聲明應用使用或需要的硬件和軟件功能,如相機、藍牙和多點觸摸屏幕      4,聲明需要連接的API庫,如Google Maps API庫      5,其他功能

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