// Path: old-library-with-sample/src/main/java/com/rocko/utils/ApplicationUtils.java
// public class ApplicationUtils {
// 
//     /**
//      * 备份本程序的apk安装文件到SD卡根目录下
//      *
//      * @param context     ApplicationContext
//      * @param packageName
//      * @param mActivity
//      * @throws java.io.IOException
//      */
//     public static void backupApp(Context context) throws IOException {
//         // 存放位置
//         String newFile = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator;
//         String oldFile = null;
//         try {
//             // 原始位置
//             oldFile = context.getPackageManager().getApplicationInfo(context.getPackageName(), 0).sourceDir;
//         } catch (PackageManager.NameNotFoundException e) {
//             e.printStackTrace();
//         }
//         System.out.println(newFile);
//         System.out.println(oldFile);
// 
//         File in = new File(oldFile);
//         File out = new File(newFile + context.getPackageName() + ".apk");
//         if (!out.exists()) {
//             out.createNewFile();
//         } else {
//         }
// 
//         FileInputStream fis = new FileInputStream(in);
//         FileOutputStream fos = new FileOutputStream(out);
// 
//         int count;
//         // 文件太大的话，我觉得需要修改
//         byte[] buffer = new byte[256 * 1024];
//         while ((count = fis.read(buffer)) > 0) {
//             fos.write(buffer, 0, count);
//         }
// 
//         fis.close();
//         fos.flush();
//         fos.close();
//     }
// 
//     /**
//      * 获取应用的MD5签名值
//      *
//      * @param context ApplicationContext
//      * @return
//      */
//     public static String getSign(Context context) {
//         PackageManager packageManager = context.getPackageManager();
//         try {
//             PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(),
//                     PackageManager.GET_SIGNATURES);
//             Signature[] signs = packageInfo.signatures;
//             Signature sign = signs[0];
//             return MD5Helper.hexdigest(sign.toByteArray());
//         } catch (Exception e) {
//             e.printStackTrace();
//             return null;
//         }
//     }
// 
//     /**
//      * 获取应用版本Code
//      *
//      * @param context ApplicationContext
//      * @return
//      */
//     public static int getAppVersionCode(Context context) {
//         try {
//             PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
//             return info.versionCode;
//         } catch (PackageManager.NameNotFoundException e) {
//             e.printStackTrace();
//         }
//         return 1;
//     }
// 
//     /**
//      * 获取应用版本Name
//      *
//      * @param context ApplicationContext
//      * @return
//      */
//     public static String getAppVersionName(Context context) {
//         try {
//             PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
//             return info.versionName;
//         } catch (PackageManager.NameNotFoundException e) {
//             e.printStackTrace();
//         }
//         return "unkonwn";
//     }
// }


import android.content.Context;
import android.os.Environment;
import com.rocko.utils.ApplicationUtils;
import java.io.File;
import java.io.IOException;
package com.rocko.io;




/**
 * @author Mr.Zheng
 * @date 2014年11月2日 上午12:49:30
 */
public class IOHelper {
    /**
     * 获取DiskLruCache实例
     *
     * @param context
     * @param uniqueName 对不同类型的数据进行区分而设定的一个唯一值
     * @return
     */
    public static DiskLruCache getDiskLruCache(Context context, String uniqueName) {
        DiskLruCache mDiskLruCache = null;
        try {
            File cacheDir = getDiskCacheDir(context, uniqueName);
            if (!cacheDir.exists()) {
                cacheDir.mkdirs();
            }
// Path: old-library-with-sample/src/main/java/com/rocko/utils/ApplicationUtils.java
// public class ApplicationUtils {
// 
//     /**
//      * 备份本程序的apk安装文件到SD卡根目录下
//      *
//      * @param context     ApplicationContext
//      * @param packageName
//      * @param mActivity
//      * @throws java.io.IOException
//      */
//     public static void backupApp(Context context) throws IOException {
//         // 存放位置
//         String newFile = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator;
//         String oldFile = null;
//         try {
//             // 原始位置
//             oldFile = context.getPackageManager().getApplicationInfo(context.getPackageName(), 0).sourceDir;
//         } catch (PackageManager.NameNotFoundException e) {
//             e.printStackTrace();
//         }
//         System.out.println(newFile);
//         System.out.println(oldFile);
// 
//         File in = new File(oldFile);
//         File out = new File(newFile + context.getPackageName() + ".apk");
//         if (!out.exists()) {
//             out.createNewFile();
//         } else {
//         }
// 
//         FileInputStream fis = new FileInputStream(in);
//         FileOutputStream fos = new FileOutputStream(out);
// 
//         int count;
//         // 文件太大的话，我觉得需要修改
//         byte[] buffer = new byte[256 * 1024];
//         while ((count = fis.read(buffer)) > 0) {
//             fos.write(buffer, 0, count);
//         }
// 
//         fis.close();
//         fos.flush();
//         fos.close();
//     }
// 
//     /**
//      * 获取应用的MD5签名值
//      *
//      * @param context ApplicationContext
//      * @return
//      */
//     public static String getSign(Context context) {
//         PackageManager packageManager = context.getPackageManager();
//         try {
//             PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(),
//                     PackageManager.GET_SIGNATURES);
//             Signature[] signs = packageInfo.signatures;
//             Signature sign = signs[0];
//             return MD5Helper.hexdigest(sign.toByteArray());
//         } catch (Exception e) {
//             e.printStackTrace();
//             return null;
//         }
//     }
// 
//     /**
//      * 获取应用版本Code
//      *
//      * @param context ApplicationContext
//      * @return
//      */
//     public static int getAppVersionCode(Context context) {
//         try {
//             PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
//             return info.versionCode;
//         } catch (PackageManager.NameNotFoundException e) {
//             e.printStackTrace();
//         }
//         return 1;
//     }
// 
//     /**
//      * 获取应用版本Name
//      *
//      * @param context ApplicationContext
//      * @return
//      */
//     public static String getAppVersionName(Context context) {
//         try {
//             PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
//             return info.versionName;
//         } catch (PackageManager.NameNotFoundException e) {
//             e.printStackTrace();
//         }
//         return "unkonwn";
//     }
// }


// Path: old-library-with-sample/src/main/java/com/rocko/io/IOHelper.java
import android.content.Context;
import android.os.Environment;
import com.rocko.utils.ApplicationUtils;
import java.io.File;
import java.io.IOException;

package com.rocko.io;




/**
 * @author Mr.Zheng
 * @date 2014年11月2日 上午12:49:30
 */
public class IOHelper {
    /**
     * 获取DiskLruCache实例
     *
     * @param context
     * @param uniqueName 对不同类型的数据进行区分而设定的一个唯一值
     * @return
     */
    public static DiskLruCache getDiskLruCache(Context context, String uniqueName) {
        DiskLruCache mDiskLruCache = null;
        try {
            File cacheDir = getDiskCacheDir(context, uniqueName);
            if (!cacheDir.exists()) {
                cacheDir.mkdirs();
            }
            mDiskLruCache = DiskLruCache.open(cacheDir, ApplicationUtils.getAppVersionCode(context), 1,