Android程序崩溃退出的时候,会将崩溃的堆栈信息保存在/data/tombstones目录下。该目录需要ROOT权限才能够访问。所以为了访问该路径,手机必须先ROOT破解。jni或者java代码崩溃的信息都被记录。该目录下会有九个tombstones_0(1-9),生成的崩溃信息会循环写入该文件中,测试之前可以讲所有的文件删除,就可以得到唯一的一个崩溃日志。生成的文件记录了详细的堆栈信息。
        为了拷贝到电脑上,需要通过adb shell进入手机终端,然后su,获取root权限,接着拷贝文件到sdcard上,退出adb shell,之后,通过adb pull /sdcard/tombstone_00 E:    拷贝到E盘
    该文件详细记录了代码崩溃时候的具体信息,包括了崩溃的堆栈,如果能够获取到该信息,就可以通知堆栈了解崩溃点的信息,但是一般情况下,我们看不到该文件。

    当我们发现/data目录为空的情况下,实际上表示我们没有root访问权限,(root是最高级的访问权限,而不是启动的时候的访问文件的权限,这个权限需要对android手机进行权限进行破解)

注意
    查看tombstons文件,发现很多情况下,没有提供源码错误的函数名称和源码的错误行号,可以通过ndk-stack.exe 程序对崩溃日志再次定位
    $NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump tombstons
例子
D:\Development\Android\android-ndk-r10b\ndk-stack.exe–sym armeabi-v7a –dump E:\docs\tombston_01 > E:/detail.txt

附录:
    不同的手机遇到空指针的时候,处理的方式是不一样的,小米手机直接闪退,而华为平板依然能够直接运行,跳过崩溃的错误,说明测试多种机型的重要性。

参考
http://cmzx3444.iteye.com/blog/1463035


更多相关文章

  1. android 信息(mms)的故事 (一)
  2. 让Android程序获得系统的权限,实现关机重启,静默安装等功能
  3. Android 蓝牙搜索不到设备(android M权限问题)
  4. Android平台上如何让应用程序获得系统权限以及如何使用platform
  5. android 手机安装应用程序(APK)权限详细对照表
  6. Android所设计的权限
  7. android下创建文件夹和修改其权限的方法
  8. Android 安全:移除不必要的三方依赖权限

随机推荐

  1. Android(安卓)分享 - 向其它 App 发送数
  2. Android排错: has leaked window com.and
  3. Android强、软、弱、虚引用
  4. android 单例模式和策略模式的结合使用
  5. 【Android(安卓)界面效果44】Android之圆
  6. Android实现仿淘宝购物车增加和减少商品
  7. Android全局异常处理(捕获异常,不弹出程序
  8. Android(安卓)帧动画的实例详解
  9. Android(安卓)CrashHandler编写自己的异
  10. Android(Java)中的Object