#crashlog
Android app crash logs to a file.
안드로이드 앱에서 Crash 로그를 파일로 기록하는 코드입니다.
기존 Android에서는 개발자 모드에서만 crash 로그를 기록합니다.
crashlog는 앱에 libcrashlog.so를 동적로딩하면, 앱에서 지정한 디렉토리로 crash log를 파일로 생성합니다.
![ViewPagerIndicator Sample Screenshots][1]
##edit
$vi local.properties
```
sdk.dir=<your sdk path>
ndk.dir=<your ndk path>
NDKBUILD=ndk-build (linux, mac) or ndk-build.cmd (windows)
```
##Complie
```
$make or ./gradlew assemble
```
하면 컴파일을 합니다.
```
ls app/build/outputs/apk/
app-debug.apk app-debug-unaligned.apk app-release-unsigned.apk manifest-merger-debug-report.txt manifest-merger-release-report.txt
```
apk 파일이 생성됩다.
#디렉토리및 앱 버전정보 수정
```
vi example/android/src/com/example/crashlog/CrashlogExampleActivity.java
sJni.setLogPath(path); // log path 결정
sJni.setAppVersion(APP_VERSION); // 앱 버전 결정
```
##Test
앱에서 force crash 버튼을 누르면 {ExternalStorageDirectory}/crashlog/crash.txt 파일이 생성됩니다.
```
cat {ExternalStorageDirectory}/crashlog/crash.txt
Time : 2014-07-29 15:11:08 KST
Build fingerprint: 'samsung/c1skt/c1skt:4.3/JSS15J/E210SKSUGND1:user/release-keys'
pid: 31788, tid: 31788, name: xample.crashlog >>> com.example.crashlog <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
r0 41e25b00 r1 a5b0001d r2 00000001 r3 00000000
r4 57e7ead0 r5 41e247c0 r6 00000000 r7 400a9dd4
r8 bef702a0 r9 400a9dcc sl 41e247d0 fp bef702b4
ip 5c5f8409 sp bef702a0 lr 40b3c4d0 pc 5c5f840c
backtrace: 17
#00 pc 0000240c /data/app-lib/com.example.crashlog-1/libcrashlog.so (Java_com_example_crashlog_CrashlogExampleJni_forceCrash+3)
#01 pc 0001e4cc /system/lib/libdvm.so (dvmPlatformInvoke+112)
#02 pc 0004e99b /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
#03 pc 00050651 /system/lib/libdvm.so (dvmResolveNativeMethod(unsigned int const*, JValue*, Method const*, Thread*)+256)
#04 pc 000278e0 /system/lib/libdvm.so
#05 pc 0002be80 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#06 pc 00060dbb /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+350)
#07 pc 00068a7f /system/lib/libdvm.so
#08 pc 000278e0 /system/lib/libdvm.so
#09 pc 0002be80 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#10 pc 00060afd /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+292)
#11 pc 0004a57b /system/lib/libdvm.so
#12 pc 00054e63 /system/lib/libandroid_runtime.so
#13 pc 0005638b /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+378)
#14 pc 0000105b /system/bin/app_process
#15 pc 0000dc4f /system/lib/libc.so (__libc_init+50)
#16 pc 00000d7c /system/bin/app_process
stack:
bef70260 40180000 /system/lib/libc.so (__libc_malloc_dispatch+4294672384)
bef70264 00000000
bef70268 5c5f8409 /data/app-lib/com.example.crashlog-1/libcrashlog.so (Java_com_example_crashlog_CrashlogExampleJni_forceCrash)
bef7026c 6030c428
bef70270 00000000
bef70274 40145ac1 /system/lib/libc.so (free+12)
bef70278 400e6494
bef7027c 40b6e51b /system/lib/libdvm.so
bef70280 00000000
bef70284 4006cb1b /system/lib/libbinder.so (android::Parcel::ipcSetDataReference(unsigned char const*, unsigned int, unsigned int const*, unsigned int, void (*)(android::Parcel*, unsigned char const*, unsigned int, unsigned int const*, unsigned int, void*), void*)+26)
bef70288 428ebfd0 /dev/ashmem/dalvik-heap (deleted)
bef7028c 41e247c0 [heap]
bef70290 40bcfc6c /system/lib/libdvm.so
bef70294 00000001
bef70298 df0027ad
bef7029c 00000000
#00 bef702a0 400a9dc8
........ ........
#01 bef702a0 400a9dc8
bef702a4 00000001
bef702a8 00000000
bef702ac 428ebfd0 /dev/ashmem/dalvik-heap (deleted)
bef702b0 401831f4 (__stack_chk_guard+4294664192)
bef702b4 40b6c99f /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+402)
#02 bef702b8 400a9dc8
bef702bc 5f152f84 /data/dalvik-cache/data@app@com.example.crashlog-1.apk@classes.dex
bef702c0 5c5f8409 /data/app-lib/com.example.crashlog-1/libcrashlog.so (Java_com_example_crashlog_CrashlogExampleJni_forceCrash)
bef702c4 41e247d0 [heap]
bef702c8 00000000
bef702cc 40b73f1d /system/lib/libdvm.so (dvmAddTrackedAlloc+24)
bef702d0 00000000
bef702d4 00000000
bef702d8 428f7ba8 /dev/ashmem/dalvik-heap (deleted)
bef702dc 401831f4 (__stack_chk_guard+4294664192)
bef702e0 00000012
bef702e4 40b48704 /system/lib/libdvm.so (dvmMalloc(unsigned int, int)+96)
bef702e8 00000008
bef702ec 41e247c0 [heap]
bef702f0 428f7b88 /dev/ashmem/dalvik-heap (deleted)
bef702f4 40bcfc6c /system/lib/libdvm.so
........ ........
#03 bef703d0 57afe4d0 /dev/ashmem/dalvik-LinearAlloc (deleted)
bef703d4 40b3c4d0 /system/lib/libdvm.so (dvmPlatformInvoke+116)
bef703d8 400a9bac
bef703dc 00000001
bef703e0 00000000
bef703e4 57afe4d0 /dev/ashmem/dalvik-LinearAlloc (deleted)
bef703e8 41e247c0 [heap]
bef703ec 40b6c9a7 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+410)
bef703f0 400a9bac
bef703f4 595e3e26 /system/framework/framework.odex
bef703f8 402a5ae7 /system/lib/libandroid_runtime.so
bef703fc 41e247d0 [heap]
bef70400 00000000
bef70404 401831f4 (__stack_chk_guard+4294664192)
bef70408 a5a0001d
bef7040c 00000000
........ ........
#04 bef70508 2f617661
bef7050c fffffe58
bef70510 40b4c79c /system/lib/libdvm.so (dvmMterpStd(Thread*))
bef70514 00000000
bef70518 bef705d0 [stack]
bef7051c 41e247c0 [heap]
bef70520 bef7053c [stack]
bef70524 57bb76b8 /dev/ashmem/dalvik-LinearAlloc (deleted)
bef70528 428b0d24 /dev/ashmem/dalvik-heap (deleted)
bef7052c 40b49e84 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+188)
```
[1]: https://raw.githubusercontent.com/seodong/crashlog/master/screens.png
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
#崩溃日志 Android 应用程序崩溃日志到文件。 这是将崩溃日志写入 android 应用程序中的文件的代码。 现有的 Android 日志崩溃日志仅在开发人员模式下。 当 crashlog 将 libcrashlog.so 动态加载到应用程序中时,它会在应用程序指定的目录中创建一个崩溃日志文件。 ##edit $vi local.properties sdk.dir=<your> ndk.dir=<your> NDKBUILD=ndk-build (linux, mac) or ndk-build.cmd (windows) ##Complie $make or ./gradlew assemble 编译。 ls app/build/outputs/apk/ app-debug.apk app-debug-unaligned.a
资源推荐
资源详情
资源评论
收起资源包目录
crashlog-master.zip (47个子文件)
crashlog-master
gradlew.bat 2KB
gradlew 5KB
app
src
main
res
values-v11
styles.xml 324B
menu
crashlog_example.xml 254B
values-v14
styles.xml 381B
drawable-hdpi
ic_launcher.png 7KB
drawable-xhdpi
ic_launcher.png 12KB
drawable-xxhdpi
ic_launcher.png 24KB
values
strings.xml 218B
styles.xml 680B
dimens.xml 213B
values-sw720dp-land
dimens.xml 269B
drawable-mdpi
ic_launcher.png 4KB
values-sw600dp
dimens.xml 196B
layout
activity_crashlog_example.xml 687B
jni
crashlogjni.cpp 1KB
sig_segv.c 13KB
backtrace
map_info.c 7KB
backtrace.h 3KB
backtrace-arm.c 16KB
backtrace-helper.h 593B
backtrace.c 7KB
symbol_table.h 780B
symbol_table.c 5KB
cp-demangle.c 123KB
cp-demangle.h 5KB
backtrace-arch.h 591B
properties.h 2KB
map_info.h 2KB
demangle.h 24KB
backtrace-helper.c 537B
Android.mk 424B
sig_segv.h 345B
Application.mk 166B
java
com
example
crashlog
CrashlogExampleActivity.java 1KB
CrashlogExampleJni.java 235B
AndroidManifest.xml 1KB
build.gradle 2KB
gradle
wrapper
gradle-wrapper.jar 49KB
gradle-wrapper.properties 232B
.gitignore 81B
Makefile 52B
README.md 7KB
settings.gradle 15B
LICENSE.txt 10KB
screens.png 35KB
build.gradle 301B
共 47 条
- 1
吴玄熙
- 粉丝: 0
- 资源: 4583
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于UC3842+LTS26Q1565A设计PC机充电器 硬件(原理图+PCB)工程文件.zip
- Hive SQL经典面试题,大数据SQL经典面试题
- Qt实现喷码器代码,实现二维码、条形码、图形的旋转、移动等
- 基于LM324芯片比较器传感器模块AD09设计硬件(原理图+PCB)工程文件.zip
- HTTP请求 - 记一笔-添加记账.jmx
- 2205040245凡永超硬间隔svm.ipynb
- Qt喷码器demo,演示软件,不是代码
- 目标跟踪-基于目标中心点同时进行目标检测+目标跟踪算法实现-项目源码-优质项目实战.zip
- Python《文本特征分析-全唐诗数据挖掘及分析 》+源代码
- Netron-Setup-4.5.0
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页