Android開發(fā)技巧:軟硬件的巧妙整合
解構(gòu)Android基本技術(shù)架構(gòu)
首先我們先來看到Android的基本技術(shù)架構(gòu),Android是以Linux為核心,并采用軟件堆迭(software stack)的架構(gòu)延伸發(fā)展的一套軟件平臺與操作系統(tǒng)。根據(jù)下圖可以看出,其基本架構(gòu)分為五層:
*Android Structure by Google
·Linux核心(Linux Kernel):以Linux開發(fā)提供最底層的核心系統(tǒng)服務(wù),包括安全性(Security)、存儲器管理(Memory Management)、進(jìn)程管理(Process Management)、網(wǎng)路堆迭(Network Stack)與驅(qū)動程序模型(Driver Model)。
·Android執(zhí)行環(huán)境(Android Runtime):透過Core Libraries(核心函式庫)以及暫存器型態(tài)的Dalvik Virtual Machine(Dalvik虛擬機(jī)器)來執(zhí)行程序。
·系統(tǒng)函式庫(Library):使用C/C++函式庫的系統(tǒng)組件以供呼叫使用,開發(fā)者可透過上層的應(yīng)用程序框架來運(yùn)用這些功能,這也是主要Android設(shè)備的效能關(guān)鍵。
·應(yīng)用程序框架(Application Framework):被設(shè)計來簡化組件的再運(yùn)用,開發(fā)者能完整存取使用與核心應(yīng)用程序(Core Application)相同的API,應(yīng)用程序可以發(fā)布功能并為其它應(yīng)用程序所使用(需受限于其安全性限制),開發(fā)者也可運(yùn)用同樣的機(jī)制來新增與置換組件。
·應(yīng)用程序(Application):所有Android應(yīng)用程序皆是以Java程序語言編寫,原始就會包含像是Email、簡訊、日歷、地圖、瀏覽器、聯(lián)絡(luò)人等其它應(yīng)用程序,讓用戶一開始就擁有這些基本功能,開發(fā)者也可在此客制其使用接口。
廠商越想要設(shè)計出與原始設(shè)定不同且增強(qiáng)效能的產(chǎn)品,便越需要對這五層架構(gòu)進(jìn)行修改。譬如像是多任務(wù)處理能力(multi-tasking),便可能需要修改包括Linux核心與應(yīng)用程序框架的設(shè)計;而應(yīng)用程序的開發(fā)者更可能需要針對應(yīng)用程序與框架進(jìn)行調(diào)整。由此可見,對Android設(shè)備而言,任何一個功能的置入或是對硬件設(shè)定的細(xì)微更動,都需要對Android系統(tǒng)進(jìn)行從下到上的調(diào)整以達(dá)到最優(yōu)化的效能,而這正是最為困難與需要驗(yàn)證的一環(huán)。
評論