編輯:關於Android編程
Android允許提供不同的硬件平台和驅動支持Android的運行。硬件抽象層(Hardware Abstraction Layer)提供了再Android平台軟件棧和硬件設備之間的標准接口。另外,Android操作系統是開源的,可以幫助你快速的開發軟件,讓軟硬件協同工作。
為了保證Android設備的高質量和對用戶的統一用戶體驗,必須通過兼容測試包(Compatibility test suite). CTS能搞保證任何人開發的設備符合統一的標准,並且應用可以可靠的運行,並且有著良好的體驗。
在你將Android移植到你的硬件設備之前,對android在更高的層次上如何工作有一個了解非常重要。因為驅動和HAL和Android系統的其他部分的源碼有很多交互,因此理解這部分對你學習整個AOSP(Android Open Source Project)源碼的其他部分十分重要。下面這張圖說明了再系統層次Android是如何工作的。
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHAgYWxpZ249"center">圖1.Android系統架構
這一層是大部分應用軟件開發者需要關心的。這裡需要明白對於開發者可用的應用編程接口(API),許多接口和下層的HAL接口提供的功能相同,所以這部分可以幫助了解如何實現驅動。
Binder進程間通信機制允許應用程序框架跨進程調用Android系統服務提供的功能。這基本上允許高層的框架API可以和Android系統服務進行交互。從應用框架的層次看,所有的通信對開發者是隱藏的,事情看起來“工作的非常好”。
應用框架層API提供的大部分功能需要和系統服務進行通信來訪問底層的硬件。服務被人為的分為不同的功能模塊,這些模塊完成不同的功能,比如窗口管理器,搜索服務和通知管理器(Notification Manager).系統服務被分在兩個組裡:系統(system)和多媒體(media).system(系統)服務包括窗口和通知管理器等。多媒體服務包括所有播放和錄制多媒體相關的服務。
HAL為Android系統調用底層驅動提供了一個標准的接口,同時屏蔽了底層驅動和硬件的具體實現。你必須為產品上的硬件實現相應的硬件抽象接口或驅動。Android並不強制要求驅動和HAL實現的標准接口,你可以根據你產品的實際狀況作出調整。然而,你必須保證所有的HAL接口實現可以正確的和底層硬件交互。所有的HAL實現都被編譯成為一個動態鏈接庫。
開發Android設備驅動和開發標准的Linux設備驅動相同。Android使用了一個特殊版本的Linux,添加了一些設備驅動比如wakelock,一個內存管理系統,Binder進程間通信驅動等對嵌入式平台非常重要的功能。這些新添加的功能主要和系統功能相關。你可以使用任何版本的內核,只要支持特定的功能,例如binder驅動。然而,我們推薦使用最新版的AndroidKernel。
此篇博客,我們通過2種方式來了解下okhttp的文件上傳至服務器ps一下,還有一種就是添加params參數,生成post提交時的分塊request(這裡就不列出實例效果了
大家好,由於最近會有對智能硬件相關的開發需求,所以最近這些天分享的博文也就大致掛鉤智能硬件了,像上一篇的藍牙分享,相信很多讀者已經看過了,那麼今天我為大家帶來Androi
I9300相信已經有很多人入手了,不知道大家知道多少I9300的使用技巧在這裡總結了一下,希望對大家有幫助。如果還有什麼不全的地方,歡迎在下方留言。1. 鎖
在由Eclipse轉到Android Studio之後,第一個讓我感到困惑的是build.gradle這個文件了,實在話,當時我並不知道這麼寫是幾個意思。 ap