在java核心库中,由于无法导入android的包,要想使用Log,最粗暴的方式就是用反射调用,还有一种方式就是移植Android的Log到java核心库中。
具体实现如下:
创建JLog.java
aosp/libcore/ojluni/src/main/java/java/lang
package java.lang;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.json.JSONObject;
public class JLog {
public static final String mTag = "Yooha-log";
public static final int INFO = 4;
public static final int ERROR = 6;
public static native int println_native(int bufID, int priority, String tag, String msg);
public static native int getpid();
public static void print_info(String tag, String info) {
try{
JSONObject jsinfo = new JSONObject();
jsinfo.put("Type", tag);
jsinfo.put("PID", getProcessID());
jsinfo.put("Info", info);
i(mTag, jsinfo.toString());
} catch (Exception e){
showException(e);
}
}
public static void print_stack(String type, String clz, String method, String ret, String...param) {
try{
JSONObject jsinfo = new JSONObject();
jsinfo.put("Type", type);
jsinfo.put("PID", getProcessID());