今天是鐵人賽的最後一天,雖然也想寫感言結束但我內向木訥不善表達,還是介紹一個簡單的套件來開場。
Timber是個用來印出log的套件,為什麼要用Timber而不用原本的Log.d()方式勒?因為Google建議在發出正式版本時將Debug用的log都去除,以免有心人士利用這些訊息拆解運作架構,但發布時把所有的log去除而開發時再弄回來會很累阿!Timber就能無痛為我們解決這個問題,讓我們的log只在開發中顯示。
首先加入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執行上面那行則結果會像這樣
Timber也支援String format,可以像這樣印出參數
String name = "Ivan";
Timber.d("input name = %s", name);
大概就是這樣子,可以在開發初期就使用省的之後發佈時還要處理log喔。
連續30天發文真的是挺累的,而且我沒什麼腦袋,每天的說明文字都寫超久,下班吃完飯就要開始準備以免來不及當日寫完,倉促中若有寫錯的地方還請不吝指正。
這系列只講到Android的皮毛,後續還有很多方向可以學習,列出幾個網站供大家參考:
最後感謝各位讀者的陪伴,雖然我有點懷疑那個點閱數是真是假,但我每一篇都很認真寫所以感謝看過的每一個人,還有wesley在廢物群中異軍突起一同參加活動,並用你可悲的發文達成率來襯托我的認真,明年朝正式組邁進還請你持續發揮了。
大家再見!