• Stars
    star
    1,270
  • Rank 37,046 (Top 0.8 %)
  • Language
    Java
  • License
    MIT License
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🔥🔥🔥 - 崩溃日志手机端显示 ,测试妹妹的最爱,开发哥哥的小棉袄

SpiderMan

MIT

SpiderMan能为您做的事:

  • 在Android手机上自动显示闪退崩溃信息,直接分享给相关开发人员!
  • 再也不用担心测试妹妹给你重现怎样操作才能触发闪退崩溃的尴尬!
  • 再也不用担心产品给你说哪儿哪儿会闪退崩溃,但是又不能场景还原的无奈!
  • 再也不用担心某些国产Rom禁止异常log输出!
  • 再也不用担心开发工具异常log信息输出时灵时不灵!
Debug环境 Share
crash_info crash_info_share

引入依赖

v1.1.8开始使用jitpack仓库,记得添加jitpack仓库的引用。

maven { url 'https://jitpack.io' }

appbuild.gradle引入依赖:

def spider_man = "v1.1.9"

方式一

debugImplementation "com.github.simplepeng.SpiderMan:spiderman:${spider_man}"
releaseImplementation "com.github.simplepeng.SpiderMan:spiderman-no-op:${spider_man}"

方式二

implementation "com.github.simplepeng.SpiderMan:spiderman:${spider_man}"

上面方式一debug环境有奔溃信息提示,release环境则没有,方式二都有,但是记得添加混淆。

直接显示错误页面

有时候可能因为一些特殊环境下才会发生的崩溃很难复现,所以我们不得以会将一些代码放到try/catch中运行,这样虽然保证了可以不崩溃,但是当发生崩溃时又会很容易忽略掉错误信息。现在我们可以直接在catch代码块中调用SpiderMan.show(Throwable e)方法,这样就可以直接显示崩溃提示页面。

try {
      String text = null;
      text.toUpperCase();
    } catch (Exception e) {
      SpiderMan.show(e);
}

Crash回调

发生crash时,如果你希望能拿到异常信息,保存到本地或者其他自定义操作,那么你可以使用下面的回调方法。

//回调crash
SpiderMan.setOnCrashListener(new SpiderMan.OnCrashListener() {
    @Override
    public void onCrash(Thread t, Throwable ex) {
        saveCrash(t, ex);
    }
});

SpiderManUtils提供了一些封装好的方法,例如saveTextToFileparseCrash,自行按需使用。

如果release也需要回调,请使用release回调库,从1.1.9开始提供。

releaseImplementation "com.github.simplepeng.SpiderMan:spiderman-callback:${spider_man}"

冲突

androidx

项目已经依赖了androidx.appcompat:appcompat包,如果产生冲突请使用下面的方式依赖。

debugImplementation("com.github.simplepeng.SpiderMan:spiderman:${spider_man}") {
    exclude group: "androidx.appcompat"
}
releaseImplementation("com.github.simplepeng.SpiderMan:spiderman-no-op:${spider_man}") {
    exclude group: "androidx.appcompat"
}

support

项目已经依赖了com.android.support:appcompat-v7包,如果产生冲突请使用下面的方式依赖。

debugImplementation("com.github.simplepeng.SpiderMan:spiderman:${spider_man}") {
    exclude group: "com.android.support"
}

releaseImplementation("com.github.simplepeng.SpiderMan:spiderman-no-op:${spider_man}") {
    exclude group: "com.android.support"
}

混淆

-keep class com.simple.spiderman.** { *; }
-keepnames class com.simple.spiderman.** { *; }
-keep public class * extends android.app.Activity
-keep class * implements Android.os.Parcelable {
    public static final Android.os.Parcelable$Creator *;
}
# support
-keep public class * extends android.support.annotation.** { *; }
-keep public class * extends android.support.v4.content.FileProvider
# androidx
-keep public class * extends androidx.annotation.** { *; }
-keep public class * extends androidx.core.content.FileProvider

自定义界面样式

SpiderMan.setTheme(R.style.SpiderManTheme_Dark);

SpiderMan内置了两种主题样式lightdark

light dark custom

所有自定义属性定义在attrs.xml

  • smToolbar:toolbar的背景色
  • smToolbarText:toolb title的颜色
  • smToolbarShareText:分享文字按钮的颜色
  • smContentBackground:toolb下方内容的背景色
  • smIdentText:标签名字的颜色
  • smDescText:标签描述的颜色

具体可以参考app中的用法。

赞助

如果您觉得SpideMan帮助了您,可选择精准扶贫🙇🙇🙇

您的支持是作者继续努力创作的动力😁😁😁

萌戳下方链接精准扶贫⤵️⤵️⤵️

扶贫方式

技术支持Q群:1078185041

版本迭代

  • v1.1.9:增加crash-callbackmodule,升级gradle版本
  • v1.1.8:使用jitpack仓库
  • v1.1.7: 自动初始化
  • v1.1.6: 解决view id重名引发的bug
  • v1.1.5: 增加cpu-abiversionCodeversionName输出
  • v1.1.4: 切换到androidx
  • v1.1.3: change minSdkVersion to 14
  • v1.1.2: 解决FileProvider file_path重名bug(bug来源LuckSiege/PictureSelector)
  • v1.1.1: 新增直接显示错误页面的方法SpiderMan.show(Throwable e),优化错误类型
  • v1.1.0: 增加自定义界面主题和国际化
  • v1.0.9: 增加appcompat包冲突解决方案
  • v1.0.8: 发现很多小伙伴不会代理异常收集,所以删除了异常回调
  • v1.0.7: 删除spiderman-no-op never-crash,优化报错类型显示
  • v1.0.6: 增加spiderman-no-op
  • v1.0.5: 奔溃文本分享美化排版
  • v1.0.4: 崩溃输出改为error级别
  • v1.0.3: 增加 拷贝/分享 崩溃文字/图片信息
  • v1.0.2: 重构,新增设备信息
  • v1.0.1: 去除 allowBackup,label
  • v1.0.0: 首次上传

