2015年5月23日 星期六

Android 開發 (九十) crashlytics 3.0 intro. Fabric

最近使用的crashlytics更新了,並且更名為Fabric,為了要跟上流行,所以就立刻將我的app做了升級的測試,其實主要並沒有太大的變更,不過這次主要要特別介紹兩個功能,
或許是舊有的,也可能是新的,小弟已經許久沒去follow他的文件

第一個功能是,可以紀錄crash的user資料,從前我們crash常常很難複製,其中一個原因就是我們不曉得使用者是誰,通常crash的人只會在googleplay上面寫




基於他們非常有用的提供協助給予我們線索,我想我們可以很快的解決掉這個問題

沒錯,現實是殘酷的,user絕對不可能會告訴我們他是在什麼樣的情境,什麼樣的畫面死掉
你只會看到他留下了一顆星加上不理性評語,所以怎麼辦,我們要想辦法在crash前留下更多的線索

而crashlytics提供了我們這樣的功能

        Crashlytics.setUserIdentifier("234489032");
        Crashlytics.setUserName("ted");
        Crashlytics.setUserEmail("123@google.com");

在app crash的時候就會將user資訊帶到他們的server去


這樣我們就又多了一項資訊可以判斷是否跟特定user有關

另一個功能我覺得也是很實用的功能,不知道大家是否也有以下類似的問題



app並不會crash但是user反應系統異常,這個問題要怎麼重現我也煩惱了很久
不過就在我看到了crashlytics的另一個功能之後,所有問題都迎刃而解啊

首先app不會crash最主要的原因一定是我們有做try catch,或者是額外的if else 處理..
所以我們就可以在那些判斷的地方將crashlytics的log功能加入

        try {
            throw new Exception();
        } catch (Exception e) {
            Crashlytics.log("something more info");
            Crashlytics.logException(e)
        }

如上,我們可以將更多的訊息帶入log 並且 使用 logException
這樣我們就可以在crashlytics看到更多相關的問題



這樣我們就有足夠的線索可以解決這些bug了

不過目前crashlytics還有一個很大的問題,就是有時候我們無法很確切地知道是死在哪個畫面,當下的view hierarchy,希望不久後會有相關的library能幫助我們提供相關的訊息啊

沒有留言:

張貼留言