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


    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,这样你就能在对应的文件下面得到你要的日志文件了。

  • 相关阅读:
    第九周
    第八周
    第七周
    代码复审核查表
    对软件开发的理解
    第六周
    网站流量分析架构及实现
    hive的sql语句
    精简客户端搭建Oracle数据库
    idaa搭建maven发布tomcat
  • 原文地址:https://www.cnblogs.com/Catherine-Brain/p/4109550.html
Copyright © 2020-2023  润新知