iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 30
0
自我挑戰組

Android初學筆記系列 第 30

Day 30 - Timber與謝幕

今天是鐵人賽的最後一天,雖然也想寫感言結束但我內向木訥不善表達,還是介紹一個簡單的套件來開場。

Timber是個用來印出log的套件,為什麼要用Timber而不用原本的Log.d()方式勒?因為Google建議在發出正式版本時將Debug用的log都去除,以免有心人士利用這些訊息拆解運作架構,但發布時把所有的log去除而開發時再弄回來會很累阿!Timber就能無痛為我們解決這個問題,讓我們的log只在開發中顯示。

Timber

首先加入dependencies

compile 'com.jakewharton.timber:timber:4.5.0'

在MyApplication中判斷是否為開發中並初始化Timber,若是在正式環境則Timber未初始化也就不會印出log。建立MyApplication的方式可參考Day21的Stetho安裝部分

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        // 若目前在開發狀態,初始化Timber
        if (BuildConfig.DEBUG) {
            Timber.plant(new Timber.DebugTree());
        }
    }
}

初始化完成之後就可以在專案任何地方使用

Timber.d("Hello Timber");

Timber預設的log標題即為當前Class名稱,後面Hello Timer是要印出的訊息,若在MainActivity執行上面那行則結果會像這樣
http://ithelp.ithome.com.tw/upload/images/20170114/20103849SZe7idJQbv.png

Timber也支援String format,可以像這樣印出參數

String name = "Ivan";
Timber.d("input name = %s", name);

大概就是這樣子,可以在開發初期就使用省的之後發佈時還要處理log喔。


謝幕

連續30天發文真的是挺累的,而且我沒什麼腦袋,每天的說明文字都寫超久,下班吃完飯就要開始準備以免來不及當日寫完,倉促中若有寫錯的地方還請不吝指正。

這系列只講到Android的皮毛,後續還有很多方向可以學習,列出幾個網站供大家參考:

  • GiveMePasS's Android惡補筆記 - 很多元件和觀念的介紹,用很簡要的說明讓我們直搗核心運用,尤其元件介紹我覺得很適合入門時練習。
  • Android Best Practice - 介紹幾個開發觀念,有點經驗後可以讀一下並回頭修正自己的專案。
  • Reddit AndroidDev - Reddit討論區的Android版,可以看別人討論各式主題並從中學習。
  • Android Weekly - 每周會有教學文、新消息和Library分享等等,訂下去就對了。
  • Google Developers - Google工程師們經營的部落格,一些實作練習我覺得寫的超棒,畢竟是開發者本人寫的嘛。
  • Android Developers - 官方的Google+,會有各種最新消息,沒事就可以逛一下。

最後感謝各位讀者的陪伴,雖然我有點懷疑那個點閱數是真是假,但我每一篇都很認真寫所以感謝看過的每一個人,還有wesley在廢物群中異軍突起一同參加活動,並用你可悲的發文達成率來襯托我的認真,明年朝正式組邁進還請你持續發揮了。

大家再見!

/images/emoticon/emoticon39.gif


上一篇
Day 29 - 背景服務Service
系列文
Android初學筆記30

尚未有邦友留言

立即登入留言