主要總結(jié)了7個好用的android 開發(fā)框架推薦給你:
為旬陽等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及旬陽網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站制作、旬陽網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
一、 Afinal
Afinal是一個Android的ioc,orm框架,內(nèi)置了四大模塊功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,我們可以通過注解的方式進行綁定ui和事件。通過finalBitmap,我們可以方便的加載bitmap圖片,而無需考慮oom等問題。通過finalDB模塊,我們一行代碼就可以對android的sqlite數(shù)據(jù)庫進行增刪改查。通過FinalHttp模塊,我們可以以ajax形式請求http數(shù)據(jù)。
功能:
一個android的ioc,orm框架,內(nèi)置了四大模塊功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,我們可以通過注解的方式進行綁定ui和事件。通過finalBitmap,我們可以方便的加載bitmap圖片,而無需考慮oom等問題。通過finalDB模塊,我們一行代碼就可以對android的sqlite數(shù)據(jù)庫進行增刪改查。通過FinalHttp模塊,我們可以以ajax形式請求http數(shù)據(jù)。
優(yōu)點:功能比較全面,文檔完善,代碼效率比較高。
缺點:沒有項目demo,框架的時間比較久,代碼冗余比較多(這也是無可避免的),文檔比較老跟不上代碼更新進度。
二、 xUtils
xUtils:可以說是Afinal的升級版。
xUtils 包含了很多實用的android工具。
xUtils 支持大文件上傳,更全面的http請求協(xié)議支持(10種謂詞),擁有更加靈活的ORM,更多的事件注解支持且不受混淆影響...
xUitls 最低兼容android 2.2 (api level 8)
三、 ThinkAndroid
ThinkAndroid是一個免費的開源的、簡易的、遵循Apache2開源協(xié)議發(fā)布的Android開發(fā)框架,其開發(fā)宗旨是簡單、快速的進行Android應(yīng)用程序的開發(fā),包含Android
mvc、簡易sqlite orm、ioc模塊、封裝Android
httpclitent的http模塊,具有快速構(gòu)建文件緩存功能,無需考慮緩存文件的格式,都可以非常輕松的實現(xiàn)緩存,它還基于文件緩存模塊實現(xiàn)了圖片緩存功能,在android中加載的圖片的時候,對oom的問題,和對加載圖片錯位的問題都輕易解決。他還包括了一個手機開發(fā)中經(jīng)常應(yīng)用的實用工具類,如日志管理,配置文件管理,android下載器模塊,網(wǎng)絡(luò)切換檢測等等工具
四、 LoonAndroid
如果你想看ui方面的東西,這里沒有,想要看牛逼的效果這里也沒有。這只是純實現(xiàn)功能的框架,它的目標是節(jié)省代碼量,降低耦合,讓代碼層次看起來更清晰。整個框架一部分是網(wǎng)上的,一部分是我改的,為了適應(yīng)我的編碼習慣,還有一部分像orm完全是網(wǎng)上的組件。在此感謝那些朋友們。
整個框架式的初衷是為了偷懶,之前都是一個功能一個jar,做項目的時候拉進去,這樣對于我來說依然還是比較麻煩。最后就導(dǎo)致我把所有的jar做成了一個工具集合包。
有很多框架都含有這個工具集合里的功能,這些不一定都好用,因為這是根據(jù)我個人使用喜歡來實現(xiàn)的,如果你們有自己的想法,可以自己把架包解壓了以后,源碼拉出來改動下。
目前很多框架都用到了注解,除了androidannotations沒有入侵我們應(yīng)用的代碼以外,其他的基本上都有,要么是必須繼承框架里面的activity,要么是必須在activity的oncreat里面調(diào)用某個方法。
整個框架式不同于androidannotations,Roboguice等ioc框架,這是一個類似spring的實現(xiàn)方式。在整應(yīng)用的生命周期中找到切入點,然后對activity的生命周期進行攔截,然后插入自己的功能。
五、 KJFrameForAndroid
KJFrameForAndroid 又叫KJLibrary,是一個android的orm 和 ioc
框架。同時封裝了android中的Bitmap與Http操作的框架,使其更加簡單易用;
KJFrameForAndroid的設(shè)計思想是通過封裝Android原生SDK中復(fù)雜的復(fù)雜操作而達到簡化Android應(yīng)用級開發(fā),最終實現(xiàn)快速而又安全的開發(fā)APP。我們提倡用最少的代碼,完成最多的操作,用最高的效率,完成最復(fù)雜的功能。
功能:
一個android的orm 和 ioc 框架。同時封裝了android中的Bitmap與Http操作的框架,使其更加簡單易用;
KJFrameForAndroid開發(fā)框架的設(shè)計思想是通過封裝Android原生SDK中復(fù)雜的復(fù)雜操作而達到簡化Android應(yīng)用級開發(fā),最終實現(xiàn)快速而又安全的開發(fā)APP。總共分為五大模塊:UILibrary,UtilsLibrary,HttpLibrary,BitmapLibrary,DBLibrary。
六、 dhroid
dhroid 是基于android 平臺,
極速開發(fā)框架,其核心設(shè)計目標是開發(fā)迅速、代碼量少、學習簡單、功能強大、輕量級、易擴展.使你更快,更好的開發(fā)商業(yè)級別應(yīng)用
功能:
1.Ioc容器: (用過spring的都知道)視圖注入,對象注入,接口注入,解決類依賴關(guān)系
2.Eventbus: android平臺事件總線框架,獨創(chuàng)延時事件,事件管理輕松
3.Dhnet: 網(wǎng)絡(luò)http請求的解決方案,使用簡單,減少代碼,自帶多種網(wǎng)絡(luò)訪問緩存策略
4.adapter模塊: 數(shù)據(jù)綁定輕松,不用寫多余的adapter,天生網(wǎng)絡(luò)支持(一行代碼搞定加載,刷新問題)
5.DhDb: android中sqlite的最輕量orm框架(增刪改查輕松搞定)
6.Perference: android自帶Perference 升級版,讓你的Perference更強大,更方便
工具集合 JSONUtil(安全處理json),ViewUtil(數(shù)據(jù)綁定更快) ThreadWorker(異步任務(wù)工具)...
七、 SmartAndroid
SmartAndroid是一套給
Android開發(fā)者使用的應(yīng)用程序開發(fā)框架和工具包。它提供一套豐富的標準庫以及簡單的接口和邏輯結(jié)構(gòu),其目的是使開發(fā)人員更快速地進行項目開發(fā)。使用
SmartAndroid可以減少代碼的編寫量,并將你的精力投入到項目的創(chuàng)造性開發(fā)上。
功能:
SmartAndroid 擁有全范圍的類庫,可以完成大多數(shù)通常需要的APP開發(fā)任務(wù),包括:
異步網(wǎng)絡(luò)操作相關(guān)所有功能、強大的圖片處理操作、輕量級ORM數(shù)據(jù)庫Sqlite庫、zip操作
、動畫特效、Html等解析采集、事件總線EventBus/Otto、Gson(Json)、AQuery、主流所有UI控件(例如:ActionbarSherlock,SlidingMenu,BottomView,Actionbar,DragListView等10多種UI庫)等。
相對于傳統(tǒng)計算機程序語言來說,Android開發(fā)學習資源上還稍微欠缺一些,對于一些基礎(chǔ)應(yīng)用講解還稍顯匱乏,本篇所講述的Android培訓(xùn)內(nèi)容可以幫助大家更好的理解Android項目快速開發(fā)框架。結(jié)合之前所用的ormlite和hessian,再加上SAE已經(jīng)支持JAVA,把服務(wù)端切換到JAVA,也就有了本文。使用hessian來做數(shù)據(jù)傳輸,ormlite來實現(xiàn)客戶端與服務(wù)端的數(shù)據(jù)存儲,極大的減少了CRUD工作。本文為探索貼,未正式用于大型項目,歡迎大家討論使用!正文一、簡介1.1 ormliteOrmlite[Object Relational Mapping Lite (ORM Lite)]對象關(guān)系映射精簡版(精簡版的ORM)提供了一些簡單的,輕量級持久化Java對象到SQL數(shù)據(jù)庫,同時也避免了復(fù)雜性和更多的標準的ORM包的開銷的功能。支持數(shù)據(jù)庫的jdbc調(diào)用,當然,最重要的肯定是它支持android原生的數(shù)據(jù)庫api調(diào)用sqlite?!D(zhuǎn)載自這里。1.2 hessian使用方法參照本博兩篇文章:[hessdroid]Android下使用Hessian與Java服務(wù)端通訊[hessdroid]Android下使用Hessian與Java服務(wù)端通訊的傳值測試1.3 Android快速開發(fā)框架說明考慮如下幾個特點:a). 客戶端(Android)和服務(wù)端均使用Java語言b). 客戶端(Android)和服務(wù)端均支持Hessian和ormlite框架c). 完整的支持面向?qū)ο箝_發(fā):存儲和交互傳輸二、準備2.1 開發(fā)環(huán)境為了便于同時開發(fā)Android和Java Web,這里下載的是Eclipse IDE for Java EE Developers版本,然后安裝最新的ADT插件和TOMCAT插件。2.2 服務(wù)端應(yīng)用服務(wù)器使用Tomcat,采用Java(JSP/Servlet)來實現(xiàn)服務(wù)端的業(yè)務(wù)邏輯,數(shù)據(jù)庫使用Mysql??焖倏蚣艽罱ㄍ扑]大家使用XAMPP(集成Apache、MySQL、PHP等,支持綠色安裝)。2.3 客戶端普通的Android環(huán)境2.4 通信與存儲說明服務(wù)端與客戶端通過Hessian進行數(shù)據(jù)交換,通過Ormlite保存數(shù)據(jù)庫(通過JDBC保存到服務(wù)端的MYSQL數(shù)據(jù)庫,也可以直接保存到客戶端的sqlite數(shù)據(jù)庫);三、代碼3.1 項目工程截圖(服務(wù)端)HOLib共用于客戶端和服務(wù)端,保證接口和數(shù)據(jù)對象一致性。3.2 重點代碼分析3.2.1 服務(wù)端web.xml?xml version="1.0" encoding="ISO-8859-1"?web-app xmlns="" xmlns:xsi="" xsi:schemaLocation=" web-app_2_4.xsd" version="2.4" servlet servlet-nameuser/servlet-name servlet-classcom.nmbb.ho.server.servlet.UserServlet/servlet-class /servlet servlet-mapping servlet-nameuser/servlet-name url-pattern/user.do/url-pattern /servlet-mapping listener listener-classcom.nmbb.ho.server.StartupInit/listener-class /listener/web-appStartupInit.javapublic class StartupInit implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent arg0) { try { TableUtils.dropTable(OrmliteHelper.getConnection(), POUser.class, true); //創(chuàng)建數(shù)據(jù)庫 TableUtils.createTable(OrmliteHelper.getConnection(), POUser.class); } catch (SQLException e) { e.printStackTrace(); } } @Override public void contextDestroyed(ServletContextEvent arg0) { }} 代碼說明:StartupInit可用于創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu),這里用于測試,真實環(huán)境注意數(shù)據(jù)丟失問題。POUser.java@DatabaseTable(tableName = "nmbb_users")public class POUser implements Serializable { /** 用戶編號,6位數(shù)字 */ @DatabaseField(generatedId = true) public int suid; /** 用戶名 */ @DatabaseField(width = 30) public String username; /** 密碼 */ @DatabaseField(width = 30) public String password; /** 昵稱 */ @DatabaseField(width = 60) public String nickname; /** 200 正常 201 數(shù)據(jù)校驗錯誤 202用戶已經(jīng)存在 */ public int status = 200; /** 用于放錯誤信息 */ public String msg; public POUser() { }} 代碼說明:注意需要一個空的構(gòu)造函數(shù),其他請參考ormlite資料。UserServlet.java/*** 用戶Servlet** @author 農(nóng)民伯伯* @see **/public class UserServlet extends HessianServlet implements IUserService { @Override public POUser register(String username, String password) { POUser result = new POUser(); System.out.println("[UserServlet.register]..."); // 檢測數(shù)據(jù)是否合法 if (isEmpty(username) || isEmpty(password)) { result.status = 201; result.msg = "用戶名或密碼不能為空"; } else { // 檢測用戶是否存在 OrmliteHelperPOUser db = new OrmliteHelperPOUser(); if (db.exist(POUser.class, "username", username)) { result.status = 202; result.msg = "用戶名已經(jīng)存在"; } else { result.username = username; result.password = password; db.create(result);// 入庫 result.msg = "注冊成功"; System.out.println("create user suid:" + result.suid); } } return result; } @Override public ListPOUser query(int suid, int startIndex, int pageSize) { return new OrmliteHelperPOUser().query(POUser.class, "suid", suid, startIndex, pageSize) ; } /** * 判斷字符串是否為空 * * @param str * @return */ public static boolean isEmpty(String str) { return str == null || str.length() == 0; }}3.2.2 客戶端(Android) public class UserActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void OnClickRegiger(View view) { new AsyncTaskVoid, Void, POUser() { @Override protected POUser doInBackground(Void... params) { String url = ""; HessianProxyFactory factory = new HessianProxyFactory(); try { factory.setDebug(true); factory.setReadTimeout(5000); //不設(shè)置會報 expected hessian reply at 0x48 factory.setHessian2Reply(false); IUserService basic = (IUserService) factory.create(IUserService.class, url, getClassLoader()); return basic.register("admin", "123456"); } catch (MalformedURLException e) { Log.e("UserActivity", "OnClickRegiger", e); } catch (Exception e) { Log.e("UserActivity", "OnClickRegiger", e); } return null; } @Override protected void onPostExecute(POUser result) { if (result != null) { if (result.status == 200) { //保存入庫 new DbHelperPOUser().create(result); } Toast.makeText(UserActivity.this, "" + result.msg, Toast.LENGTH_LONG).show(); } }; }.execute(); }}代碼說明:1、DbHelper在源碼里給出。2、如果項目無法編譯通過,請注意設(shè)置項目的字符編碼、JDK版本、Android的版本。三、總結(jié)5.1 優(yōu)點a). 完全面向?qū)ο箝_發(fā)b). 降低項目的復(fù)雜度,減少引入其他框架所帶來的復(fù)雜性c). 非常適合一個開發(fā)服務(wù)端和客戶端充分的利用的框架的特點,提交開發(fā)效率,適合中小型項目快速開發(fā)。5.2 缺點a). 注意服務(wù)端與客戶端共用id的問題5.3 其他a). ormlite支持標準的JPA助記符,這里。這樣服務(wù)端采用Hibernate應(yīng)該也是可以的,有時間可以做一個整合例子看看。學習語言同做事情一樣,想通其中的關(guān)系,就會事半功倍,對語言要深入的理解,
搭建Android開發(fā)環(huán)境
準備工作:下載Eclipse、JDK、Android SDK、ADT插件
下載地址:Eclipse:
JDK:
Android SDK:
ADT:
1、安裝和配置JAVA開發(fā)環(huán)境:
①把準備好的Eclipse和JDK安裝到本機上(最好安裝在全英文路徑下),并給JDK配置環(huán)境變量,其中JDK的變量值為JDK安裝路徑的根目錄,如我的為:D:\Program Files\Java\jdk1.7.0_02;
②打開命令提示符(cmd),輸入java -version命令,顯示如下圖則說明JAVA環(huán)境變量已經(jīng)配置好了。
2、安裝ADT插件:
①打開已安裝好的Eclipse,選擇菜單欄上的“Help”-在彈出的下拉框中單擊選擇“Install new software...”;
②在新打開的對話框中我們完全可以直接在"Work with"中輸入:在線安裝ADT插件,但由于Google的服務(wù)器搭建在國外,所以通過這種方式安裝起來會比較慢,而且可能會出現(xiàn)人品差死活裝不上的情況,所以不推薦在線安裝。
③我推薦直接通過下載好的ADT插件壓縮包進行安裝(此種方式可以在離線環(huán)境下進行)。具體步驟是:在新打開的對話框中點擊“Add”按鈕-在打開的對話框中點擊“Archive”按鈕選擇之前已經(jīng)下載好保存在本地硬盤的ADT插件壓縮包,至于上面的“Name”可以隨便取,這只是一個代號而已,沒什么實際作用。
④在上一步中點擊“Ok”按鈕后我們會發(fā)現(xiàn)中間的空白處出現(xiàn)了兩行復(fù)選框,單擊"Select All"按鈕選中所有的復(fù)選框,這步過后一路“Next”,需要“Accept”的就選中“Accept”,直到點擊“Finish”結(jié)束,這樣ADT插件就安裝好了。整個過程需要的時間視機器性能而定。安裝好ADT插件后,Eclipse的工具欄會出現(xiàn)一排Android的圖標,如下圖:
3、安裝SDK:
①把下載好的Android SDK安裝到本機上(最好安裝在全英文路徑下),并為Android SDK配置環(huán)境變量。Android SDK的環(huán)境變量值為SDK安裝目錄下的platform-tools文件夾和tools文件夾子目錄路徑,如我的分別為:E:\My Studying\Android\android-sdk\platform-tools、E:\My Studying\Android\android-sdk\tools,在變量值中,兩個路徑用逗號隔開。
②打開命令提示符(cmd),分別輸入android -h和adb命令,顯示如下圖則說明Android SDK環(huán)境變量已經(jīng)配置好了。
③打開Android SDK的安裝目錄,雙擊 "SDK Manager"-在打開的窗口中先選擇你需要安裝的SDK版本,其中“Status”表示該SDK包是否安裝,如我選的是“Android2.2(API 8)”(我的之前已經(jīng)安裝過了,所以“Status”為“Installed”)-再點擊“Install packages...”按鈕,在彈出來的窗口中最好選“Accept All”這樣才能安裝你剛才選的所有的包-最后點“Install”按鈕就開始安裝了,整個過程會很慢,這需要你的耐心。
另外我們還可以通過在Eclipse上的工具欄中點擊下圖指示的圖標打開“SDK Manager”然后進行安裝,這樣和上面的SDK安裝方式一樣,就不累述了。
④最后再選擇Eclipes主菜單上的"Windows"-選擇"preferrnces";
⑤在彈出來的對話框中選中左邊欄的“Android”-通過右側(cè)的“Browse...”按鈕選擇SDK的安裝路徑根目錄-點擊最下方的“Ok”按鈕,這樣SDK就在Eclipse上加載成功了。
4、創(chuàng)建Android模擬器(AVD):
①打開Eclipse-在Eclipse的工具欄上單擊下圖指示的圖標打開“Android Virsual Device Manager”窗口;
②在“Android Virsual Device Manager”窗口單擊“New”按鈕-在彈出來的窗口中"Name"可以隨便取;“Target”指模擬器的系統(tǒng)版本;“SD Card”的"size"是指手機存儲卡的大小,只要你不在模擬器上裝太多的應(yīng)用,一般給個二三十MB就夠了;“Skin”是指屏幕的分辨率大小,其中“Built in”是一般手機常用標準屏幕分辨率大小,而“Resolution”是自定義屏幕分辨率大小,具體做法,可以根據(jù)自身情況選擇。-一切設(shè)置好后點擊“Create AVD”,這時一個模擬器就創(chuàng)建好了。如果有必要,我們可以創(chuàng)建多個模擬器用于測試時使用。
附:Android模擬器型號以及其對應(yīng)的分辨率大?。?/p>
Standard Width Height DAR Pixeis
HVGA 480 * 320 3:2 153,600
QVGA 320 * 240 4:3 76,800
WQVGA400 400 * 240 5:3 96,000
WQVGA432 432 * 240 9:5 103,680
WVGA800 800 * 480 5:3 384,000
WVGA852 854 * 480 409,920
至此為止,在Eclipse上就已經(jīng)成功搭建Android開發(fā)環(huán)境了。
主要分為以下幾種:
1、volley
項目地址
(1) JSON,圖像等的異步下載;
(2) 網(wǎng)絡(luò)請求的排序(scheduling)
(3) 網(wǎng)絡(luò)請求的優(yōu)先級處理
(4) 緩存
(5) 多級別取消請求
(6) 和Activity和生命周期的聯(lián)動(Activity結(jié)束時同時取消所有網(wǎng)絡(luò)請求)
2、Android-async-http
項目地址:
文檔介紹:
(1) 在匿名回調(diào)中處理請求結(jié)果
(2) 在UI線程外進行http請求
(3) 文件斷點上傳
(4) 智能重試
(5) 默認gzip壓縮
(6) 支持解析成Json格式
(7) 可將Cookies持久化到SharedPreferences
3、Afinal框架
項目地址:
主要有四大模塊:
(1) 數(shù)據(jù)庫模塊:android中的orm框架,使用了線程池對sqlite進行操作。
(2) 注解模塊:android中的ioc框架,完全注解方式就可以進行UI綁定和事件綁定。無需findViewById和setClickListener等。
(3) 網(wǎng)絡(luò)模塊:通過httpclient進行封裝http數(shù)據(jù)請求,支持ajax方式加載,支持下載、上傳文件功能。
(4) 圖片緩存模塊:通過FinalBitmap,imageview加載bitmap的時候無需考慮bitmap加載過程中出現(xiàn)的oom和android容器快速滑動時候出現(xiàn)的圖片錯位等現(xiàn)象。
FinalBitmap可以配置線程加載線程數(shù)量,緩存大小,緩存路徑,加載顯示動畫等。FinalBitmap的內(nèi)存管理使用lru算法,
沒有使用弱引用(android2.3以后google已經(jīng)不建議使用弱引用,android2.3后強行回收軟引用和弱引用,詳情查看android官方文檔),
更好的管理bitmap內(nèi)存。FinalBitmap可以自定義下載器,用來擴展其他協(xié)議顯示網(wǎng)絡(luò)圖片,比如ftp等。同時可以自定義bitmap顯示器,
在imageview顯示圖片的時候播放動畫等(默認是漸變動畫顯示)。
4、xUtils框架
項目地址:
主要有四大模塊:
(1) 數(shù)據(jù)庫模塊:android中的orm框架,一行代碼就可以進行增刪改查;
支持事務(wù),默認關(guān)閉;
可通過注解自定義表名,列名,外鍵,唯一性約束,NOT NULL約束,CHECK約束等(需要混淆的時候請注解表名和列名);
支持綁定外鍵,保存實體時外鍵關(guān)聯(lián)實體自動保存或更新;
自動加載外鍵關(guān)聯(lián)實體,支持延時加載;
支持鏈式表達查詢,更直觀的查詢語義,參考下面的介紹或sample中的例子。
(2) 注解模塊:android中的ioc框架,完全注解方式就可以進行UI,資源和事件綁定;
新的事件綁定方式,使用混淆工具混淆后仍可正常工作;
目前支持常用的20種事件綁定,參見ViewCommonEventListener類和包com.lidroid.xutils.view.annotation.event。
(3) 網(wǎng)絡(luò)模塊:支持同步,異步方式的請求;
支持大文件上傳,上傳大文件不會oom;
支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT請求;
下載支持301/302重定向,支持設(shè)置是否根據(jù)Content-Disposition重命名下載的文件;
返回文本內(nèi)容的請求(默認只啟用了GET請求)支持緩存,可設(shè)置默認過期時間和針對當前請求的過期時間。
(4) 圖片緩存模塊:加載bitmap的時候無需考慮bitmap加載過程中出現(xiàn)的oom和android容器快速滑動時候出現(xiàn)的圖片錯位等現(xiàn)象;
支持加載網(wǎng)絡(luò)圖片和本地圖片;
內(nèi)存管理使用lru算法,更好的管理bitmap內(nèi)存;
可配置線程加載線程數(shù)量,緩存大小,緩存路徑,加載顯示動畫等...
5、ThinkAndroid
項目地址:
主要有以下模塊:
(1) MVC模塊:實現(xiàn)視圖與模型的分離。
(2) ioc模塊:android中的ioc模塊,完全注解方式就可以進行UI綁定、res中的資源的讀取、以及對象的初始化。
(3) 數(shù)據(jù)庫模塊:android中的orm框架,使用了線程池對sqlite進行操作。
(4) http模塊:通過httpclient進行封裝http數(shù)據(jù)請求,支持異步及同步方式加載。
(5) 緩存模塊:通過簡單的配置及設(shè)計可以很好的實現(xiàn)緩存,對緩存可以隨意的配置
(6) 圖片緩存模塊:imageview加載圖片的時候無需考慮圖片加載過程中出現(xiàn)的oom和android容器快速滑動時候出現(xiàn)的圖片錯位等現(xiàn)象。
(7) 配置器模塊:可以對簡易的實現(xiàn)配對配置的操作,目前配置文件可以支持Preference、Properties對配置進行存取。
(8) 日志打印模塊:可以較快的輕易的是實現(xiàn)日志打印,支持日志打印的擴展,目前支持對sdcard寫入本地打印、以及控制臺打印
(9) 下載器模塊:可以簡單的實現(xiàn)多線程下載、后臺下載、斷點續(xù)傳、對下載進行控制、如開始、暫停、刪除等等。
(10) 網(wǎng)絡(luò)狀態(tài)檢測模塊:當網(wǎng)絡(luò)狀態(tài)改變時,對其進行檢
6、LoonAndroid
項目地址:
主要有以下模塊:
(1) 自動注入框架(只需要繼承框架內(nèi)的application既可)
(2) 圖片加載框架(多重緩存,自動回收,最大限度保證內(nèi)存的安全性)
(3) 網(wǎng)絡(luò)請求模塊(繼承了基本上現(xiàn)在所有的http請求)
(4) eventbus(集成一個開源的框架)
(5) 驗證框架(集成開源框架)
(6) json解析(支持解析成集合或者對象)
(7) 數(shù)據(jù)庫(不知道是哪位寫的 忘記了)
(8) 多線程斷點下載(自動判斷是否支持多線程,判斷是否是重定向)
(9) 自動更新模塊
(10) 一系列工具類
7、KJFrameForAndroid
項目地址:
github項目地址:
備用項目地址:
KJFrameForAndroid 又叫KJLibrary,是一個android的orm 和 ioc 框架。同時封裝了android中的Bitmap與Http操作的框架,使其更加簡單易用;
KJFrameForAndroid的設(shè)計思想是通過封裝Android原生SDK中復(fù)雜的復(fù)雜操作而達到簡化Android應(yīng)用級開發(fā),最終實現(xiàn)快速而又安全的開發(fā)APP。我們提倡用最少的代碼,完成最多的操作,用最高的效率,完成最復(fù)雜的功能。
同時,KJFrameForAndroid是免費的、開源的、簡易的、遵循Apache Licence 2.0開源協(xié)議發(fā)布的android應(yīng)用開發(fā)框架,總共分為五大模 塊:UILibrary,UtilsLibrary,HttpLibrary,BitmapLibrary,DBLibrary。
8、AndroidAnnotations
xUtils是國內(nèi)比較火的快速開發(fā)框架,但是它的注解機制不是太穩(wěn)定而且注解可選也比較少,國外的一個框架主要專注于注解的開發(fā),簡化Android代碼編寫,它除了有依賴注入的特性以外,還集成了Ormlite,Spring-android中的REST模板。使用起來非常方便,大大提高了開發(fā)效率。
1.下載AndroidAnnotations:
git官網(wǎng):
項目中重要的兩個jar包分別是:androidannotations-api-3.0.1.jar和androidannotations-3.0.1.jar
2.新建一個android項目,然后將androidannotations-api-3.0.1.jar復(fù)制到libs目錄下,在項目的根目錄新建一個文件夾,命名為compile-libs,然后將androidannotations-3.0.1.jar復(fù)制到該目錄下
3.在你的工程上右鍵單擊,在彈出的菜單中選擇"Properties",找到Java Compiler,確保Compiler compliance level設(shè)置為1.6,否則的話處理器將不起作用
4.然后設(shè)置項目屬性:右鍵-Properties-Java Compiler-Annotation Processing 在該頁面選中Enable project specific settings。
5.轉(zhuǎn)到Java Compiler 中的 Annotation Processing 下邊的 Factory Path,在此將androidannotations-3.0.1.jar添加到其中。
注解1:@ViewById 與findViewById功能相似,如果ViewById后沒有設(shè)置資源ID的話,就是自動查找與變量名稱相同的id資源。
注解2:@Click 點擊事件處理的注解。
注解3:@UiThread 后臺Ui線程的注解,省去了Handler等等。
注解4:@EActivity 提示Activity的注解,注意,該注解將Activity編譯成Activity_,注意,多一個下劃線“_”,因此在AndroidManifest.xml文件中需要將其添加下滑線
注解5:@AfterViews 是指View類注入完畢之后執(zhí)行的代碼。
1.Linux Kernel
2.Android Runtime
3.Libraries
4.Application Framework
5.Applications
andbase框架:
1.andbase中包含了大量的開發(fā)常用手段。
如網(wǎng)絡(luò)下載,多線程與線程池的管理,數(shù)據(jù)庫ORM,圖片緩存管理,圖片文件下載上傳,Http請求工具,常用工具類(字符串,日期,文件處理,圖片處理工具類等),能夠使您的應(yīng)用在團隊開發(fā)中減少冗余代碼,很大的提高了代碼的維護性與開發(fā)高效性,能很好的規(guī)避由于開發(fā)疏忽而導(dǎo)致常犯的錯誤。
2.andbase封裝了大量的常用控件。
如list分頁,下拉刷新,圖片輪播,表格,多線程下載器,側(cè)邊欄,圖片上傳,輪子選擇,圖表,Tab滑動,日歷選擇器等。
3.強大的AbActivity,您沒有理由不繼承它。
繼承它你能夠獲得一個簡單強大可設(shè)置的操作欄,以及一系列的簡單調(diào)用,如彈出框,提示框,進度框,副操作欄等。
4.提供效率較高圖片緩存管理策略,使內(nèi)存大幅度節(jié)省,利用率提高,效率提高。
程序中要管理大量的圖片資源,andbase提供簡單的方法,幾步完成下載與顯示,并支持縮放,裁剪,緩存功能。
5.封裝了大量常見工具類。
包括日期,字符,文件,圖片等各種處理函數(shù), 多而全。
6.用andbase大量減少handler的使用,而采用回調(diào)函數(shù),代碼更整潔。
handler會產(chǎn)生大量代碼,并且不好維護,andbase對handler進行了封裝。
7.簡單輕量支持注解自動建表的ORM框架(支持一/多對多的關(guān)聯(lián)操作)。
寫sql,建表,工作量大,andbase提供更傻瓜異步增刪改查工具類。
8.異步請求http框架,網(wǎng)絡(luò)請求標準化,支持文件上傳下載,get,post,進度顯示。
1、Rajawali
介紹:
安卓的OpenGL ES 2.0/3.0 引擎??梢杂糜谥谱髌胀☉?yīng)用或者動態(tài)壁紙,當然也可以用于制作游戲。
項目地址:
2、RxAndroid
介紹:
RxAndroid是RxJava的一個針對Android平臺的擴展。它包含了一些能夠簡化Android開發(fā)的工具。
項目地址:
3、Paginize
介紹:
Paginize 是一個輕量級的UI框架,使用注解來注入布局和view,除了使用注解之外,該框架還有兩個特色:1.用Page的概念來取代Fragment,2.切換page時自帶ios風格的動畫效果。
項目地址:
4、otto
介紹:
Otto 是square公司出的一個事件庫(pub/sub模式),用來簡化應(yīng)用程序組件之間的通訊。 Otto 修改自Google的Guava庫,專門為Android平臺進行了優(yōu)化。
項目地址:
5 、rebound
介紹:
rebound是facebook的開源動畫庫??梢哉J為這個動畫庫是獨立于android Framework之外的一種動畫實現(xiàn)。
項目地址:
6、KJFrameForAndroid
介紹:
KJFrameForAndroid 又叫KJLibrary,是一個幫助快速開發(fā)的框架。使用KJFrameForAndroid,你可以只用一行代碼就完成http請求、網(wǎng)絡(luò)圖片加載、數(shù)據(jù)庫數(shù)據(jù)保存或讀取。
項目地址:
7、xUtils
介紹:
xUtils
包含了很多實用的android工具。 xUtils
支持大文件上傳,更全面的http請求協(xié)議支持(10種謂詞),擁有更加靈活的ORM,更多的事件注解支持且不受混淆影響... xUitls
最低兼容android 2.2 (api level 8)
項目地址:
目前xUtils主要有四大模塊:
DbUtils模塊:
android中的orm框架,一行代碼就可以進行增刪改查;
支持事務(wù),默認關(guān)閉;
可通過注解自定義表名,列名,外鍵,唯一性約束,NOT NULL約束,CHECK約束等(需要混淆的時候請注解表名和列名);
支持綁定外鍵,保存實體時外鍵關(guān)聯(lián)實體自動保存或更新;
自動加載外鍵關(guān)聯(lián)實體,支持延時加載;
支持鏈式表達查詢,更直觀的查詢語義,參考下面的介紹或sample中的例子。
ViewUtils模塊:
android中的ioc框架,完全注解方式就可以進行UI,資源和事件綁定;
新的事件綁定方式,使用混淆工具混淆后仍可正常工作;
目前支持常用的20種事件綁定,參見ViewCommonEventListener類和包com.lidroid.xutils.view.annotation.event。
HttpUtils模塊:
支持同步,異步方式的請求;
支持大文件上傳,上傳大文件不會oom;
支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT請求;
下載支持301/302重定向,支持設(shè)置是否根據(jù)Content-Disposition重命名下載的文件;
返回文本內(nèi)容的請求(默認只啟用了GET請求)支持緩存,可設(shè)置默認過期時間和針對當前請求的過期時間。
BitmapUtils模塊:
加載bitmap的時候無需考慮bitmap加載過程中出現(xiàn)的oom和android容器快速滑動時候出現(xiàn)的圖片錯位等現(xiàn)象;
支持加載網(wǎng)絡(luò)圖片和本地圖片;
內(nèi)存管理使用lru算法,更好的管理bitmap內(nèi)存;
可配置線程加載線程數(shù)量,緩存大小,緩存路徑,加載顯示動畫等...
8、butterknife-view
注入工具
介紹:
為了減少頻繁的調(diào)用findViewById(R.id...),可以采用一些注入框架,可以簡化自己的代碼,讓你更專注于實際的功能開發(fā),butterknife就是這樣的一個框架,他是jakewharton大神的作品,值得一試。
class ExampleActivity extends Activity {
@InjectView(R.id.title) TextView title;
@InjectView(R.id.subtitle) TextView subtitle;
@InjectView(R.id.footer) TextView footer;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.inject(this);
// TODO Use "injected" views...
}
}
這是博客地址:
項目地址:
9、cube-sdk
一淘推出的開發(fā)框架
介紹:
cube一個Android開發(fā)包, 可極大提高你的開發(fā)效率。主要提供了圖片加載以及網(wǎng)絡(luò)請求方面的api功能。
項目地址:
他們的網(wǎng)站:
10、ASimpleCache
一個簡單的緩存框架
介紹:
ASimpleCache
是一個為android制定的 輕量級的 開源緩存框架。輕量到只有一個java文件(由十幾個類精簡而來)。
它可以緩存什么東西?普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java對象,和
byte數(shù)據(jù)。
項目地址:
11、androidannotations
介紹:
AndroidAnnotations是一個能夠讓你快速進行Android開發(fā)的開源框架,它能讓你專注于真正重要的地方。
使代碼更加精簡,使項目更加容易維護,它的目標就是“Fast Android Development.Easy maintainance”。
通過一段時間的使用發(fā)現(xiàn),相比原生的Android開發(fā),確實能夠讓你少些很多代碼
項目地址:
12、Event Bus
解耦android模塊
介紹:
當一個Android應(yīng)用功能越來越多的時候,保證應(yīng)用的各個部分之間高效的通信將變得越來越困難。如何優(yōu)雅地解決這個問題?這時候,就需要使用到EventBus。
EventBus是GreenRobot出品的Android系統(tǒng)的一個Event
Bus類庫,使用起來和之前我們所介紹的Square的Otto差不多,都是用來簡化應(yīng)用組件之間的通信。
項目地址:
13、BeeFramework_Android
介紹:
BeeFramework
Android版主要為Android初級開發(fā)人員提供一個基于MVC開發(fā)模式的APP DEMO,并提供一套APP內(nèi)調(diào)試工具,包括
查看網(wǎng)絡(luò)數(shù)據(jù)請求歷史 Crash Log列表 真機WIFI環(huán)境下模擬2G\3G網(wǎng)絡(luò) 查看APP性能(內(nèi)存占用,CPU占用等)
項目地址:
14、afinal
介紹:
Afinal是一個android的ioc,orm框架,內(nèi)置了四大模塊功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,我們可以通過注解的方式進行綁定ui和事件。通過finalBitmap,我們可以方便的加載bitmap圖片,而無需考慮oom等問題。通過finalDB模塊,我們一行代碼就可以對android的sqlite數(shù)據(jù)庫進行增刪改查。通過FinalHttp模塊,我們可以以ajax形式請求http數(shù)據(jù)。
Afinal里面目前包含了四大組件:
FinalHttp:用于請求http數(shù)據(jù),直接ajax方式請求,文件上傳, 斷點續(xù)傳下載文件等
FinalBitmap:用于顯示bitmap圖片,而無需考慮線程并發(fā)和oom等問題。
FinalActivity:完全可以通過注解方式綁定控件和事件,無需編寫代碼。
FinalDb:android中sqlite的orm框架,一行代碼搞定增刪改查。
Afinal是一個android的ioc,orm框架,內(nèi)置了四大模塊功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,我們可以通過注解的方式進行綁定ui和事件。通過finalBitmap,我們可以方便的加載bitmap圖片,而無需考慮oom等問題。通過finalDB模塊,我們一行代碼就可以對android的sqlite數(shù)據(jù)庫進行增刪改查。通過FinalHttp模塊,我們可以以ajax形式請求http數(shù)據(jù)。詳情請通過以下網(wǎng)址查看。
項目地址:
15、Volley
介紹:
在這之前,我們在程序中需要和網(wǎng)絡(luò)通信的時候,大體使用的東西莫過于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google
I/O 2013上,Volley發(fā)布了。Volley是Android平臺上的網(wǎng)絡(luò)通信庫,能使網(wǎng)絡(luò)通信更快,更簡單,更健壯。
項目地址:
文章名稱:android快速開發(fā)框架,android快速開發(fā)框架 輪子哥
網(wǎng)頁鏈接:http://m.rwnh.cn/article46/phgjeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、動態(tài)網(wǎng)站、虛擬主機、網(wǎng)站設(shè)計、全網(wǎng)營銷推廣、網(wǎng)頁設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)