系統簡介,發展歷程,發行版本,測試版本,Android 1.0 Beta,Android 1.0,Android 1.5,Android 1.6,Android 2.1,Android 2.2,Android 2.3,Android 3.0,Android 3.1,Android 3.2,Android 4.0,Android 4.1,Android 4.2,Android 4.3,Android 4.4,Android 5.0,Android 5.1,Android 6.0,Android 7.0,Android 7.1,Android 8.0,Android 8.1,Android 9.0,Android 10,Android 11,Android 12,Android 13,Android 14,Android 15,體系架構,架構簡介,應用程式,應用程式框架,系統運行庫,系統結構,系統核心,硬體抽像層,中介軟體,安全許可權機制,套用組件,組件介紹,活動,服務,廣播接收器,內容提供,平台優勢,開放性,豐富的硬體,方便開發,Google套用,相關係統,相關報導,
系統簡介 Android一詞最早出現於
法國 作家利爾亞當(Auguste Villiers de l'Isle-Adam)在1886年發表的科幻小說《
未來的夏娃 》(
L'ève future )中。他將外表像人的機器起名為Android。
Android的Logo是由Ascender公司設計的,誕生於2010年,其設計靈感源於男女廁所門上的
圖形符號 ,於是布洛克繪製了一個簡單的機器人,它的軀幹就像錫罐的形狀,頭上還有兩根
天線 ,Android小機器人便誕生了。其中的文字使用了Ascender公司專門製作的稱之為“Droid ” 的字型。Android是一個全身綠色的機器人,綠色也是Android的標誌。顏色採用了PMS 376C和
RGB 中十六進制的#A4C639來繪製,這是Android作業系統的品牌象徵。有時候,它們還會使用純文字的Logo。
(Android logo 相關圖片相冊圖片來源:)
發展歷程 2003年10月,
安迪·魯賓 , Rich Miner, Nick Sears和Chris White創建Android公司,並組建Android團隊。
2005年8月17日,
Google 低調收購了成立僅22個月的高科技企業Android及其團隊。
安迪·魯賓 成為Google公司工程部副總裁,繼續負責Android項目。
2008年,在GoogleI/O大會上,谷歌提出了AndroidHAL架構圖,在同年8月18號,Android獲得了
美國聯邦通信委員會 (FCC)的批准,在2008年9月,谷歌正式發布了
Android 1.0 系統,這也是Android系統最早的版本。
2009年4月,谷歌正式推出了
Android 1.5 這款手機,從Android 1.5版本開始,谷歌開始將Android的版本以甜品的名字命名,Android 1.5命名為
Cupcake (
紙杯蛋糕 )。該系統與Android 1.0相比有了很大的改進。
2009年9月,谷歌發布了
Android 1.6 的
正式版 ,並且推出了搭載Android 1.6正式版的手機
HTC Hero (G3),憑藉著出色的外觀設計以及全新的Android 1.6作業系統,HTC Hero(G3)成為當時全球最受歡迎的手機。Android 1.6也有一個有趣的甜品名稱,它被稱為Donut(
甜甜圈 )。
2011年1月,谷歌稱每日的Android設備新
用戶數量 達到了30萬部,到2011年7月,這個數字增長到55萬部,而Android系統設備的用戶總數達到了1.35億,Android系統已經成為
智慧型手機 領域占有量最高的系統。
2011年8月2日,Android手機已占據全球
智慧型機 市場48%的份額,並在
亞太地區 市場占據統治地位,終結了Symbian(
塞班系統 )的霸主地位,躍居全球第一。
2012年1月6日,谷歌
Android Market 已有10萬開發者推出超過40萬活躍的套用,大多數的
應用程式 為免費。Android Market應用程式商店目錄在新年首周周末突破40萬基準,距離突破30萬套用僅4個月。在2011年早些時候,Android Market從20萬增加到30萬套用也花了四個月。
2013年11月1日,Android4.4正式發布,從具體功能上講,Android4.4提供了各種實用小功能,新的Android系統更智慧型,添加更多的
Emoji 表情圖案,
UI 的改進也更現代,如全新的Hello
iOS 7半透明效果。
2014第一季度Android平台已占所有
移動廣告 流量來源的42.8%,首度超越
iOS 。但運營收入不及iOS。
2015年,
網路安全 公司Zimperium研究人員警告,安卓(Android)存在“致命”
安全漏洞 ,黑客傳送一封彩信便能在用戶毫不知情的情況下完全控制手機。
2018年10月,谷歌表示,將於2018年12月6日停止Android系統中的Nearby Notifications(附近通知)服務,因為Android用戶收到太多的附近商家
推銷信息 的
垃圾郵件 。
2020年3月,谷歌的Android安全公告中提到,新更新已經提供了
CVE -2020-0069補丁來解決針對
聯發科 晶片的一個嚴重安全漏洞。
2022年2月,
Android 12L Beta 3 版本發布,首次支持了 Pixel 6 和 Pixel 6 Pro,以及更新的
測試環境 、缺陷修復和最佳化。
2022年2月,谷歌宣布推出Android隱私沙盒,旨在引入更新、更具
私密性 的廣告解決方案,以限制與
第三方機構 共享用戶信息,但不損害
廣告主 短期利益。谷歌計畫在年內隨
測試版 一起發布隱私沙盒
開發者預覽版 。
台北時間 2022年5月6日下午訊息,據報導,5月5日是世界密碼日,
蘋果 、
谷歌 和
微軟 這三大科技巨頭在一項聯合計畫中宣布,他們將致力於在未來一年,在其控制的所有移動、桌面和瀏覽器平台上打造無密碼登錄系統。
2022年,安卓推出類似靈動島的App——
dynamicSpot 。10月3日訊息,安卓靈動島App
下載量 破100萬。10月13日,谷歌今天宣布安卓和
Chrome 瀏覽器帶來初步的 Passkey 通行密鑰支持。
2023年4月4日,谷歌發布 2023 年 4 月的安卓安全公告。谷歌和以往一樣,發布了兩個補丁級別,其中 2023-04-01 針對安卓系統和框架,而 2023-04-05 級別包含廠商的安全修復補丁。
2024年1月12日,谷歌於 2023 年 9 月宣布重塑安卓品牌,其中亮點之一在於綠色機器人圖示變為 3D 立體設計;在 CES 2024 大展上,谷歌將新版機器人命名為“The Bot”。
發行版本 測試版本 Android在正式發行之前,最開始擁有兩個
內部測試 版本,並且以著名的機器人名稱來對其進行命名,它們分別是:阿童木(Android 1.0 Beta),發條機器人(Android 1.0)。後來由於涉及到
著作權 問題,谷歌將其命名規則變更為用甜點作為它們系統版本的代號的命名方法。
Android 各代版本 Logo
Android 1.0 Beta 2007年發布的Android 阿童木。
Android 1.0 2008年9月,谷歌發布Android1.0。
Android 1.5 Cupcake(
紙杯蛋糕 ):2009年4月30日發布。
主要的更新如下:
Android 1.6 Donut(甜甜圈):2009年9月15日發布。
主要的更新如下:
Android 2.1 Éclair(閃電泡芙):2009年10月26日發布。
主要更新:
Android 2.2 Froyo(凍優酪乳): 2010年5月20日發布。
主要更新:
Android 2.3 Gingerbread(薑餅) :2010年12月7日發布。
主要更新:
Android 3.0 Honeycomb(蜂巢):2011年2月3日發布。
主要更新:
針對平板大螢幕而做最佳化;全新設計的UI增強
網頁瀏覽 功能 ;in-app purchases功能。
Android 3.1 Honeycomb(蜂巢) :2011年5月11日布發布。
主要更新:
Android 3.2 Honeycomb(蜂巢):2011年7月13日發布。
主要更新:
支持
SD卡 ;支持7英寸平板和
高通 處理器;桌面小部件自由縮放。
Android 4.0 Ice Cream Sandwich(冰激凌三明治):2011年10月19日上午十點,
谷歌 與
三星 聯手在
中國香港 舉辦發布會,公布有關Android 4.0
系統信息 。
版本主要更新如下:
Android 4.1 Jelly Bean(果凍豆): 2012年6月28日發布。
新特性:
更快、更流暢、更靈敏;特效動畫的
幀速 提高至60fps,增加了三倍緩衝;增強通知欄;全新搜尋;搜尋將會帶來全新的UI、
智慧型語音搜尋 和
Google Now 三項新功能;桌面外掛程式自動調整大小;加強無障礙操作;語言和
輸入法 擴展;新的輸入類型和功能;新的連線類型。
Android 4.2 Jelly Bean(果凍豆): 2012年10月30日發布。
Android 4.2沿用“果凍豆”這一名稱,以反映這種最新作業系統與Android 4.1的
相似性 ,但Android 4.2推出了一些重大的新特性,具體如下:
Photo Sphere
全景拍照 功能;鍵盤手勢輸入功能;改進
鎖屏 功能,包括鎖屏狀態下支持桌面掛件和直接打開照相功能等;可擴展通知,允許用戶直接打開套用;
Gmail 郵件可縮放顯示;
Daydream 螢幕保護程式 ;用戶連點三次可放大整個顯示屏,還可用兩根手指進行旋轉和縮放顯示,以及專為盲人用戶設計的語音輸出和手勢模式導航功能等;支持
Miracast 無線顯示共享功能;Google Now現可允許用戶使用Gamail作為新的
數據來源 ,如改進後的航班追蹤功能、酒店和餐廳預訂功能以及音樂和電影推薦功能等。
Android 4.3 Jelly Bean(果凍豆): 2013年7月25日發布。
Android 4.4 KitKat(奇巧朱古力): 2013年下半年發布。
2013年9月4日凌晨,谷歌對外公布了Android新版本
Android 4.4 KitKat(奇巧朱古力),並且於2013年11月01日正式發布,新的4.4系統更加整合了自家服務,力求防止安卓系統繼續碎片化、分散化。
Android 5.0 Lollipop(棒棒糖):2014年6月26日發布。
Android 5.0 系統使用一種新的
Material Design 設計風格。從圖片上就能看到一些全新的設計。從圖片上看,這套
設計圖 對 Android 系統的
桌面圖示 及部件的透明度進行的稍稍的調整,並且各種桌面小部件也可以重疊擺放。雖然調整桌面部件透明度對 Android 系統來說並不算什麼新鮮的功能,但是加入了透明度的改進。界面加入了五彩繽紛的顏色、流暢的動畫效果,呈現出一種清新的風格。採用這種設計的目的在於統一 Android 設備的外觀和使用體驗,不論是手機、平板還是
多媒體播放器 。
Android 5.1 Lollipop(棒棒糖):2015年3月10日發布。
Android 5.1新系統相對於Android5.0更加穩定了,同時支持多張
SIM卡 ,加強了設備保護機制,增強了設備的WiFi能力。
Android 6.0 Marshmallow(棉花糖):2015年9月30日發布。
新系統的整體設計風格依然保持扁平化的
Material Design 風格。Android6.0在對軟體體驗與運行性能上進行了大幅度的最佳化。據測試,Android6.0可使設備
續航時間 提升30%。
Android 7.0 Nougat(牛軋糖):2016年8月22日發布。
Android 7.0 提供新功能以提升性能、
生產效率 和安全性。通過新的系統行為測試您的套用,以節省電量和記憶體。充分利用多視窗 UI、直接回復通知等功能。
Android 7.1 Nougat(牛軋糖):2016年12月5日發布。
更新為用戶和開發人員引入了各種新功能。
您可以使用新的捷徑 功能將用戶從啟動器直接帶入應用程式內的關鍵操作。用戶只需長按應用程式的啟動器圖示以顯示應用程式的捷徑,然後點擊捷徑即可跳至相關的操作。這些捷徑是吸引用戶的好方法,它們使您甚至在用戶啟動應用程式之前也可以展示應用程式的功能。
每個捷徑都引用一個意圖,每個意圖都會啟動一個特定的動作或任務,並且您可以為可以表示為意圖的任何動作創建一個捷徑。例如,您可以創建用於傳送新簡訊,進行預訂,播放視頻,繼續遊戲,載入地圖位置等等的意圖。
您可以通過將
應用程式 捷徑添加到
APK 中的
資源檔案 中來為其靜態創建捷徑,也可以在
運行時 動態添加它們。靜態捷徑是常見操作的理想選擇,動態捷徑使您可以根據用戶的偏好,行為,位置等
突出顯示 操作。每個應用程式中最多可以提供五個
快捷鍵 。但是請注意,某些啟動器應用程式不會顯示您為應用程式註冊的所有捷徑。
您的套用添加捷徑後,便可以在任何支持它們的啟動器上使用它們,例如Pixel啟動器(Pixel設備上的默認啟動器),Now啟動器(Nexus設備上的默認啟動器)以及其他提供支持的啟動器。
任何應用程式都可以創建捷徑,任何啟動器應用程式都可以添加對捷徑的支持。Android 7.1提供了一個
API ,供應用程式註冊捷徑和啟動程式讀取已註冊的捷徑。
螢幕截圖
7.1 螢幕截圖
Android 8.0 Oreo(奧利奧):2017年8月22日發布。
更智慧型、更快速、功能更強大。您喜愛的新 Android 版本以全球人都愛的一款曲奇餅為代號。
新功能:
畫中畫 通知圓點 通知渠道 自動填充框架 自動調整 TextView 的大小 可下載字型 自適應圖示 捷徑固定 廣色域色彩 WebView 功能 Java 8 語言 API 媒體功能 多顯示器支持 Neural Networks API Android Oreo(Go 版本)
Android 8.1 Android 8.1 功能和 API
Android 8.1(API 級別 27)為用戶和開發者引入了各種新功能。
Android 8.1 Go是一項旨在為全球數十億
網路用戶 最佳化 Android 體驗的計畫。從 Android 8.1 開始,我們就在將 Android 打造成入門級設備的理想平台。Android Oreo(Go 版本)配置中的功能包括:
我們更新了“為數十億用戶打造產品”指南,加入了有關如何針對搭載 Android Oreo(Go 版本)的設備最佳化套用的指導。對於大多數開發者來說,最佳化現有的 APK,或使用
Google Play 的多 APK 功能將某個 APK 版本定位到低記憶體設備,是針對搭載 Android Oreo(Go 版本)的設備做好準備的最佳方式。請注意,無論您的客群使用何種設備,將套用打造得更加纖巧高效都對他們有益。
Android 9.0 Pie(派):2018年5月9日發布。
通知欄樣式更改,整體設計添加了更多圓形。
Android 9 利用人工智慧技術,讓手機可以為您提供更多幫助。現在,手機變得更智慧型、更快,並且還可以隨著您的使用進行調整。
Android 10 2019年9月4日發布。
從Android 10開始,Google 開始提供
系統級 的
黑暗模式 ,大部分預裝套用、抽屜、設定選單和 Google Feed 資訊流等界面和按鈕,都會變成以黑色為主色調,就和你在
macOS Mojave 中看到的暗色界面一樣。為確保用戶隱私和安全支持新的保護措施。藉助高性能
編解碼器 、更出色的
生物識別技術 、更快的套用啟動速度、
Vulkan 1.1、NNAPI 1.2、可摺疊設備和 5G 等更多功能擴展。
谷歌宣布Android系統的重大改變,不僅換了全新的logo,命名方式也變了,2019年的Android Q的
正式名稱 是Android 10。
Android 11 2020年9月9日發布。
2019年10月11日訊息,據外媒報導,2019年Android開發峰會將於本月晚些時候開幕,谷歌公布了完整的
會議日程 。在會議日程中谷歌官方首次提到了Android 11。
此前外媒發現在
AOSP 中,谷歌已經啟用了代號“Android R”。按照Android命名規則,Android R應該就是下一代Android:Android 11。
由於疫情原因,谷歌宣布取消線下的開發者大會,後來又取消了線上開發者大會,所以Android 11 將在2020年第三季度發布。
Android 11 開發者預覽版計畫從 2020 年 2 月啟動,到向
AOSP 和
OEM 提供最終的公開版本時結束,最終版本預計將於 2020 年第 3 季度發布。在
開發階段 的各個關鍵里程碑,我們將為您的開發和測試環境提供更新。每次更新均包括
SDK 工具、
系統映像 、
模擬器 、
API 參考和 API 差異。里程碑列表如下。
官網發布時間軸
時間軸
Build
類型
開發者操作
早期的基準 build,涉及新功能、API 和行為變更,重點關注開發者反饋。
API 反饋的重要視窗。查看新的 API 和行為變更,並在此期間向我們報告任何重大問題或請求。
在處理 API 和行為變更時,向我們提供反饋。開始早期的套用兼容性測試。
準備好套用,迎接消費者 Beta 版。繼續進行兼容性測試,在不更改目標的情況下發布更新。如有任何問題,通知 SDK 和庫的開發者。
初始 Beta 版本,面向註冊試用 Android Beta 版的嘗鮮者提供無線更新。
繼續進行兼容性測試,留意 Android Beta 版用戶的反饋。開始針對 Android 11 的早期測試。
平台穩定性里程碑,提供最終的 API 和行為。開放 Play 發布。
開始對套用、
SDK 和庫進行最終的兼容性測試。發布兼容版本。繼續針對 Android 11 的工作。
發布套用、SDK 和庫的兼容更新。繼續針對 Android 11 的工作。使用新功能和 API 構建套用。
面向 AOSP 和生態系統發布 Android 11 版本。
發布套用、SDK 和庫的兼容更新。繼續針對 Android 11 的工作。使用新功能和 API 構建套用。
Android 12 主詞條:Android 12
2021年10月5日發布。
2021年5月19日凌晨訊息,谷歌宣布Android 12正式到來,測試版現在即可供下載。
Android 13 2022年8月16日發布。
2022年2月11日,谷歌發布了首個Android 13開發者預覽版,將在6月發布穩定版。
2022年5月12日,谷歌舉辦I/O 2022開發者大會,並正式發布Android 13。
2022年8月16日,谷歌今日面向Pixel設備推送了 Android 13 正式版更新,並將原始碼上傳到了 Android
開源項目 (AOSP)。
Android 14 主詞條:Android 14
2022年9月,谷歌平台與生態系統高級副總裁Hiroshi Lockheimer在社交平台上宣布了一則新訊息:Android 14將支持衛星通訊技術。
Android 15 2023年3月,爆料人Mishaal Rahman在AOSP中發現了Android 15的開發代號,即Vanilla Ice Cream(香草冰淇淋),甜美范兒。
體系架構 架構簡介 Android的系統架構和其作業系統一樣,採用了分層的架構。從架構圖看,Android分為四個層,從高層到低層分別是應用程式層、應用程式框架層、系統
運行庫 層和
Linux核心層 。
Android結構
應用程式 Android會同一系列核心應用程式包一起發布,該應用程式包包括客戶端,
SMS 短訊息程式,日曆,地圖,瀏覽器,聯繫人管理程式等。所有的應用程式都是使用
JAVA 語言編寫的。
應用程式框架 開發人員也可以完全訪問核心應用程式所使用的
API 框架。該應用程式的架構設計簡化了組件的重用;任何一個應用程式都可以發布它的
功能塊 並且任何其它的應用程式都可以使用其所發布的功能塊(不過得遵循框架的安全性)。同樣,該應用程式重用機制也使用戶可以方便的替換程式組件。
隱藏在每個套用後面的是一系列的服務和系統, 其中包括;
豐富而又可擴展的視圖(Views),可以用來構建應用程式, 它包括列表(Lists),格線(Grids),
文本框 (Text boxes),按鈕(Buttons), 甚至可嵌入的web瀏覽器。
內容提供器(Content Providers)使得應用程式可以訪問另一個應用程式的數據(如聯繫人資料庫), 或者共享它們自己的數據
資源管理器 (Resource Manager)提供 非代碼資源的訪問,如本地
字元串 ,圖形,和布局檔案(Layout files )。
通知管理器 (Notification Manager)使得應用程式可以在
狀態欄 中顯示自定義的提示信息。
活動管理器( Activity Manager)用來管理應用程式生命周期並提供常用的導航回退功能。
系統運行庫 Android 包含一些C/C++庫,這些庫能被Android系統中不同的組件使用。它們通過 Android 應用程式框架為開發者提供服務。以下是一些核心庫:
* 系統 C 庫 - 一個從
BSD 繼承來的標準C系統函式館 Libc , 它是專門為基於Embedded linux的設備定製的。
* Surface Manager - 對顯示
子系統 的管理,並且為多個應用程式提 供了
2D 和
3D 圖層的無縫融合。
系統結構 系統核心 Android 的 Linux kernel控制包括安全(Security),存儲器管理(Memory Management),程式管理(Process Management),網路
堆疊 (Network Stack),
驅動程式 模型(Driver Model)等。下載Android源碼之前,先要安裝其構建工具 Repo來初始化源碼。Repo 是 Android 用來輔助
Git 工作的一個工具。
硬體抽像層 Android 的
HAL (硬體抽像層)是能以封閉源碼形式提供硬體驅動模組。HAL 的目的是為了把 Android framework 與 Linux kernel 隔開,讓 Android 不至過度依賴 Linux kernel,以達成 Kernel independent 的概念,也讓 Android framework 的開發能在不考量驅動程式實現的前提下進行發展。
HAL stub 是一種代理人(
Proxy )的概念,Stub 是以 *.so 檔的形式存在。Stub 向 HAL“提供”操作函式(Operations),並由
Android runtime 向 HAL 取得 Stub 的Operations,再 Callback 這些操作函式。HAL 里包含了許多的 Stub(代理人)。Runtime 只要說明“類型”,即 Module ID,就可以取得操作函式。
中介軟體 作業系統與應用程式的溝通橋樑,套用分為兩層:函式層(Library)和
虛擬機 (Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同時包含了Webkit,所謂的Webkit 就是Apple
Safari 瀏覽器背後的引擎。Surface flinger 是就
2D 或3D的內容顯示到螢幕上。Android使用工具鏈(
Toolchain )為Google自製的Bionic Libc。
Android採用OpenCORE作為基礎
多媒體框架 。Open CORE可分7大塊:PVPlayer、PVAuthor、
Codec 、
PacketVideo Multimedia Framework(
PVMF )、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用
skia 為核心
圖形引擎 ,搭配
OpenGL /ES。skia與Linux Cairo功能相當,但相較於Linux Cairo, skia 功能還只是雛形的。2005年Skia公司被Google收購,2007年初,Skia GL源碼被公開,Skia 也是
Google Chrome 的圖形引擎。
Android的
多媒體資料庫 採用
SQLite 資料庫系統。資料庫又分為共用資料庫及私用資料庫。用戶可通過ContentResolver類(Column)取得共用資料庫。
Android的中間層多以
Java 實現,並且採用特殊的
Dalvik 虛擬機(Dalvik Virtual Machine)。Dalvik虛擬機是一種“
暫存器 型態”(Register Based)的Java虛擬機,變數皆存放於暫存器中,虛擬機的指令相對減少。
安全許可權機制 Android本身是一個許可權分立的作業系統。在這類作業系統中,每個套用都以一個系統識別身份運行(Linux用戶ID與群組ID)。系統的各部分也分別使用各自獨立的識別方式。Linux就是這樣將套用與套用,套用與系統隔離開。
系統更多的安全功能通過許可權機制提供。許可權可以限制某個特定進程的特定操作,也可以限制每個
URI 許可權對特定
數據段 的訪問。
Android安全架構的核心
設計思想 是,在默認設定下,所有套用都沒有許可權對其他套用、系統或用戶進行較大影響的操作。這其中包括讀寫用戶隱私數據(聯繫人或
電子郵件 ),讀寫其他套用檔案,訪問網路或阻止設備待機等。
安裝套用時,在檢查程式簽名提及的許可權,且經過用戶確認後,
軟體包 安裝器會給予套用許可權。從用戶角度看,一款Android套用通常會要求如下的許可權:
撥打電話、傳送簡訊或彩信、修改/刪除
SD卡 上的內容、讀取聯繫人的信息、讀取日程信的息,寫入日程數據、讀取電話狀態或
識別碼 、精確的(基於
GPS )
地理位置 、模糊的(基於網路獲取)地理位置、創建
藍牙 連線、對網際網路的完全訪問、查看
網路狀態 ,查看WiFi狀態、避免手機
待機 、修改系統全局設定、讀取同步設定、開機自啟動、重啟其他套用、終止運行中的套用、設定偏好套用、震動控制、拍攝圖片等。
一款套用應該根據自身提供的功能,要求合理的許可權。用戶也可以分析一款套用所需許可權,從而簡單判定這款套用是否安全。如一款套用是不帶廣告的
單機版 ,也沒有任何附加的內容需要下載,那么它要求訪問網路的許可權就比較可疑。
套用組件 組件介紹 活動 Android 中,Activity是所有程式的根本,所有程式的流程都運行在Activity 之中,Activity可以算是開發者遇到的最頻繁,也是Android 當中最基本的模組之一。在Android的程式當中,Activity 一般代表手機螢幕的一屏。如果把手機比作一個瀏覽器,那么Activity就相當於一個網頁。在Activity 當中可以添加一些Button、Check box 等控制項。可以看到Activity 概念和網頁的概念相當類似。
一般一個Android 套用是由多個Activity 組成的。這多個Activity 之間可以進行相互跳轉,例如,按下一個Button按鈕後,可能會跳轉到其他的Activity。和網頁跳轉稍微有些不一樣的是,Activity 之間的跳轉有可能
返回值 ,例如,從Activity A 跳轉到Activity B,那么當Activity B 運行結束的時候,有可能會給Activity A 一個返回值。這樣做在很多時候是相當方便的。
當打開一個新的螢幕時,之前一個螢幕會被置為暫停狀態,並且壓入歷史堆疊中。用戶可以通過回退操作返回到以前打開過的螢幕。可以選擇性的移除一些沒有必要保留的螢幕,因為Android會把每個套用的開始到當前的每個螢幕保存在堆疊中。
服務 Service 是android 系統中的一種組件,它跟Activity 的級別差不多,但是他不能自己運行,只能後台運行,並且可以和其他組件進行互動。Service 是沒有界面的長生命周期的代碼。Service是一種程式,它可以運行很長時間,但是它卻沒有用戶界面。這么說有點枯燥,來看個例子。打開一個音樂播放器的程式,這個時候若想上網了,那么,打開Android瀏覽器,這個時候雖然已經進入了瀏覽器這個程式,但是,歌曲播放並沒有停止,而是在後台繼續一首接著一首的播放。其實這個播放就是由播放音樂的Service進行控制。當然這個播放音樂的Service也可以停止,例如,當播放列表裡邊的歌曲都結束,或者用戶按下了停止音樂播放的快捷鍵等。Service 可以在和多場合的套用中使用,比如播放多媒體的時候用戶啟動了其他Activity這個時候程式要在後台繼續播放,比如檢測
SD 卡上檔案的變化,再或者在後台記錄地理信息位置的改變等等,總之服務嘛,總是藏在後頭的。
安卓不同版本圖片
開啟Service有兩種方式:
(1) Context.startService():Service會經歷onCreate -> onStart(如果Service還沒有運行,則android先調用onCreate()然後調用onStart();如果Service已經運行,則只調用onStart(),所以一個Service的onStart方法可能會重複調用多次 );StopService的時候直接onDestroy,如果是調用者自己直接退出而沒有調用StopService的話,Service會一直在後台運行。該Service的調用者再啟動起來後可以通過stopService關閉Service。 注意,多次調用Context.startservice()不會嵌套(即使會有相應的onStart()方法被調用),所以無論同一個服務被啟動了多少次,一旦調用Context.stopService()或者StopSelf(),他都會被停止。補充說明:傳遞給StartService(0的Intent對象會傳遞給onStart()方法。調用順序為:onCreate --> onStart(可多次調用) --> onDestroy。
(2) Context.bindService():Service會經歷
onCreate () -->onBind(),onBind將返回給客戶端一個IBind接口實例,IBind允許客戶端回調服務的方法,比如得到Service運行的狀態或其他操作。這個時候把調用者(Context,例如Activity)會和Service綁定在一起,Context退出了,Service就會調用onUnbind --> onDestroyed相應退出,所謂綁定在一起就共存亡了。
廣播接收器 在Android 中,Broadcast是一種廣泛運用的在應用程式之間傳輸信息的機制。而BroadcastReceiver 是對傳送出來的Broadcast進行過濾接受並回響的一類組件。可以使用BroadcastReceiver 來讓套用對一個外部的事件做出回響。這是非常有意思的,例如,當電話呼入這個外部事件到來的時候,可以利用BroadcastReceiver 進行處理。例如,當下載一個程式成功完成的時候,仍然可以利用BroadcastReceiver 進行處理。BroadcastReceiver不能生成UI,也就是說對於用戶來說不是透明的,用戶是看不到的。BroadcastReceiver通過NotificationManager 來通知用戶這些事情發生了。BroadcastReceiver 既可以在AndroidManifest.xml 中註冊,也可以在運行時的代碼中使用Context.registerReceiver進行註冊。只要是註冊了,當事件來臨的時候,即使程式沒有啟動,系統也在需要的時候啟動程式。各種套用還可以通過使用Context.sendBroadcast將它們自己的Intent Broadcasts廣播給其他應用程式。
內容提供 在Android中,對數據的保護是很嚴密的,除了放在SD卡中的數據,一個套用所持有的資料庫、檔案等內容,都是不允許其他
直接訪問 的。Android當然不會真的把每個套用都做成一座孤島,它為所有套用都準備了一扇窗,這就是Content Provider。套用想對外提供的數據,可以通過派生Content Provider類, 封裝成一枚Content Provider,每個Content Provider都用一個
uri 作為獨立的標識,形如:content://com.xxxxx。所有東西看著像
REST 的樣子,但實際上,它比REST 更為靈活。和REST類似,uri也可以有兩種類型,一種是帶id的,另一種是列表的,但實現者不需要按照這個模式來做,給id的uri也可以返回列表類型的數據,只要調用者明白,就無妨,不用苛求所謂的REST。
平台優勢 開放性 在優勢方面,Android平台首先就是其
開放性 ,開發的平台允許任何
移動終端 廠商加入到Android聯盟中來。顯著的開放性可以使其擁有更多的開發者,隨著用戶和套用的日益豐富,一個嶄新的平台也將很快走向成熟。
開放性對於Android的發展而言,有利於積累人氣,這裡的人氣包括消費者和廠商,而對於消費者來講,最大的受益正是豐富的軟體資源。開放的平台也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。同時也可以通過一些第三方最佳化過的系統通過刷機來實現更好的
用戶體驗 ,如
MIUI ,
Flyme 等。
豐富的硬體 這一點還是與Android平台的開放性相關,由於Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產品。功能上的差異和特色,卻不會影響到
數據同步 、甚至軟體的兼容,如同從
諾基亞 Symbian 風格手機一下改用蘋果iPhone,同時還可將Symbian中優秀的軟體帶到
iPhone 上使用、聯繫人等資料更是可以方便地轉移。
方便開發 Android平台提供給第三方開發商一個十分寬泛、自由的環境,不會受到各種條條框框的阻擾,可想而知,會有多少
新穎別致 的軟體會誕生。但也有其兩面性,血腥、暴力、情色方面的程式和遊戲如何控制正是留給Android難題之一。
Google套用 在網際網路的
Google 已經走過10年度歷史,從搜尋巨人到全面的網際網路滲透,Google服務如地圖、郵件、搜尋等已經成為連線用戶和網際網路的重要紐帶,而Android平台手機將無縫結合這些優秀的Google服務。
相關係統 相關報導 2022年5月18日訊息,據 9to5 Google 報導,谷歌一直在尋求改善其移動作業系統的安全和隱私的普遍看法。谷歌最新推出了“Protected by Android”(受安卓保護)品牌,並且該品牌看起來已準備好進行更廣泛的推廣。