一.实现Thread.UncaughtExceptionHandlerUnChecked异常发生时,由于没有相应的try…catch处理该异常对象,所以Java运行环境将会终止,程序将退出,也就是我们所说的Crash.Java API提供了一个全局异常捕获处理器,Android应用在Java层捕获Crash依赖的就是Thread.UncaughtExceptionHandler处理器接口,通常我们只需实现这个接口,并重写其中的uncaughtException方法,在该方法中可以读取Crash的…
获取 Android APP 版本信息工具类 获取手机APP版本信息工具类 1.获取版本名称 2.获取版本号 3.获取App的名称 package com.mingyue.nanshuibeidiao.util; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.Pac…
一:前言 在日常测试app时,经常会遇到崩溃问题,测试快速抓取到崩溃日志可以有效方便开发进行定位,快速解决问题所在测试做到测试分析,定位是非常重要的,这也是判断一个测试能力指标的一大维度. 二:Android崩溃日志 一.通过adb logcat获取 # 清除日志,新手上路时,日志内容很多,对于能毕现的日志,可以先清除后重新获取 adb logcat -c # 然后再次运行崩溃操作,再抓取日志 # 存储日志到当前目录下的 carsh.log 中 adb logcat -d *:W > crash…
需求: 持久化运行时异常的信息 1.CrashHandler.java import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Build; import android.os.Looper; import android.os.SystemClock; import android.widg…
源码地址https://github.com/king1039/android-art-res/tree/master/Chapter_13/CrashTest/src/com/ryg/crashtest public class CrashHandler implements UncaughtExceptionHandler { private static final String TAG = "CrashHandler"; private static final boolean…
最近有用户反馈,应用有崩溃的情况,可是本地调试却无法重现问题,理所当然的,我想到了微软的开发者仪表盘,可以查看一段时间内的carsh记录,不过仪表盘生成carsh记录不是实时的,而且生成的报告查看非常不便,是否有其他方法抓取应用的崩溃记录呢? 其实目前已经有一些第三方提供了相应的工具插件,如国外的uTest(http://www.utest.com/),mtiks(http://www.mtiks.com/),国内的九幽(http://www.windows.sc)等等,小弟英语比较烂,就只研究…
package com.yarin.android.Examples_04_04; import android.app.Activity; import android.database.Cursor; import android.graphics.Color; import android.os.Bundle; import android.provider.ContactsContract; import android.provider.ContactsContract.PhoneLo…
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent&qu…
1. 运行时异常和受检异常 2. 提前预防运行时异常.最常发生的是NPE,而检查NPE是程序员的基本职责.其他的,如除0等运行时异常的检查,需要程序员仔细检查,每个函数都得检查(除非可以确定不会有空指针等情况),哪怕if()语句数量增加.无法通过预检查的异常除外,如在解析一个外部传来的字符串形式数字时,通过catch NumberFormatException来实现. null:1)如果是外部获取,则有必要检查null,也有必要进行有效性检查(validationCheck):2)如果是内部的或…
转:http://blog.csdn.net/zhandoushi1982/article/details/8560233 获取android文件系统的信息,需要Environment类和StatFs类的支持. (1)Environment 是一个提供访问环境变量的类,常用的方法有: A,getRootDirectory() ,返回File,获取Android 的根目录. B,getDataDirectory() ,返回File ,获取Android 数据目录(小米手机叫机身存储) C,getE…
android 程序崩溃crash日志的捕捉 之前在项目开发过程中,一直会遇到程序崩溃了,但是测试組的哥哥们又没及时的导出日志.... 后来在诳群的时候听别人说起,腾讯有那么一个叫bugly的东西 将其作为第三方jar文件引入其中,并且进行一些简单的配置即可:程序崩溃的crash日志会自动的上传到他腾讯那边给的后台上面,在线查看日志 问题来了: 怎么实现的呢 为什么他们就可以去捕获那一段日志? 程序不是已经崩溃了吗? 获取日志的代码为啥还可以运行? 原理 搜索到这篇文章Android平台的崩溃捕…
  Android应用不可避免会发生crash,也称之为崩溃.发生原因可能是由于Android系统底层的bug,也可能是由于不充分的机型适配或者是糟糕的网络情况.当crash发生时,系统会kill掉正在执行的程序,现象就是闪退或者提示用户程序已停止运行.更糟糕的是,当用户发生了crash,开发者却无法得知程序为何crash,因此需要知道用户当时的crash信息.为此Android提供了处理这类问题的方法,即Thread类中的一个方法setDefaultUncaughtExceptionHandl…
