Some words about me

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas a urna sit amet leo sagittis cursus a at lectus. Donec bibendum facilisis ultricies. Maecenas nec arcu dui, ut lobortis erat. In nec condimentum quam. Vivamus euismod scelerisque ligula vitae fermentum. Nulla dignissim rutrum eleifend.

Donec mi eros, congue ut consectetur eget, pretium vitae orci. Aliquam pharetra ultricies lobortis. Morbi eget nisi lectus. Maecenas felis augue, molestie in vestibulum et, lacinia et leo. Suspendisse potenti. Maecenas eget est augue. Donec tincidunt mollis fermentum.

Contact me?

 
 
 

Donec mi eros, congue ut consectetur eget, pretium vitae orci. Aliquam pharetra ultricies lobortis. Morbi eget nisi lectus. Maecenas felis augue, molestie in vestibulum et, lacinia et leo. Suspendisse potenti. Maecenas eget est augue. Donec tincidunt mollis fermentum.

Send the message
 

与设备无法进行调试怎么走

 

2014-11-19

  好吧,我承认,这是后来编辑的。嘿嘿借着上面的扑捉异常来做了一个不是很大变更的扑捉日志。

就我目前得知,与设备连接调试就两种方式,一种间接,一种直接。间接就是指网络连接,通常就是通过QADB这个网络连接的方式。但是这里有很多自己定制的Android的厂商会让自己的设备不被侵犯的话,至少应该已经把这个功能给关掉了。直接的方式就是通过我们都知道的USB。手机还好说,那如果是客户端也是一个USB口呢?你的电脑的口就会与客户端的口一样,双公口。其实,市场上也有买这样的。但是,这里就给出一个不用折腾的方法嘛。嘿嘿

    写一个实例,这样如果已经创建了,就不会再创建。然后看看里面的方法:

package com.lhl.exception;

import java.io.File;
import java.io.FileOutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import android.content.Context;
import android.util.Log;

/**
 * this is a class to get the request and the response.......it have maked the
 * client interaction with server
 * 
 * @author Catherine.Brain
 */
public class CrashInteraction {

    /**
     * to write the log int he localpath
     */
    public static String logIPath = "mnt/sdcard/Android/logG";
    // int count = 0;
    GetFileSize getSize;
    private static CrashInteraction INSTANCE = new CrashInteraction();
    Context mContext;
    String request;

    private DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");

    private CrashInteraction() {

    }

    /**
     * 获取CrashInteraction实例 ,单例模式
     * 
     * @return
     */
    public static CrashInteraction getInstance() {
        return INSTANCE;
    }

    public void init(Context context) {
        // TODO Auto-generated method stub
        mContext = context;
        getSize = new GetFileSize(logIPath);

    }

    public void initStr(String str) {

        request = str;
        getSize.toDoFile();
        saveCrashInfo(request);
    }

    private File saveCrashInfo(String str) {

        StringBuffer sb = new StringBuffer();

        sb.append(str);

        try {
            long timestamp = System.currentTimeMillis();
            String time = formatter.format(new Date());

            File dir = new File(logIPath);

            String fileName = "get" + time + "-" + timestamp + ".log";
            if (!dir.exists()) {
                System.out.println("dir.mkdirs();");
                dir.mkdirs();
            }

            File file = new File(dir, fileName);
            if (!file.exists()) {
                file.createNewFile();
            }
            FileOutputStream fos = new FileOutputStream(file);

            fos.write(sb.toString().getBytes());
            fos.close();

            return file;
        } catch (Exception e) {
            System.out.println("an error occured while writing file..." + e);
        }

        return null;
    }

    /**
     * 删除文件夹所有内
     * 
     */
    public boolean deleteFile(File file) {
        boolean isSuccess = false;
        if (file.exists()) { // 判断文件是否存在
            if (file.isFile()) { // 判断是否是文
                file.delete(); // delete()方法 你应该知
            } else if (file.isDirectory()) { // 否则如果它
                File files[] = file.listFiles(); // 声明目录下所有的文件 files[];
                for (int i = 0; i < files.length; i++) { // 遍历目录下所有的文件
                    this.deleteFile(files[i]); // 把每个
                }
            }
            file.delete();
            isSuccess = true;
        } else {
            isSuccess = false;
        }
        return isSuccess;
    }
}