More Repositories

1

HeGuiChecker

🔥🔥🔥 基于Hook方案的合规化检测器
Java
183
star
2

Updater

🔥🔥🔥 - 基于DownloadManager封装的更新器,使用超简单!
Java
85
star
3

PickerLayoutManager

🔥🔥🔥 - 一个基于自定义LayoutManager的PickerView
Kotlin
83
star
4

VerCodeLayout

🔥🔥🔥 - 一个超好用的验证码,卡号,车牌号,IP地址->输入控件
Java
79
star
5

NineGridView

🔥🔥🔥 -可能最通用的九宫格布局
Kotlin
71
star
6

StackLayoutManager

🔥🔥🔥 - 一个可以堆叠的LinearLayoutManager
Kotlin
61
star
7

ViewPagerTransforms

🔥🔥🔥 - 给viewpager加上切换动画
Java
59
star
8

BubbleView

模仿QQ水泡拖拽效果,加破碎粒子效果
Java
52
star
9

wechat-scanner

微信扫一扫模块提取
Kotlin
30
star
10

KeepLearning

🔥🔥🔥 - 学习笔记
HTML
24
star
11

AndroidExamples

C
23
star
12

BitmapCanary

🔥🔥🔥 -Android Bitmap大图监控
Kotlin
19
star
13

MaxLineLayoutManager

🔥🔥🔥 - 当itemCount超过设定数量就固定高度的LayoutManager,类似maxHeight
Kotlin
17
star
14

MarketHelper

🔥🔥🔥 -跳转应用商店的帮助类
Kotlin
14
star
15

BackTwitter

回来吧,我的小蓝鸟!😭😭😭
Kotlin
11
star
16

NiceKTX

🔥🔥🔥 - 一个超赞的Kotlin扩展库
Kotlin
11
star
17

PagerGridView

🔥🔥🔥 - 快速实现网格分页切换布局,类似聊天的表情切换面板。
Kotlin
11
star
18

CatchTime

掘金App 沸点板块 2018进度条 widget实现
Kotlin
11
star
19

NiceStateView

🔥🔥🔥 - 一个超赞的页面状态切换库(加载中,空布局,网络错误,重试,自定义类型)
Kotlin
11
star
20

ItemDecor

🔥🔥🔥 - RecyclerView的ItemDecoration简易写法,轻松实现RecyclerView的Divider。
Kotlin
10
star
21

AddImageView

🔥🔥🔥 - 选择照片的自定义九宫格View,扩展性极高。
Kotlin
10
star
22

BuildingRecyclerView

🔥🔥🔥 - 像修建楼房一样使用RecyclerView
Kotlin
9
star
23

awesome-chrome-extensions

推荐好用的chrome拓展程序
8
star
24

BuildApkWatcher

监听应用安装完成
Kotlin
6
star
25

ActivityResultProxy

🔥🔥🔥 - 这是一个简化获取Activity返回值的库
Java
6
star
26

StateAdapter

🔥🔥🔥 - 用装饰器模式给RecyclerView添加一个有加载状态的Adapter(loading,empty,error,retry)
Kotlin
5
star
27

ParamsInterceptor

🔥🔥🔥 -给OkHttp添加公共请求参数的Interceptor
Kotlin
5
star
28

ZebraProgressBar

🔥🔥🔥 - 可能是Android最通用的条纹进度条
Kotlin
4
star
29

EasyPay

Java
4
star
30

LearningPage

记录看过的书籍,有意思的视频,播客或博客,多思考多复盘,Learn in Public!
4
star
31

How-To-Indie-Hacker

3
star
32

CalculatorCompose

仿MIUI计算器-Compose简易版
Kotlin
3
star
33

encodeVideo

Java
3
star
34

LoadMoreAdapter

🔥🔥🔥 - 用包装器模式给RecyclerView添加可以加载更多的Adapter
Kotlin
3
star
35

FlowRadioGroup

🔥🔥🔥 -瀑布流/流式的RadioGroup(单选组)
Java
3
star
36

LearnEnglish

大龄大专程序员-从零开始重学英语
3
star
37

LearnCompose

Compose的学习之路
Kotlin
2
star
38

merge_pay_code

Buy Me A Coffee
HTML
2
star
39

ffmpeg-android

C
2
star
40

MaterialTaskView

Java
2
star
41

blog

HTML
2
star
42

BLinkConverter

将B站客户端分享的短链转成长久有效的真实长链
Kotlin
2
star
43

NiceDialog

🔥🔥🔥 - Dialog的简易封装
Kotlin
1
star
44

MultiTypePagerAdapter

MultiType PagerAdapter for ViewPager
Java
1
star
45

LogView

一个应用内的Logcat
Kotlin
1
star
46

LoopViewpager

两种方式实现可以循环的viewpager
Java
1
star
47

RecyclerViewConstraint

Kotlin
1
star
48

simplepeng.github.io

https://www.simplepeng.com
JavaScript
1
star
49

duplicate_image_detection

Kotlin
1
star
50

NiceUI

🔥🔥🔥 - 一些小巧但实用的UI组件
Kotlin
1
star
51

PDialog

Kotlin
1
star