个人冲刺6
各个图表引入
package timeline.lizimumu.com.t.log;
import android.os.Environment;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import timeline.lizimumu.com.t.AppConst;
public class FileLogManager {
private static final String ALARM_LOG = "alarm.log";
private static final String LOG_PATH = Environment.getExternalStorageDirectory() + File.separator + AppConst.LOG_DIR;
private static final String LOG_FILE = LOG_PATH + File.separator + ALARM_LOG;
private static FileLogManager mInstance = new FileLogManager();
private FileLogManager() {
}
public static void init() {
new Thread(new Runnable() {
@Override
public void run() {
mInstance.doPrepare();
}
}).run();
}
public static FileLogManager getInstance() {
return mInstance;
}
private void doPrepare() {
File d = new File(LOG_PATH);
boolean m = true;
if (!d.exists()) {
m = d.mkdirs();
}
if (m) {
File f = new File(LOG_FILE);
if (!f.exists()) {
try {
boolean c = f.createNewFile();
if (!c) {
System.err.println("create file error");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public void log(String message) {
doPrepare();
if (!message.endsWith("\n")) {
message += "\n";
}
FileOutputStream outputStream = null;
PrintWriter writer = null;
try {
outputStream = new FileOutputStream(LOG_FILE, true);
writer = new PrintWriter(outputStream);
writer.write(message);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (writer != null) writer.close();
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
声明
package timeline.lizimumu.com.t.app;
import android.app.Application;
import android.content.Intent;
import com.fancy.androidutils.utils.ToastUtils;
import java.util.ArrayList;
import java.util.List;
import timeline.lizimumu.com.t.AppConst;
import timeline.lizimumu.com.t.data.AppItem;
import timeline.lizimumu.com.t.data.DataManager;
import timeline.lizimumu.com.t.db.DbHistoryExecutor;
import timeline.lizimumu.com.t.db.DbIgnoreExecutor;
import timeline.lizimumu.com.t.service.AppService;
import timeline.lizimumu.com.t.util.CrashHandler;
import timeline.lizimumu.com.t.util.PreferenceManager;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
PreferenceManager.init(this);
ToastUtils.init(this);
getApplicationContext().startService(new Intent(getApplicationContext(), AppService.class));
DbIgnoreExecutor.init(getApplicationContext());
DbHistoryExecutor.init(getApplicationContext());
DataManager.init();
addDefaultIgnoreAppsToDB();
if (AppConst.CRASH_TO_FILE) CrashHandler.getInstance().init();
}
private void addDefaultIgnoreAppsToDB() {
new Thread(new Runnable() {
@Override
public void run() {
List<String> mDefaults = new ArrayList<>();
mDefaults.add("com.android.settings");
// mDefaults.add(BuildConfig.APPLICATION_ID);
for (String packageName : mDefaults) {
AppItem item = new AppItem();
item.mPackageName = packageName;
item.mEventTime = System.currentTimeMillis();
DbIgnoreExecutor.getInstance().insertItem(item);
}
}
}).run();
}
}