另外还有一个打辅助的类:

package com.lhl.exception;

import java.io.File;
import java.io.FileInputStream;
import java.text.DecimalFormat;

/**
 * 
 * to get the sdCard size or the file size only you want
 * 
 * @author Catherine.Brain
 * */
public class GetFileSize {
    String logPath;

    public GetFileSize(String path) {
        logPath = path;

    }

    public void toDoFile() {
        try {
            long l = 0;
            File ff = new File(logPath);
            if (ff.exists()) {
                if (ff.isDirectory()) {
                    // System.out.println("文件夹个数           " + getlist(ff));
                    l = getFileSize(ff);
//                    System.out.println(logPath + "目录的大小为:" + FormetFileSize(l));
                } else if (ff.isFile()) {

                    // System.out.println("     文件个数           1");
                    l = getFileSizes(ff);
//                    System.out.println(logPath + "文件的大小为:" + FormetFileSize(l));
                }
            } else {
//                System.out.println("日志文件路径不存在。。。");
            }
            if (l >= 10000) {
//                System.out.println("delete");
                deleteFile(new File(logPath));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public long getFileSizes(File f) throws Exception {// 取得文件大小
        long s = 0;
        if (f.exists()) {
            FileInputStream fis = null;
            fis = new FileInputStream(f);
            s = fis.available();
        } else {
            f.createNewFile();
            System.out.println("文件不存在");
        }
        return s;
    }

    // 递归
    public long getFileSize(File f) throws Exception// 取得文件夹大小
    {
        long size = 0;
        File flist[] = f.listFiles();
        for (int i = 0; i < flist.length; i++) {
            if (flist[i].isDirectory()) {
                size = size + getFileSize(flist[i]);
            } else {
                size = size + flist[i].length();
            }
        }
        return size;
    }

    public String FormetFileSize(long fileS) {// 转换文件大小
        DecimalFormat df = new DecimalFormat("#.00");
        String fileSizeString = "";
        if (fileS < 1024) {
            fileSizeString = df.format((double) fileS) + "B";
        } else if (fileS < 1048576) {
            fileSizeString = df.format((double) fileS / 1024) + "K";
        } else if (fileS < 1073741824) {
            fileSizeString = df.format((double) fileS / 1048576) + "M";
        } else {
            fileSizeString = df.format((double) fileS / 1073741824) + "G";
        }
        return fileSizeString;
    }

    public long getlist(File f) {// 递归求取目录文件个数
        long size = 0;
        File flist[] = f.listFiles();
        size = flist.length;
        for (int i = 0; i < flist.length; i++) {
            if (flist[i].isDirectory()) {
                size = size + getlist(flist[i]);
                size--;
            }
        }
        return size;
    }

    /**
     * 删除文件夹所有内容
     * 
     */
    public static boolean deleteFile(File file) {
        boolean isSuccess = false;
        if (file.exists()) { // 判断文件是否存在
            if (file.isFile()) { // 判断是否是文件
                file.delete(); // delete()方法 你应该知道 是删除的意思;
            } else if (file.isDirectory()) { // 否则如果它是一个目录
                File files[] = file.listFiles(); // 声明目录下所有的文件 files[];
                for (int i = 0; i < files.length; i++) { // 遍历目录下所有的文件
                    deleteFile(files[i]); // 把每个文件 用这个方法进行迭代
                }
            }
            file.delete();
//            System.out.println("success");
            isSuccess = true;
        } else {
            isSuccess = false;
            System.out.println("failes");
        }
        return isSuccess;
    }
}

okay,这样你就能在对应的文件下面得到你要的日志文件了。

posted @ 2014-11-20 00:02  Catherine_Brain  阅读(184)  评论(0编辑  收藏  举报