Android的快速開發框架,Afinal 0.2.1 發佈

 Afinal 是一個android的 orm 和 ioc 框架。並且封裝了android中的httpClient,使其更加簡單易用。使用finalBitmap,無需考慮bitmap在android中加載的時候oom的問題和快速滑動的時候圖片加載位置錯位等問題。
Afinal的宗旨是簡潔,快速。約定大於配置的方式。儘可能一行代碼完成全部事情。 html

目前Afinal主要有四大模塊: android

一、FinalDB模塊:android中的orm框架,一行代碼就能夠進行增刪改查。支持一對多,多對一等查詢。 git

二、FinalActivity模塊:android中的ioc框架,徹底註解方式就能夠進行UI綁定和事件綁定。無需findViewById和setClickListener等。 github

三、FinalHttp模塊:經過httpclient進行封裝http數據請求,支持ajax方式加載。 ajax

四、FinalBitmap模塊:經過FinalBitmap,imageview加載bitmap的時候無需考慮bitmap加載過程當中出現的oom和 android容器快速滑動時候出現的圖片錯位等現象。FinalBitmap能夠配置線程加載線程數量,緩存大小,緩存路徑,加載顯示動畫等。 FinalBitmap的內存管理使用lru算法,沒有使用弱引用(android2.3之後google已經不建議使用弱引用,android2.3後強行回收軟引用和弱引用,詳情查看android官方文檔),更好的管理bitmap內存。FinalBitmap能夠自定義下載器,用來擴展其餘協議顯示網絡圖片,好比ftp等。同時能夠自定義bitmap顯示器,在imageview顯示圖片的時候播放動畫等(默認是漸變更畫顯示)。 算法

使用afinal快速開發框架須要有如下權限: 緩存

1 <uses-permission android:name="android.permission.INTERNET" />
2 <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />
第一個是訪問網絡,第二個是訪問sdcard(訪問網絡是請求網絡圖片的時候須要或者是http數據請求時候須要,訪問sdcard是圖片緩存的須要)。



FinalDB使用方法: 網絡

1 FinalDb db = FinalDb.create(this);
2                          
3 User user = new User();
4 user.setEmail("mail@tsz.net");
5 user.setId(1);
6 user.setName("michael yang");
7  
8 db.save(user);


FinalActivity使用方法: 框架

01 public class AfinalDemoActivity extends FinalActivity {
02      //無需調用findViewById和setOnclickListener等
03     @ViewInject(id=R.id.button,click="btnClick") Button button;
04     @ViewInject(id=R.id.textView) TextView textView;
05          
06     public void onCreate(Bundle savedInstanceState) {
07         super.onCreate(savedInstanceState);
08         setContentView(R.layout.main);
09     }
10      
11     public void btnClick(View v){
12         textView.setText("text set form button");
13     }
14 }


FinalHttp使用方法: 異步

1 FinalHttp.ajax("http://www.yangfuhai.com/topic/7.html"newAjaxCallBack() {
2     @Override
3     public void callBack(AjaxStatus status) {
4         textView.setText(status.getContentAsString());
5     }
6 });


FinalBitmap 使用方法 (加載網絡圖片就一行代碼 fb.display(imageView,url) ):

01         private GridView gridView;
02     private FinalBitmap fb;
03     @Override
04     protected void onCreate(Bundle savedInstanceState) {
05         super.onCreate(savedInstanceState);
06         setContentView(R.layout.images);
07          
08         gridView = (GridView) findViewById(R.id.gridView);
09         gridView.setAdapter(mAdapter);
10          
11         fb = new FinalBitmap(this).init();//必須調用init初始化FinalBitmap模塊
12         fb.configLoadingImage(R.drawable.downloading);
13         //這裏能夠進行其餘十幾項的配置,也能夠不用配置,配置以後必須調用init()函數,才生效
14         //fb.configBitmapLoadThreadSize(int size)
15         //fb.configBitmapMaxHeight(bitmapHeight)
16     }
17  
18  
19 ///////////////////////////adapter getView////////////////////////////////////////////
20  
21 public View getView(int position, View convertView, ViewGroup parent) {
22     ImageView iv;
23     if(convertView == null){
24         convertView = View.inflate(BitmapCacheActivity.this,R.layout.image_item, null);
25         iv = (ImageView) convertView.findViewById(R.id.imageView);
26         iv.setScaleType(ScaleType.CENTER_CROP);
27         convertView.setTag(iv);
28     }else{
29         iv = (ImageView) convertView.getTag();
30     }
31     //bitmap加載就這一行代碼,display還有其餘重載,詳情查看源碼
32     fb.display(iv,Images.imageUrls[position]);
33     return convertView;
34 }

github下載地址:https://github.com/yangfuhai/afinal

google code:http://code.google.com/p/afinal



此次更新主要是修復FinalDb的一個嚴重bug和其餘幾個小細節的bug。建議使用afinal的朋友們更新到最新版後開發。

代碼已經上傳到:

http://code.google.com/p/afinal/

https://github.com/yangfuhai/afinal

 

0.2.1 更新記錄,你懂的

一、修復orm查詢的時候 沒有對date類型進行數據轉換(嚴重bug)
二、修改findObjectWihtOneToManyById和findObjectWihtManyToOneById爲findWihtOneToManyById和findWihtManyToOneById
三、添加findAllByWhere 方法
四、添加delete(Object entity) 方法
五、添加deleteByWhere(Class<?> clazz , String strWhere )方法
六、修改FinalHttp的Asynctask異步讀取http數據爲普通子線程(爲兼容android不一樣版本)

七、其餘orm細節bug

相關文章
相關標籤/搜索