移動開發人員必須知道的Android架構推薦,開發人員android
一些總結出來的Android快速開發架構,全部都是開源架構,附帶項目地址,是開發學習的絕佳資料。
thinkAndroid項目
github地址:https://github.com/white-cat/ThinkAndroid
功能:ThinkAndroid是一個免費的開源的、簡易的、遵循Apache2開源協議發布的Android開發架構,其開發宗旨是簡單、快速的進行 Android應用程式的開發,包含Android mvc、簡易sqlite orm、ioc模組、封裝Android httpclitent的http模組, 具有快速構建檔案快取功能,無需考慮快取檔案的格式,都可以非常輕鬆的實現緩衝,它還基於檔案快取模組實現了圖片緩衝功能, 在android中載入的圖片的時候,對oom的問題,和對載入圖片錯位的問題都輕易解決。他還包括了一個手機開發中經常應用的工具 + 生產力類, 如日誌管理,設定檔管理,android下載器模組,網路切換檢測等等工具。
開發人員QQ群:230206891
優點:功能看起來比較完善。
缺點:這個是個人寫的,從2013年就停止維護了,沒有項目文檔。
KJFrameForAndroid架構
github地址:https://github.com/kymjs/KJFrameForAndroid
功能:一個android的orm 和 ioc 架構。同時封裝了android中的Bitmap與Http操作的架構,使其更加簡單易用; KJFrameForAndroid開發架構的設計思想是通過封裝Android原生SDK中複雜的複雜操作而達到簡化Android應用級開發,最終實現快速而又安全的開發APP。總共分為五大模組:UILibrary,UtilsLibrary,HttpLibrary,BitmapLibrary,DBLibrary。
開發人員QQ群:257053751
優點:功能比較全面,代碼效率很高,文檔完善,有項目demo,借鑒了很多大型架構經驗。
缺點:架構的Activity部分最低,項目交流平台沒多少人說話(難道大神都是不說話的?)
AndroidAnnotations項目
github地址:https://github.com/excilys/androidannotations
功能:完全註解架構,一切皆為註解:聲明控制項,繫結控制項,設定監聽,setcontentview,長按事件,非同步線程,全部通過註解實現。
優點:完全的註解,使開發起來更加便利,程式員寫的代碼也更少。
缺點:文檔是全英文的加上功能比較少沒有具體研究,由於一切都是註解,感覺效率不高,不過根據官方介紹說並不是使用的反射載入,所以效率比一般註解高很多。
xUtils
github地址:https://github.com/wyouflf/xUtils
功能:xUtils 包含了很多實用的android工具。支援大檔案上傳,更全面的http請求協議支援(10種謂詞),擁有更加靈活的ORM,更多的事件註解支援且不受混淆影響。
開發人員QQ群:257323060
優點:支援大檔案上傳,效率較高。
缺點:沒有項目文檔,代碼邏輯不容易理解,不適合學習。
Afinal
項目地址:https://github.com/yangfuhai/afinal
功能:一個android的ioc,orm架構,內建了四大模組功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,我們可以通過註解的方式進行綁定ui和事件。通過finalBitmap,我們可以方便的載入bitmap圖片,而無需考慮oom等問題。通過finalDB模組,我們一行代碼就可以對android的sqlite資料庫進行增刪改查。通過FinalHttp模組,我們可以以ajax形式請求http資料。
優點:功能比較全面,文檔完善,代碼效率比較高。
缺點:沒有項目demo,架構的時間比較久,代碼冗餘比較多(這也是無可避免的),文檔比較老跟不上代碼更新進度
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.基本上所有控制項就掌握了.