android 优化

1.图像缩放

1
2
3
4
5
6
7
8
9
private  void  compressImage(String pathName) {
         BitmapFactory.Options options =  new  BitmapFactory.Options();
         options.inSampleSize =  10 // 为原来图形的1/10
         Bitmap bitmap  = BitmapFactory.decodeFile(pathName ,options);
         // 显示图像到控件
         ImageView imageView =  new  ImageView(getApplicationContext());
         imageView.setImageBitmap(bitmap);
         bitmap.recycle();
     }

2.及时释放对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class  ImageManager{
     //实现统一管理位图资源
     private  WeakHashMap<Integer, WeakReference<Bitmap>> mBitmaps;
     private  WeakHashMap<Integer, WeakReference<Drawable>> mDrawable;
     private  boolean  mActive =  true ;
     public  ImageManager(){
         mBitmaps =  new  WeakHashMap<Integer, WeakReference<Bitmap>>();
         mDrawable =  new  WeakHashMap<Integer, WeakReference<Drawable>>();
     }
     public   Bitmap  getmBitmaps( int  resource) {
         if  (mActive) {
             if  (!mBitmaps.containsKey(resource)) {
                 mBitmaps.put(resource,  new  WeakReference<Bitmap>(BitmapFactory.decodeResource(getResources(), resource)));
                 return  ((WeakReference<Bitmap>)mBitmaps.get(resource)).get();
             }
         }
         return   null ;
     }
 
     public  Drawable getDrawable( int  resource){
         if  (mActive) {
             if  (!mDrawable.containsKey(resource)) {
                 mDrawable.put(resource,  new  WeakReference<Drawable>(getResources().getDrawable(resource)));
                 return  ((WeakReference<Drawable>)mDrawable.get(resource)).get();
             }
         }
 
         return  null ;
     }
     public  void  recycleBitmaps(){
         Iterator iterator = mBitmaps.entrySet().iterator();
         while  (iterator.hasNext()) {
             Map.Entry type = (Map.Entry) iterator.next();
             ((WeakReference<Bitmap>)type.getValue()).get().recycle();
 
         }
     }
     private  ImageManager setActive( boolean  b) {
         // TODO Auto-generated method stub
         mActive = b;
         return  this ;
 
     }
     public  boolean  isActive(){
         return  mActive;
     }
}

3.

哟话网络连接, 

首先检测网络是否正常, 如没有网络就不执行相应的程序, 

检查网络连接的演示代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public  boolean  isConnected(){
         ConnectivityManager manager  = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
         TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
         NetworkInfo info = manager.getActiveNetworkInfo();
         if  (info== null ||!manager.getBackgroundDataSetting()) { // 无可用网络连接
             return  false ;
         }
         //网络类型判断, 只有3G或者wifi里进行数据更新
         int  netType = info.getType();
         int  netsubType = info.getSubtype();
         if  (netType == ConnectivityManager.TYPE_WIFI) {
             return  info.isConnected();
         }
         else  if  (netType == ConnectivityManager.TYPE_MOBILE&&netsubType == TelephonyManager.NETWORK_TYPE_UMTS&&!telephonyManager.isNetworkRoaming()){
             return  info.isConnected();
         } else {
             return  false ;
         }
     }

你可能感兴趣的:(android 优化)