难以定位的Crash怎么修?



难以定位的Crash怎么修?

1. 首先要根据实际情况,设置一些的crash相关指标,比如整体的crash rate不要超过0.2%, 某个crash影响的人数与数量,不要超过预期值。是的,我的意思是crash未必一定要修复,理论上大部分的都是可以修复的,但往往投入的精力与回报不成比例,也许我们可以把精力放在其它地方。另外就Android系统这碎片化的程度,各种兼容性问题太多太奇葩,我曾负责过一个crash顽疾整理工作,发现影响人数1~2个的一些Crash, 居然有超过4000种,尼玛我看都看不完,谈何一个个分析处理?


2. 根据crash的严重程度、影响范围,把值得修的问题都列出来,根据优先级逐个处理,新出现的crash理论上是都需要修复的。


3. 善用Google、stackoverflow, 耐心找找,大部分的问题别人也应该出现过,也头痛过,可能最终的现象不一样,但也许能在一些问题里找到蛛丝马迹。


4. 实在找不到的,也许是收集到的信息有限,可以补充收集更多信息,一些第三方crash收集分析平台,比如crashlytics,其实也支持上传Log, 在关键地方多打些Log, 尽量保存更多crash现场附近的信息,异常要处理好,经常是一些异常被不合理的吃掉了,导致问题被掩盖。


5. 还是不行就换个同事看看,别觉得丢脸,很多时候未必是水平问题,人很容易陷入到自己的思路里出不来。


6. 同事大牛都请教过了,还是没辙?二分大法好,看这个crash是哪个版本开始出现的,一点一点定位到具体版本,再一点一点定位到具体的change,这就要求持续集成与代码管理要做到位。我们有不少超级难搞的问题,就是这种方式解决的,这种比较适合有一定重现概率的问题,如果完全没头绪重现,也只能根据提交的change, 根据经验联想猜测其可能性了。


7. 如果还不行,只能用神器了,我的微信公众号里有介绍 《Appsee: 为什么叫它神器?》, 其中有个功能,可以直接查看每次crash之前用户都干了些啥,如果这还不能定位问题,有点说不过去吧。



Read full article from 难以定位的Crash怎么修?


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts