Android crash 日志捕获
来源:互联网 发布:linux mv命令的功能 编辑:程序博客网 时间:2024/04/28 21:57
转载:http://sdutdazzling.iteye.com/blog/1773566
为了对已发布程序进行跟踪,通常会对程序的行为做一些记录并上传到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 日志捕获
- Android crash 日志捕获
- Android crash 日志捕获
- android crash日志捕获
- andorid Crash日志捕获
- android开发技巧-记录未捕获的crash异常日志
- Android全局捕获crash并保存日志到本地
- Android 未捕获异常crash崩溃日志的截取
- 崩溃日志 全局crash捕获
- Android UncaughtExceptionHandler捕获Crash
- Android 捕获crash
- Android 中Crash捕获异常
- Android Crash捕获及处理
- iOS crash捕获异常崩溃日志
- android crash日志上报
- Android crash 日志 分析
- android crash 日志保存
- Android Crash日志收集
- UDP的客户端和服务器端的实例(VC6.0实现)
- ie6 列表信息内容被复制Bug
- hdu 1000 A+B
- 创建多级符号列表 word 2013 适用。
- Android 事件捕捉和处理流程分析
- Android crash 日志捕获
- log4cxx日志工程引用
- 计算X的Y次方
- 基于XSocket框架的socket编程技巧(设置连接的超时时间和最大空闲时间)
- SSL与TLS 区别 以及介绍
- 2011 第二届蓝桥杯总决赛- 第三题 求1-n 的最小公倍数(n小于101)
- 惨痛的春秋航班的经历(春秋的评论,好坏,看完便知)
- 创建项目后NDK编译警告当作错误处理的解决方案
- android初学问题