軟體開發分層
『壹』 android中怎麼實現分層開發
ndroid開發筆記2----Android定義和分層介紹
(2010-11-25 14:38:45)
轉載▼
分類: Android
一. 開放手機聯盟
開放手機聯盟,Open Handset Alliance:是美國Google公司與2007 年11 月5 日宣布組建的一個全球性的聯盟組織。這一聯盟將會支持Google發布的Android手機操作系統或者應用軟體,共同開發名為Android的開放源代碼的移動系統。
二. Android含義
Android是一個專門針對移動設備的軟體集,它包括一個操作系統,中間件和一些重要的應用程序。Android SDK提供了在Android平台上使用Java語言進行Android應用開發必須的工具和API介面。
三. Android系統構架
Android分為4層,從高到底分別是應用層、應用框架層、系統運行庫層和Linux內核層:
1.應用層
應用是用Java語言編寫的運行在虛擬機上的程序。Google最開始時就在Android系統中捆綁了一些核心應用,比如E-mail 客戶端、SMS 短消息程序、日歷、地圖、瀏覽器、聯系人管理程序,等等。
2.應用程序框架層
應用程序框架層是編寫常用核心應用所使用的API框架,開發者可以在開發自己特色的應用程序中重復利用這些組件和服務。目前所有的應用程序都是由這些組件和服務構成。
(1) 豐富而又可擴展的視圖(View):可以用來構建應用程序,它包括列表(List)、網格(Grid)、文本框(Text Box)、按鈕(Button),以及可嵌入的Web瀏覽器。
(2) 內容提供器(Content Providers):它可以讓一個應用訪問另一個應用的數據(如聯系人資料庫), 或共享它們自己的數據。
(3) 資源管理器(Resource Manager):提供非代碼資源的訪問,如本地字元串、圖形和布局文件(Layout file)。
(4) 通知管理器(Notification Manager):應用可以在狀態欄中顯示自定義的提示信息。
(5) 活動管理器(Activity Manager):用來管理應用程序生命周期並提供常用的導航退回功能。
(6) 窗口管理器(Window Manager):管理所有的窗口程序。
(7) 包管理器(Package Manager):Android 系統內的程序管理。
3.系統運行庫(C/C++庫以及Android 運行庫)層
程序庫:
Android 包含一些C/C++庫,這些庫能被Android 系統中不同的組件使用。它們通過Android 應用程序框架為開發者提供服務。以下是一些核心庫:
** 系統C庫- 一個從BSD 繼承來的標准C 系統函數庫(libc),它是專門為基於embedded linux的設備定製的。
** 媒體庫- 基於PacketVideo OpenCORE;該庫支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態圖像文件。編碼格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。
** SurfaceManager - 對顯示子系統的管理,並且為多個應用程序提供了2D和3D 圖層的無縫融合。
** LibWebCore - 一個最新的web 瀏覽器引擎用,支持Android 瀏覽器和一個可嵌入的web 視圖。
** SGL - 底層的2D圖形引擎
** 3D libraries - 基於OpenGL ES 1.0 APIs 實現;該庫可以使用硬體3D 加速(如果可用)或者使用高度優化的3D 軟加速。
** FreeType -點陣圖(bitmap)和矢量(vector)字體顯示。
** SQLite - 一個對於所有應用程序可用,功能強勁的輕型關系型資料庫引擎。
運行庫:
Android 包括了一個核心庫,該核心庫提供了JAVA 編程語言核心庫的大多數功能。
Dalvik:
每一個Android 應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik 被設計成一個設備可以同時高效地運行多個虛擬系統。Dalvik 虛擬機執行(.dex)的Dalvik 可執行文件,該格式文件針對小內存使用做了優化。同時虛擬機是基於寄存器的,所有的類都經由JAVA 編譯器編譯,然後通過SDK中的"dx" 工具轉化成.dex 格式由虛擬機執行。
4. Linux內核層
Android系統平台是基於優化了的Linux內核,是其系統平台的核心。它提供諸如內存管理、進程管理、設備驅動等服務,同時也是作為硬體與軟體棧之間的抽象層,用來做相互溝通的工作.
四. 進程間通信
Android 採用OpenBinder
『貳』 單片機程序裡面,經常聽說底層,中間層,應用層,什麼意思 51單片機也需要這么分層嗎
一般當程序比較大、功能比較繁多,需要進行結構化程序設計的時候,才會進行分層。分層的好處是可以將應用與硬體剝離,當硬體發生變更(移植,設計更改)時只需改動底層以及少量中間層;當需求發生變更時只需改動上層以及少量中間層。
底層一般是直接訪問硬體的介面,以串口而言如寄存器操作函數;中間層一般是在底層與上層之間進行數據及信息的轉換,以串口而言如封包/拆包/消息產生/消息響應;上層一般面向應用,在很少考慮硬體實現的前提下以通用的方式實現所需的功能,以串口而言如printf。
分這么多層是為了不同程度的開發人員可以同期工作的原因。比如說,底層就僱傭一個特別熟悉晶元和硬體的人做,中間層大概要找比較熟悉應用的人來把硬體功能來做擴展,應用層就隨便抓一把人來開發了。
這樣,多個項目可以公用一個硬體層,有兩到三組中間層的支持工程師,然後每個項目各有一組應用工程師就好了。51也可以這樣做,這和效率無關,層做得好,執行效率不會影響很大,開發效率提高很多。
(2)軟體開發分層擴展閱讀:
單片機的應用:
1,通用專用:
這是按單片機適用范圍來區分的。例如,80C51是通用型單片機,它不是為某種專用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
2,線型應用:
這是按單片機是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接,另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積。
3,控制型應用:
這是按照單片機大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型,通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是唯一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。
『叄』 從底層硬體到上層應用,嵌入式軟體的開發可以分為哪幾類
從底層硬體到上層應用,嵌入式軟體的開發可以分為以下三類:
1、嵌入式操作系統開發
嵌入式操作系統EOS(Embedded Operating System)是一種被廣泛使用的系統軟體。過去,它主要用於工業控制和國防系統領域。 EOS負責分配和調度嵌入式系統的所有軟體和硬體資源,控制和協調並發活動。
它必須體現其所在系統的特徵,並能夠通過載入和卸載某些模塊來實現系統所需的功能。嵌入式操作系統通常以商業操作為主。自1980年代以來,商業嵌入式操作系統已開始蓬勃發展。
2、嵌入式支撐軟體開發
支撐軟體是用於幫助和支撐軟體開發的軟體,通常包括資料庫和開發工具,其中資料庫是最重要的。隨著移動通信技術的進步,人們對移動數據處理提出了更高的要求。嵌入式資料庫技術已受到學術,工業,軍事和民用領域的關注。
嵌入式移動資料庫或簡稱為移動資料庫(EMDBS)是支持移動計算或特定計算模型的資料庫管理系統。資料庫系統與操作系統和特定的應用程序集成在一起,並在各種智能嵌入式設備或移動設備上運行。
3、 嵌入式應用軟體開發
嵌入式應用軟體是針對特定應用領域,基於某一固定的硬體平台,用來達到用戶預期目標的計算機軟體。由於用戶任務可能有時間和精度上的要求,因此有些嵌入式應用軟體需要特定嵌入式操作系統的支持。
嵌入式應用軟體和普通應用軟體有一定的區別,它不僅要求其准確性、安全性和穩定性等方面能夠滿足實際應用的需要,而且還要盡可能地進行優化,以減少對系統資源的消耗,降低硬體成本。
(3)軟體開發分層擴展閱讀:
嵌入式軟體開發的特點:
近年來,隨著計算機技術的迅猛發展,基於通信技術的信息技術以及Internet的廣泛應用,傳統的控制學科正在發生變化,並出現了許多新的增長點。
嵌入式系統涉及系統的最低層,晶元層的信息處理和控制。從某種意義上說,理解和控制這些「微觀」世界是控制的真正目的。就設計思想和總體架構而言,通常意義上的嵌入式系統和控制系統之間存在許多差異。
在嵌入式系統和開發環境方面,仍然存在許多仍在研究和開發中的問題,例如嵌入式系統的硬體和軟體協同設計方法;多目標、多任務微內核嵌入式操作系統;分布式嵌入式系統實時問題,分布式計算,分布式信息交互和綜合處理;嵌入式系統的多目標交叉編譯和調試工具的研究等。
『肆』 什麼是模式、框架軟體為什麼要分層
模式:就是解決某一類問題的方法論。把解決某類問題的方法總結歸納到理論高度,就是模式。
Alexander有一個經典的定義,每個模式都描述了環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,可以無數次地使用那些已有的解決方案,無需在重復相同的工作。模式有不同的領域,建築領域有建築模式,軟體設計領域也有設計模式。當一個領域逐漸成熟的時候,自然會出現很多模式。
框架:就是某種應用的半成品,是一組組件,供選用完成的系統。
軟體分層的原因是為了實現"高內聚、低耦合"。把問題劃分開來各個解決,易於控制,易於延展,易於分配資源。
需要注意的是,人雖然在創造性方面有絕對優勢,但是在精確性、持久性、效率、質量上是無法比擬機器的。所以我們希望在軟體系統構建過程中,人和機器發揮各自的長處,也就是說,讓人來扮演架構師的角色,而讓機器來扮演程序施工者的角色。
『伍』 軟體開發中經常提到一個分布式這個詞,請問什麼是分布式開發
現在的軟體開發都講究個"層"的意思.
分布式開發將一個系統分為三個層次:客戶端應專用程屬序,應用程序伺服器,後台資料庫。客戶端提出請求,應用伺服器接受請求並處理然後返回數據給客戶端,後台資料庫當然是提供數據。多半是用於WEB開發.這樣的分層開發有很多 好處..我就不多說了...
『陸』 管理軟體開發工程師職位分層
公司行業細分職位列表 化工集團公司職位 技術部→技術部部長→研發組組長→技術組組長→測試組組長 物控部→物控部部長→采購組組長→收料組組長→發貨組組長→倉儲組組長 生產部→生產部部長→計劃員→調度組組長→質量管理部→質量管理部部長→質檢組組長→認證組組長→環境組組長 設備部→設備部部長→技術組組長 保險公司職位 車險部→車險部經理→車險營銷主管→承保主管→理賠主管 業務管理部→業務管理部經理→個人保險營銷主管→團體保險營銷主管→中介、代理主管 再保險部→再保險部經理→核保主管 客戶服務部→客戶服務部經理→客戶服務主管 貿易公司職位 成套中心→成套中心經理→投標主管→項目實施主管 市場開發中心→市場開發中心經理→品牌運作主管→營銷主管→客戶關系主管 貿易運作中心→貿易運作中心經理→客戶服務主管→配載主管 品質管理中心→品質管理中心經理→質量工程師 物流公司 采購部→采購部經理→采購主管 物流部→物流部經理→物流規劃主管→倉儲主管→貨運主管 物業公司職位 工程部→工程部經理→物料采購員→物料調配主管→設備技術主管 物業服務部→物業服務部經理→計劃主管→收款主管→關系協調主管 物業管理處→物業管理處經理→工程組組長→環境組組長→護衛組組長 軟體公司職位 客戶工程中心→客戶工程中心經理→客戶服務工程師 項目管理中心→項目管理中心經理→計劃主管→調配主管→項目開發工程師 研發中心→研發中心經理→軟體工程師→測試工程師→文檔工程師 系統方案中心→系統方案中心經理→系統方案工程師 設計公司職位 經營部→部長→經營管理專員 項目管理部→部長→項目管理專員→計劃統計專員→信息管理專員 技術質量部→部長→技術管理專員→質量管理專員 項目設計組→組長→首席設計師→設計師
『柒』 一個標準的程序員,它的代碼應該是怎樣分層次的
每個代碼的層次都是不一樣的,都是非常縝密的,除此之外,不光是要會寫代碼,還要成為一個好的程序員才是最重要的。
程序員,隨著計算機和軟體行業的發展,基數越來越大。如何在茫茫的程序員中脫穎而出呢,來看看作為一個好的程序員的標准你都佔了幾條?
1.經常和其他的人交流
什麼時間做什麼事情,做事情按照一定步驟來,好的程序員從來不會在時間緊任務多的時候手忙腳亂。
7. 保持謙虛
技術永無止境,技術范圍很廣,技術水很深。即使在一個領域是專家,到了其他領域還是需要其他人的指點。好的程序員總是把姿態放低,虛心請教。
『捌』 深入.net平台的軟體系統分層開發
一般是三層結構,即實體類層(Model)、邏輯層(BLL)、數據操作層(DAL),(幾乎開發中都有表示層,所以表示層不被列在三層之中)還有一些有介面層的開發,層次會相對多些。但現在很少有公司的.NET編碼嚴格按照三層結構來開發了,一般都只用實體層和數據操作層。因三層結構比較麻煩,在頁面較多操作較為頻繁的開發中,編寫邏輯層很麻煩,代碼量大,維護和修改起來也會比較繁瑣,所以在實際操作中BLL層大多是不用的。
『玖』 什麼是典型的軟體三層結構軟體設計為什麼要分層軟體分層有什麼好處
軟體的三層結構一般指的是 MVC
M 是model的簡稱是指實體層
V是view的簡稱是指視圖層
C是Controller的簡稱是指控制層
具體可查看網路http://ke..com/link?url=_7Iy6spb037lZr5nJHHv-jGRFhxpmck4PCHz6mrXF_-_6M
MVC的優點
1.低耦合性
視圖層和業務層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個應用的業務流程或者業務規則的改變只需要改動MVC的模型層即可。因為模型與控制器和視圖相分離,所以很容易改變應用程序的數據層和業務規則。
2.高重用性和可適用性
隨著技術的不斷進步,現在需要用越來越多的方式來訪問應用程序。MVC模式允許你使用各種不同樣式的視圖來訪問同一個伺服器端的代碼。它包括任何WEB(HTTP)瀏覽器或者無線瀏覽器(wap),比如,用戶可以通過電腦也可通過手機來訂購某樣產品,雖然訂購的方式不一樣,但處理訂購產品的方式是一樣的。由於模型返回的數據沒有進行格式化,所以同樣的構件能被不同的界面使用。例如,很多數據可能用HTML來表示,但是也有可能用WAP來表示,而這些表示所需要的命令是改變視圖層的實現方式,而控制層和模型層無需做任何改變。
3.較低的生命周期成本
MVC使開發和維護用戶介面的技術含量降低。
4.快速的部署
使用MVC模式使開發時間得到相當大的縮減,它使程序員(Java開發人員)集中精力於業務邏輯,界面程序員(HTML和JSP開發人員)集中精力於表現形式上。
5.可維護性
分離視圖層和業務邏輯層也使得WEB應用更易於維護和修改。
6.有利於軟體工程化管理
由於不同的層各司其職,每一層不同的應用具有某些相同的特徵,有利於通過工程化、工具化管理程序代碼。