示例代码下载 : http://download.csdn.net/detail/han1202012/8638801; 一. 崩溃日志本地存储 1. 保存原理解析 崩溃信息本地保存步骤 : -- 1. 自定义类实现 UncaughtExceptionHandler : public class CrashHandler implements UncaughtExceptionHandler; -- 2. 设置该自定义的 CrashHandler 类为单例模式 : // 单例模式 private…
在Android应用crash的类型中,native类型crash应该是比较难的一种了,因为大家接触的少,然后相对也要多转几道工序,所有大部分对这个都比较生疏.虽然相关文章也有很多了,但是我在刚开始学的过程中还是遇到一些问题,下面一一记录,以便将来翻阅. 分析native crash 日志需要几个东西: addr2line,objdump,ndk-stack等几个工具 带symbols的so文件 log log native crash的日志都是从一行星号(*** *** *** *** ***…
原文再续,书接上回:<使用logcat快速抓取android崩溃日志>中提到的工具包可以下载拉~ <使用logcat快速抓取android崩溃日志>:http://www.cnblogs.com/medsonk/p/6344373.html android调试工具包v1.0.rar readme.txt: 写在最前:--为了更好理解使用,我建议大家能打开bat看看我写了什么-------------------------------------------------------…
原文再续,书接上回:<使用logcat快速抓取android崩溃日志>中提到的工具包可以下载拉~ <使用logcat快速抓取android崩溃日志>:http://www.cnblogs.com/medsonk/p/6344373.html android调试工具包v1.1.0.rar              <------------ 工具包点这下载!! google最新adb下载地址                     <------------ 需要fq下载…
最近一直在做有关内存方面的优化工作,在做优化的过程,除了关注内存的申请量以及GC的情况之外,我们经常需要想方法找出是那些对象占用了大量内存,以及他们是如何导致GC的,这意味着我们需要获取对象申请的信息(大小,类型,堆栈等),我们这篇文章来介绍下几种获取对象申请信息的方法 Allocation Trakcer Allocation Tracker是android studio自带的一个功能,我们可以在MemoryMonitor中打开使用: 如上图,点击红框按钮,然后操作app,开始allocati…
Flume介绍Flume是Apache基金会组织的一个提供的高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力. 当前Flume有两个版本,Flume 0.9x版本之前的统称为Flume-og,Flume1.X版本被统称为Flume-ng. 参考文档:http://archive.cloudera.com/cdh5/cdh/5/flume-ng-1.5…
转载请注明出处:http://blog.csdn.net/fishle123/article/details/50823358 我们的应用不可避免的会发生crash,假设是在调试阶段,我们能够使用Logcat查看异常信息.可是假设应用公布之后呢?假设在用户那边crash了,假设我们能够捕获这些crash信息,那么对我们定位crash原因并修复问题是非常有帮助的. 应用crash就可以能是Java层的异常导致的,也可能是native层导致,以下分别来看一下该怎样处理. 1 Java层的未捕获异常处…
ExpandableListView 是一个可以实现下拉列表的控件,大家可能都用过QQ,QQ中的好友列表就是用ExpandableListView实现的,不过它是自定义的适配器.本篇 博客除了要介绍ExpandableListView的使用,还整合了获取SIM的状态,这个很简单也就是获取系统服务,再调用相应的方法就可以实现,在 这里只是记录一下. 本篇博客要实现效果图如下: 除了子列表不怎么好看之外,组列表还是蛮好看的,这里只是为了演示,子列表就没做特别的处理. 布局文件: /SIM_Card_…
  android获取手机cpu并判断是单核还是多核 /** * Gets the number of cores available in this device, across all processors. * Requires: Ability to peruse the filesystem at "/sys/devices/system/cpu" * @return The number of cores, or 1 if failed to get result */ p…
Android记录3--ExpandableListView使用+获取SIM卡状态信息 2013年8月9日Android记录 ExpandableListView是一个可以实现下拉列表的控件,大家可能都用过QQ,QQ中的好友列表就是用ExpandableListView实现的,不过它是自定义的适配器.本篇博客除了要介绍ExpandableListView的使用,还整合了获取SIM的状态,这个很简单也就是获取系统服务,再调用相应的方法就可以实现,在这里只是记录一下. 本票博客要实现效果图如下: 除…
error_log() 是发送错误信息到某个地方的一个函数,在程序编程中比较常见,尤其是在程序调试阶段. bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] ) 把错误信息发送到 web 服务器的错误日志,或者到一个文件里. message 应该被记录的错误信息.信息长度限制:The default seem to be 1024…
TelephonyManager是一个管理手机通话状态.电话网络信息的服务类.该类提供了大量的getXxx(),方法获取电话网络的相关信息. TelephonyManager类概述: 可用于訪问有关设备上的电话服务信息. 应用程序能够使用这个类的方法来确定电话服务和状态,以及訪问某些类型的用户信息.应用程序还能够注冊一个侦听器以接收的电话状态变化通知. 你不能直接实例化这个类;相反,你能够通过Context.getSystemService(Context.TELEPHONY_SERVICE)方…
一.错误级别 Error > Warn > Info > Debug > Verbose(冗余) 二.Android项目日志查看视图 Console视图只能看项目的部署到模拟器上的信息,开发日志信息只能在LogCat视图上看.在LogCat视图上有按钮可以进行错误级别的筛选.比如点击Info按钮,会显示错误级别大于等于Info级别的日志信息. 三.输出日志信息 private final String tag = "xyLog"; public void tes…
经常遇到要获取Android手机设备的相关信息,来进行业务的开发,比如经常会遇到要获取CPU的类型来进行so库的动态的下载.而这些都是在Android的Build类里面.相关信息如下: private String loadSystemInfo() { StringBuilder sb = new StringBuilder(); sb.append("主板:" + Build.BOARD + "\n"); sb.append( "系统启动程序版本号:&q…
保留全部Android crash信息 framework/base/core/java/com/android/internal/os/RuntimeInit.java 又一次以下这个函数,增加自己的代码,把信息保存下来,或者发回server */     private static class UncaughtHandler implements Thread.UncaughtExceptionHandler {         public void uncaughtException(…
Android的版本信息可以通过android.os.Build获得,电话信息可以通过TelephonyManager获得,代码如下:     private void get_infor(){ sdk = android.os.Build.VERSION.SDK;; release = android.os.Build.VERSION.RELEASE; user = android.os.Build.USER;    TelephonyManager tm = (TelephonyManage…
写入日志: 首先我的爬虫 name= article scrapy crawl article -s LOG_FILE=wiki.log 输出为不同格式: scrapy crawl article -o articles.csv -t csv scrapy crawl article -o articles.json -t json scrapy crawl article -o articles.xml -t xml…
1.获取应用程序的版本号: private String getAppVersionName() { String versionName = ""; try { PackageManager pm = this.getPackageManager(); PackageInfo pi = pm.getPackageInfo(); versionName = pi.versionName; ) { return ""; } } catch (Exception e)…