Android crash 日志捕获

 

 

Android crash 日志捕获




为了对已发布程序进行跟踪,通常会对程序的行为做一些记录并上传到server,一般会记录用户行为已方便更好的发进设计流程和记录程序crash日志,以便在后续版本中改正程序的错误,看了些文章也做了几个Demo,把自己的理解简单写一下。

 

1. 给线程设置一个自己的异常处理函数(Thread.setDefaultUncaughtExceptionHandler(MyHandler))。

这个方法原来的Java语言里面就有,我原来以为这个方法是改变当前线程的 exception handler,写了一个程序测试了下,发现在一个新建的Thread里面抛出一个异常也能被捕获,表示它改变了整个虚拟机线程的exception handler。现在主流的处理方法是给APP创建一个 MyApplication extends Application,重写基类的onCreate方法,并在此方法内对线程设置自己的handler,并在androidmanifest.xml文件中指定当前的app name为自己写的application类。示例代码如下:

 

public class DfApplication extends Application
{
Thread.UncaughtExceptionHandler mDefaultHandler; 
 
public void onCreate()
{
super.onCreate();
System.out.println("my app create");
mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(new MyHandler(this.getApplicationContext()));
}
}
 
 
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.exceptionstudy"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />
 
    <application
        android:icon="@drawable/ic_launcher"
        android:name="com.df.app.DfApplication"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >

 。。。。。。

当然这种方法不是必须的,因为上面也说到了,无论在哪里设置,都是对整个虚拟机的线程设置,也有不少人是在自己的Activity中进行此操作。不过建议还是放在application类中处理,从抽象上更好理解----这个设置是针对整个应用的。

 

2.利用ACRA(application crash report for android),是google的一个开源项目,引入它的包,可以将crash log发送到自己的google文档,官方文档有详细说明。http://code.google.com/p/acra/

 

参考:http://www.eoeandroid.com/blog-23755-2661.html

 

顺带介绍下anr问题日志:

anr日志存在手机目录:data/anr/traces.txt

可以用adb命令将文件copy到本地电脑目录下:adb pull data/anr/traces.txt local目录

 

adb shell命令操作手机数据库

adb shell

1,进入到控制台中,输入adb shell,进入到命令模式的环境中

2,输入:cd   /data/data/

3, 选择你所在的数据库文件,比如我的com.android.homework,   输入命令:cd  com.android.homework

4,  可以使用ls -l 命令查看当前目录中的文件

5,输入: cd  databases 进入到数据库文件中

6, ls -l  显示你数据库中你建立的数据库

7, sqlite3   info.db   进入到你选择的数据库中

8, .tables   :查看你建的表

9, select * from  table_name;s   可以查看整个表的信息

10,  使用其他的SQL语句可以进一步对表进行操作,注意SQL语句必须用分号(;)结尾

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值