Android初探(轉自《第一行程式碼》)
為了讓你能夠更好地理解Android系統是怎麼工作的,我們先來看一下它的系統架構。Android大致可以分為四層架構,五塊區域。
1 . Linux核心層 Android系統是基於Linux 2.6核心的,這一層為Android裝置的各種硬體提供了底層的驅動,如顯示驅動、音訊驅動、照相機驅動、藍芽驅動、Wi-Fi驅動、電源管理等。
2 . 系統執行庫層 這一層通過一些C/C++庫來為Android系統提供了主要的特性支援。如SQLite庫提供了資料庫的支援,OpenGL|ES庫提供了3D繪圖的支援,Webkit庫提供了瀏覽器核心的支援等。
同樣在這一層還有Android執行時庫,它主要提供了一些核心庫,能夠允許開發者使用Java語言來編寫Android應用。另外Android執行時庫中還包含了Dalvik虛擬機器,它使得每一個Android應用都能執行在獨立的程式當中,並且擁有一個自己的Dalvik虛擬機器例項。相較於Java虛擬機器,Dalvik是專門為移動裝置定製的,它針對手機記憶體、CPU效能有限等情況做了優化處理。
3 . 應用框架層 這一層主要提供了構建應用程式時可能用到的各種API,Android自帶的一些核心應用就是使用這些API完成的,開發者也可以通過使用這些API來構建自己的應用程式。
4 . 應用層 所有安裝在手機上的應用程式都是屬於這一層的,比如系統自帶的聯絡人、簡訊等程式,或者是你從Google Play上下載的小遊戲,當然還包括你自己開發的程式。
四大元件 Android系統四大元件分別是活動(Activity)、服務(Service)、廣播接收器(Broadcast Receiver)和內容提供器(ContentProvider)。
其中活動是所有 Android應用程式的門面, 凡是在應用中你看得到的東西,都是放在活動中的。而服務就比較低調了,你無法看到 它,但它會一直在後臺默默地執行,即使使用者退出了應用,服務仍然是可以繼續執行的。 廣播接收器可以允許你的應用接收來自各處的廣播訊息,比如電話、簡訊等,當然你的 應用同樣也可以向外發出廣播訊息。內容提供器則為應用程式之間共享資料提供了可 能,比如你想要讀取系統電話簿中的聯絡人,就需要通過內容提供器來實現。
五塊區域
豐富的系統控制元件 Android系統為開發者提供了豐富的系統控制元件,使得我們可以很輕鬆地編寫出漂亮 的介面。當然如果你品味比較高,不滿足於系統自帶的控制元件效果,也完全可以定製屬於 自己的控制元件。
SQLite資料庫 Android系統還自帶了這種輕量級、運算速度極快的嵌入式關係型資料庫。它不僅 支援標準的 SQL語法,還可以通過 Android封裝好的 API進行操作,讓儲存和讀取資料 變得非常方便。
地理位置定位 移動裝置和 PC相比起來,地理位置定位功能應該可以算是很大的一個亮點。現在 的 Android手機都內建有 GPS,走到哪兒都可以定位到自己的位置,發揮你的想象就可 以做出創意十足的應用,如果再結合上功能強大的地圖功能,LBS這一領域潛力無限。
強大的多媒體 Android系統還提供了豐富的多媒體服務,如音樂、視訊、錄音、拍照、鬧鈴等等, 這一切你都可以在程式中通過程式碼進行控制,讓你的應用變得更加豐富多彩。
感測器 Android手機中都會內建多種感測器,如加速度感測器、方向感測器等,這也算是 移動裝置的一大特點。通過靈活地使用這些感測器,你可以做出很多在 PC上根本無法 實現的應用。 既然有 Android這樣出色的系統給我們提供了這麼豐富的工具,你還用擔心做不出優秀 的應用嗎?好了,純理論的東西也就介紹到這裡,我知道你已經迫不及待想要開始真正的開 發之旅了,那我們就開始啟程吧!
相關文章
- Android JNI 程式碼自動生成Android
- Android Studio 藍芽 示例程式碼(轉)Android藍芽
- iOS 初探程式碼混淆(OC)iOS
- 初探Matrix Android ApkCheckerAndroidAPK
- Android Transform + ASM 初探AndroidORMASM
- Android 動畫初探Android動畫
- 第一行程式碼——書的理解行程
- Babylon-AST初探-程式碼生成(Create)AST
- Android Kotlin 協程初探AndroidKotlin
- Android Flux架構初探AndroidUX架構
- 【轉】IDA Pro 初探
- Java初探Oracle(轉)JavaOracle
- SAP HUM事務程式碼 HUMAT 之初探
- Android Adobe Reader 任意程式碼執行分析(附POC)Android
- “我,不懂程式碼,36歲轉行開發”
- matlab程式碼轉exe可執行軟體Matlab
- TensorFlow Lite for Android 初探(附demo)Android
- 初探小程式
- 我的第一個Android應用程式Android
- Android開機自啟動程式Android
- Azure DevOps Pipelines執行RobotFramework自動化程式碼devFramework
- 第一個Spring程式(程式碼篇)Spring
- Android上kcp協議使用初探Android協議
- Android Jetpack - Emoji表情符號初探AndroidJetpack符號
- Android開發,《第一行程式碼(第三版)》呼叫攝像頭崩潰解決方法Android行程
- Android UsbDeviceManager 程式碼分析Androiddev
- android HAL層程式碼Android
- 下載Android程式碼Android
- Babylon-AST初探-程式碼更新&刪除(Update & Remove)ASTREM
- 程式碼安全之程式碼混淆及加固(Android)?Android
- Android鬼點子 100行程式碼,搞定柱狀圖!Android行程
- 【Android】一行程式碼設定Shape Selector樣式Android行程
- 一行程式碼實現Android的跨程式呼叫與通訊行程Android
- Redux原始碼初探Redux原始碼
- android程式和執行緒Android執行緒
- 【轉】Kinect嚐鮮(1)——第一個程式
- canvas初探實踐-第一篇Canvas
- 第一段JavaScript程式碼JavaScript
- Android 程式碼規範大全Android