117 lines
3.7 KiB
Java
117 lines
3.7 KiB
Java
package com.gh.common.util;
|
||
|
||
import android.os.Debug;
|
||
import android.util.Log;
|
||
|
||
import com.gh.gamecenter.BuildConfig;
|
||
|
||
import java.lang.reflect.Field;
|
||
|
||
/**
|
||
* App的测试配置项
|
||
*/
|
||
public class AppDebugConfig {
|
||
|
||
/**
|
||
* debug模式,发布打包需要置为false,可以通过混淆让调试的log文本从代码文件中消除,避免被反编译时漏泄相关信息。
|
||
*/
|
||
public static final boolean IS_DEBUG = BuildConfig.DEBUG;
|
||
|
||
public static void logMethodName(Object object) {
|
||
if (IS_DEBUG) {
|
||
try {
|
||
Log.v(getLogTag(object), getMethodName());
|
||
} catch (Throwable e) {
|
||
}
|
||
}
|
||
}
|
||
|
||
private static String getLogTag(Object object) {
|
||
return object.getClass().getSimpleName() + "[" + object.hashCode() + "]";
|
||
}
|
||
|
||
private static String getMethodName() {
|
||
final Thread current = Thread.currentThread();
|
||
final StackTraceElement trace = current.getStackTrace()[4];
|
||
return trace.getMethodName();
|
||
}
|
||
|
||
public static void logMethodName(Class<?> cls) {
|
||
if (IS_DEBUG) {
|
||
try {
|
||
Log.v(getLogTag(cls), getMethodName());
|
||
} catch (Throwable e) {
|
||
}
|
||
}
|
||
}
|
||
|
||
public static void logParams(String tag, Object... params) {
|
||
if (IS_DEBUG) {
|
||
for (Object obj : params) {
|
||
Log.i(tag, "" + obj);
|
||
}
|
||
}
|
||
}
|
||
|
||
public static void logNetworkRequest(Object object, String request, String response) {
|
||
if (IS_DEBUG) {
|
||
Log.i(getLogTag(object), String.format("【Request】:%s", request));
|
||
Log.i(getLogTag(object), String.format("【Response】:%s", response));
|
||
}
|
||
}
|
||
|
||
public static void logFields(Class<?> classType) {
|
||
if (IS_DEBUG) {
|
||
try {
|
||
final String name = classType.getSimpleName();
|
||
final Field[] fs = classType.getDeclaredFields();
|
||
for (Field f : fs) {
|
||
Log.i(name, "Filed:" + f.getName());
|
||
}
|
||
} catch (Exception e) {
|
||
}
|
||
}
|
||
}
|
||
|
||
public static void logMethodWithParams(Object object, Object... params) {
|
||
if (IS_DEBUG) {
|
||
try {
|
||
final StringBuilder sb = new StringBuilder();
|
||
sb.append(getMethodName()).append(":");
|
||
for (Object obj : params) {
|
||
sb.append('[').append(obj).append("], ");
|
||
}
|
||
Log.v(getLogTag(object), sb.toString());
|
||
} catch (Exception e) {
|
||
}
|
||
}
|
||
}
|
||
|
||
public static void logMemoryInfo() {
|
||
if (IS_DEBUG) {
|
||
try {
|
||
// final ActivityManager activityManager = (ActivityManager) getActivity().getSystemService(Context
|
||
// .ACTIVITY_SERVICE);
|
||
// activityManager.getMemoryClass();
|
||
final String tag = "MM_INFO";
|
||
// Log.i(tag, "Class " + activityManager.getMemoryClass());
|
||
final long mb = 1024L * 1024L;
|
||
//Get VM Heap Size by calling:
|
||
Log.i(tag, "VM Heap Size:" + Runtime.getRuntime().totalMemory() / mb);
|
||
|
||
// Get VM Heap Size Limit by calling:
|
||
Log.i(tag, "VM Heap Size Limit:" + Runtime.getRuntime().maxMemory() / mb);
|
||
|
||
// Get Allocated VM Memory by calling:
|
||
Log.i(tag, "Allocated VM Memory:" + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime()
|
||
.freeMemory()) / mb);
|
||
|
||
//Get Native Allocated Memory by calling:
|
||
Log.i(tag, "Native Allocated Memory:" + Debug.getNativeHeapAllocatedSize() / mb);
|
||
} catch (Exception e) {
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|