Android-BaseLine基礎性開發架構,androidbaseline
最近總結了一個比較基礎性的Android快速開發架構Android-BaseLine,Android-BaseLine實現的功能遠遠沒有其他架構多,一個很好的架構不應該顯得太過臃腫,很多功能一般情況下我們可能用不到,真正適合自己的架構還是應該在開發的過程中一步步總結和提煉,所以Android-BaseLine只是提供了一般的APP開發會需要的準系統。經曆了幾次重構,廢棄了原先自己設計的一些功能模組,使用了業界比較好用的一些架構,同時借鑒了一些架構的思想,打造了Android-BaseLine這樣一個輕量級的開發架構。
Github地址:https://github.com/hiphonezhu/Android-BaseLine
Android-BaseLine架構, 提供以下基礎功能
1、升級Volley架構, 增加對多附件上傳及進度更新回調的支援
2、提供統一的網路請求商務邏輯架構, 使用EventBus和Volley協作完成
3、提供統一的非同步耗時任務執行架構, 使用EventBus作為通知中樞來協作完成
4、提供日誌管理架構, 對日誌儲存的大小、數量、格式做了規範處理, 支援列印層級的控制等
5、提供全域異常處理架構, 使用者崩潰資訊可以通過Email及時發送到開發人員手中
6、提供統一的資料庫提供者, 支援多線程並發訪問
7、SharedPreferences設定檔通過資料庫來儲存, 避免部分手機無法儲存問題, 使用方法與原生API保持一致
8、基類Activity提供View的註解和事件綁定架構, 以及統一的Toast、ProgressDialog等UI組件
9、基類Adapter, 提供控制項複用的管理機制
10、支援App ANR時, 可以通過Email及時發送ANR的trace到開發人員手中
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。應用程式的體繫結構旨......餘下全文>>
android開發架構
json解析可以用google的gson包.
網路請求和緩衝機制(一般是指圖片緩衝吧)可以看看volley.
資料庫比較簡單,android內建的已經算是封裝過了.不過你可以看看Afinal裡面的FinalDb.
UI方面就沒有了.都是自己寫的.掌握好view和viewgroup.基本上所有控制項就掌握了.