編輯:關於Android編程
如果你想在你的Android程序中自動打印MainActivity.onCreate(line:37)這種類名.方法名(行數)的日志該如何實現呢?
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace(); System.out.println("call oncreate method"); System.out.println("stacktrace len:" + stacktrace.length); for (int i = 0; i < stacktrace.length; i++) { System.out.println("---- the " + i + " element ----"); System.out.println("toString: " + stacktrace[i].toString()); System.out.println("ClassName: " + stacktrace[i].getClassName()); System.out.println("FileName: " + stacktrace[i].getFileName()); System.out.println("LineNumber: " + stacktrace[i].getLineNumber()); System.out.println("MethodName: " + stacktrace[i].getMethodName()); } }在onCreate方法中調用getStackTrace方法獲取調用棧的信息。打印的結果如下:
private static String generateTag(StackTraceElement stack){ String tag = "%s.%s(L:%d)"; String className = stack.getClassName(); className = className.substring(className.lastIndexOf(".")+1); tag = String.format(tag, stack.getClassName(),className,stack.getLineNumber()); tag = customTagPrefix==null?tag:customTagPrefix+":"+tag; return tag; }CustomTagPrefix是自定義的前綴。 包裝LOG:
public static void d(String content){ if (!allowD) { return ; } StackTraceElement caller = Thread.currentThread().getStackTrace()[3]; String tag = generateTag(caller); Log.d(tag, content); } public static void d(String content,Throwable thr){ if (!allowD) { return; } StackTraceElement caller = Thread.currentThread().getStackTrace()[3]; String tag = generateTag(caller); Log.d(tag, content,thr); }getStackTrace()[3],取第四個的原因是前兩個分別為vm和Thread的方法,下標2是當前的d()方法,調用d()的方法的下標為3。
開發項目,多人合作開發變得越來越重要了,在此同時,使用git作為協同工具也是越來越多,在此,介紹一下egit取消文件版本控制的方法。(egit即為eclipse中的git
相關閱讀:ReactiveCocoa代碼實踐之-更多思考ReactiveCocoa代碼實踐之-RAC網絡請求重構這一節是自己對網絡層的一些重構,本節是自己一些代碼小實
主要思想:將一個view設計成多層:背景層,含中獎信息等;遮蓋層,用於刮獎,使用關聯一個Bitmap的Canvas在該Bitmap上,使用它的canvas.drawPat
這就需要把.png格式的圖片轉成.9.png格式,.9.png就是後綴名。在安裝Android-SDK時自帶了<draw9patch.bat>可以把.png格