編輯:關於Android編程
以前在C/C++ 開發中,我們可以宏定義,Debug模式下,輸出日志,方便測試。Release模式下,無日志輸出。
使用Java時,Java 是解釋語言,無法編譯。就無模式之分了。有沒有辦法實現,Debug、Release版?
debug 輸出日志、調試信息。
release 發布版本,無輸出日志、調試信息。
辦法是人想出來的。
下面說說我的解決方案:
1 模擬C宏定義。
[java]
package cn.eben.hpc.define;
public final class BuildConfig {
public final static boolean isDebug = true;// 通過改變isDebug,實現Debug、Release版
}
2 重定義日志輸出類
[java]
package cn.eben.hpc.define;
import java.lang.reflect.Method;
import android.util.Log;
public class Trace {
public final static void e(String tag, String msg, Throwable tr) {
if (BuildConfig.isDebug)
Log.e(tag, msg, tr);
}
public final static void e(String tag, String msg) {
if (BuildConfig.isDebug)
Log.e(tag, msg);
}
public final static void e(String msg) {
if (BuildConfig.isDebug)
Log.e("", msg);
}
public final static void e(Throwable tr) {
if (BuildConfig.isDebug)
Log.e("", "", tr);
}
public final static void d(String tag, String msg) {
if (BuildConfig.isDebug)
Log.d(tag, msg);
}
public final static void d(String msg) {
if (BuildConfig.isDebug)
Log.d("", msg);
}
public final static void d(Throwable tr) {
if (BuildConfig.isDebug)
Log.d("", "", tr);
}
}
3 我們工程中使用:
原來使用
Log.i, Log.d, log.e ...
Log.i(TAG,“log”);
使用重定義的日志
Trace.i, Trace.d Trace.e...
Trace.i(“”, “”);
發布版本時,我們只需要將isDebug = false.即可。Release版就干干淨淨。無日志信息。
安畢。
是不是很簡單呀! :)
在游戲接入第三方RgSDK的時候,游戲支付出了問題,在點擊銀聯標志的時候,游戲崩潰。 通過詢問RgSDK的技術人員。發現在我根據文檔拷貝的所給的SDK的Demo裡的文件時
通常情況下,Android實現自定義控件無非三種方式。 Ⅰ、繼承現有控件,對其控件的功能進行拓展。 Ⅱ、將現有控件進行組合,實現功能更加強大控件。 Ⅲ、重寫View
使用Intent可以很方便在不同activity之間傳遞數據,這個也是官方推薦的方式,但是也有一定的局限性就是Intent無法傳遞不能序列化的對象,我們可以使用靜態變量來
今天在慕課上學了仿微信的滑動,於是就重新敲了代碼在原有的圖形上又增加了改變字體的顏色。這裡將代碼放在這裡便於以後學習。整個過程用了ViewPager與PagerAdapt