Android應用UI架構,androidui架構
這個標題聽起來可能有點大,其實這裡主要就是討論一個應用程式的UI組件,是全用Activity還是全用Fragment,或者是二者皆有,以及使用Activity和Fragment的一些注意事項。
Activity or Fragment
從API 11,Honeycomb開始,Google在Android之中加入了Fragment,一個輕量級的,可複用的,模組化的UI組件,並且官方也極力的推薦要儘可能的使用Fragment實現UI,盡量避免使用Activity,但是官方並沒有詳盡的解析為什麼要這樣做,因此,引發了很多人的困惑和網路上的爭論
點擊閱讀全文
一般的android開發都用到了系統架構什層?
開發一個程式,android的系統架構是層層相扣,不能分開的。
應用程式層:
這個層主要指的就是用java語言編寫的運行在虛擬機器上的程式,Google在最開始時就 在android系統中捆綁了一些核心的應用(核心應用的編寫必須使用應用程式層序架構層的API架構),例如你android手機中SMS發送短訊息的程式,通訊錄等等。
應用程式架構層:
指的就是開發時所需要的API架構,開發人員是在遵守該架構的原則上,調用他們的,開發自己所需要的程式。
系統運行庫層:
用於支援應用程式框架層的各個組件的。就是說當開發人員使用android應用程式框架層時,android系統會通過一些C/C++庫來支援對我們使用的各個組件,使其能更好地為開發人員服務。
linux核心層:
android的核心系統服務如安全性、記憶體管理、進程管理、網路通訊協定棧和驅動模型等都依賴於Linux2.6核心,Linux核心同時也作為硬體和軟體棧之間的抽象層。
因此,你開發的程式是運行在應用程式層,開發中寫代碼調用的包,是基於應用程式框架層,而在應用程式框架中的各個組件是需要系統運行庫的支援的,例如,你要登陸查看的資訊就必須訪問到SQLite資料庫,SQLite就位於系統運行庫,再有,你登入要輸入資訊,肯定需要鍵盤驅動的支援,而各種驅動是依賴Linux核心的。
android 五大應用開發架構是什
android應用開發架構是 Application Framework. 其系統架構由5部分組成,分別是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。第二部分將詳細介紹這5個部分。下面自底向上分析各層。
Android架構
1、Linux Kernel
Android基於Linux 2.6提供核心系統服務,例如:安全、記憶體管理、進程管理、網路堆棧、驅動模型。Linux Kernel也作為硬體和軟體之間的抽象層,它隱藏具體硬體細節而為上層提供統一的服務。 如果你學過電腦網路知道OSI/RM,就會知道分層的好處就是使用下層提供的服務而為上層提供統一的服務,屏蔽本層及以下層的差異,當本層及以下層發生了變化不會影響到上層。也就是說各層各盡其職,各層提供固定的SAP(Service Access Point),專業點可以說是高內聚、低耦合。 如果你只是做應用開發,就不需要深入瞭解Linux Kernel層。
2、Android Runtime
Android包含一個核心庫的集合,提供大部分在Java程式設計語言核心類庫中可用的功能。每一個Android應用程式是Dalvik虛擬機器中的執行個體,運行在他們自己的進程中。Dalvik虛擬機器設計成,在一個裝置可以高效地運行多個虛擬機器。Dalvik虛擬機器可執行檔格式是.dex,dex格式是專為Dalvik設計的一種壓縮格式,適合記憶體和處理器速度有限的系統。 大多數虛擬機器包括JVM都是基於棧的,而Dalvik虛擬機器則是基於寄存器的。兩種架構各有優劣,一般而言,基於棧的機器需要更多指令,而基於寄存器的機器指令更大。dx 是一套工具,可以將 Java .class 轉換成 .dex 格式。一個dex檔案通常會有多個.class。由於dex有時必須進行最佳化,會使檔案大小增加1-4倍,以ODEX結尾。 Dalvik虛擬機器依賴於Linux 核心提供準系統,如線程和底層記憶體管理。
3、Libraries
Android包含一個C/C++庫的集合,供Android系統的各個組件使用。這些功能通過Android的應用程式架構(application framework)暴露給開發人員。下面列出一些核心庫: 系統C庫--標準C系統庫(libc)的BSD衍生,調整為基於嵌入式Linux裝置 媒體庫--基於PacketVideo的OpenCORE。這些庫支援播放和錄製許多流行的音頻和視頻格式,以及靜態影像檔,包括MPEG4、 H.264、 MP3、 AAC、 AMR、JPG、 PNG 介面管理--管理訪問顯示子系統和無縫組合多個應用程式的二維和三維圖形層 LibWebCore--新式的Web瀏覽器引擎,驅動Android 瀏覽器和內嵌的web視圖 SGL--基本的2D圖形引擎 3D庫--基於OpenGL ES 1.0 APIs的實現。庫使用硬體3D加速或包含高度最佳化的3D軟體光柵 FreeType --位元影像和向量字型渲染 SQLite --所有應用程式都可以使用的強大而輕量級的關聯式資料庫引擎
4、Application Framework
通過提供開放的開發平台,Android使開發人員能夠編製極其豐富和新穎的應用程式。開發人員可以自由地利用裝置硬體優勢、訪問位置資訊、運行後台服務、設定鬧鐘、向狀態列添加通知等等,很多很多。 開發人員可以完全使用核心應用程式所使用的架構APIs。應用程式的體繫結構旨......餘下全文>>