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语句必须用分号(;)结尾
相关推荐
一个Android可获取运行crash日志的工具类,使用简单方便,直接调用捕获全局crash日志信息,并写入文件到本地,方便查阅
一个捕获程序异常退出时的日志的Demo,需要的朋友可以参考下。
所以一个合格的异常捕获组件也要能达到以下目的:支持在crash时进行更多扩展操作,如:1.打印logcat和应用日志2.上报crash次数3.对不同的crash做不同的恢复措施4.可以针对业务不断改进和适应其实3个方案在Android...
—简洁易用的Android Crash日志捕获组件。 —简洁易用的Android权限请求组件。 —简洁易用的Android拖放刷新和上拉加载组件。 —简洁易用的Android列表组件。 —简洁易用的Android拖放刷新和上拉加载组件。 —简洁...
—简洁易用的Android Crash日志捕获组件。 —简洁易用的Android权限请求组件。 —简洁易用的Android顶部导航条组件。 —简洁易用的Android拖放刷新和上拉加载组件。 —简洁易用的Android列表组件。 —简洁易用的...
—简洁易用的Android Crash日志捕获组件。 —简洁易用的Android权限请求组件。 —简洁易用的Android拖放刷新和上拉加载组件。 —简洁易用的Android列表组件。 —简洁易用的Android拖放刷新和上拉加载组件。 —...
—简洁易用的Android Crash日志捕获组件。 —简洁易用的Android权限请求组件。 —简洁易用的Android顶部导航条组件。 —简洁易用的Android拖放刷新和上拉加载组件。 —简洁易用的Android列表组件。 —简洁易用...
—简洁易用的Android Crash日志捕获组件。 —简洁易用的Android权限请求组件。 —简洁易用的Android拖放刷新和上拉加载组件。 —简洁易用的Android列表组件。 —简洁易用的Android无限轮播图组件。 —简洁易用...
—简洁易用的Android Crash日志捕获组件。 —简洁易用的Android权限请求组件。 —简洁易用的Android顶部导航条组件。 —简洁易用的Android拖放刷新和上拉加载组件。 —简洁易用的Android列表组件。 —简洁易用...
—简洁易用的Android Crash日志捕获组件。 —简洁易用的Android权限请求组件。 —简洁易用的Android顶部导航条组件。 —简洁易用的Android拖放刷新和上拉加载组件。 —简洁易用的Android列表组件。 —简洁易用...
闪退或者程序已停止运行,这对用户的体验来说是不好的,更糟糕的是,当用户发生了crash,开发者却无法得知程序为何crash,即便你想去解决这个crash, 但是由于你无法知道用户当时的crash信息,所以你也无能为力。...
unity 捕捉异常和移动设备崩溃Android
android程序崩溃日志上传实现原理:程序运行过程中如果存在没有try catch的异常,将会交给 Thread.UncaughtExceptionHandler去处理,通过继承该类,并且将默认的异常处理的的类设置为他的一个子类,在子类中对获取的...
支持捕获App异常奔溃闪退(Crash)并打印输出到指定文件 支持日志开关可灵活控制是否输出日志 支持文件保存开关可灵活控制是否保存日志 使用教程 一、添加依赖 推荐Gradle引用: 在外层build.gradle 文件中添加以下...
创建Crash异常捕获很简单,主要的步骤有: 1.创建BaseApplication继承Application并实现Thread.UncaughtExceptionHandler 2.通过Thread.setDefaultUncaughtExceptionHandler(this)设置默认的异
一个简单的Crash捕获工具,会将崩溃日志保存到本地. Usage AndroidStudio add dependency debugCompile 'yifeiyuan.library.crashcatcher:crashcatcher:0.0.2' releaseCompile 'yifeiyuan.library.crashcatcher:...
1、基础工具 App 信息查看: 快速查看... 对齐标尺: 参考 Android 系统自带测试工具,能够实时捕获屏幕坐标,并且可以查看组件是否对齐; 元素边框线: 绘制出每一个 UI 组件的边框,对于组件布局有一定的参考意义。
App_Crash_Reporter 该库有助于在没有用户提示的情况下将崩溃报告存储在预先创建的Google表格中。 在离线模式下,应用程序将异常详细信息存储在本地,并在设备连接到互联网时将其发送回服务器。 崩溃日志包括异常...
当前工具的监控范围包括:crash、lag、out-of-memory,其中包括以下两个插件,WCCrashBlockMonitorPlugin,它基于KSCrash框架,具有崩溃捕获的尖端滞后堆栈捕获能力,以及WCMemoryStatPlugin ,这是一种性能优化的...