定义方法getAppProcess

类StreamCousumer的定义见上篇文章同时用到Process和Thread

/**
* 运行PS命令得到进程信息
*
*
@return USER PID PPID VSIZE RSS WCHAN PC NAME root 1 0 416 300 c00d4b28 0000cd5c S /init
*/
private List<String> getAllProcess()
{
List<String> orgProcList = new ArrayList<String>();
Process proc = null;
try
{
proc = Runtime.getRuntime().exec("ps");
StreamConsumer errorConsumer = new StreamConsumer(proc.getErrorStream());
StreamConsumer outputConsumer = new StreamConsumer(proc.getInputStream(), orgProcList);
errorConsumer.start();
outputConsumer.start();
if (proc.waitFor() != 0)
{
Log.e(TAG, "getAllProcess proc.waitFor() != 0");
recordLogServiceLog("getAllProcess proc.waitFor() != 0");
}
} catch (Exception e)
{
Log.e(TAG, "getAllProcess failed", e);
recordLogServiceLog("getAllProcess failed");
} finally
{
try
{
proc.destroy();
} catch (Exception e)
{
Log.e(TAG, "getAllProcess failed", e);
recordLogServiceLog("getAllProcess failed");
}
}
return orgProcList;
}

定义recordLogServiceLog

/**
* 记录日志服务的基本信息 防止日志服务有错,在LogCat日志中无法查找
* 此日志名称为Log.log
*
*
@param msg
*/
private void recordLogServiceLog(String msg) {
if (writer != null) {
try {
Date time = new Date();
writer.write(myLogSdf.format(time) + " : " + msg);
writer.write("\n");
writer.flush();
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, e.getMessage(), e);
}
}
}

定义变量writer

private OutputStreamWriter writer;

定义变量myLogSdf

private SimpleDateFormat myLogSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

给writer赋值

try {
writer = new OutputStreamWriter(new FileOutputStream(
LOG_SERVICE_LOG_PATH, true));
} catch (FileNotFoundException e) {
Log.e(TAG, e.getMessage(), e);
}

定义变量

private String LOG_PATH_MEMORY_DIR;        //日志文件在内存中的路径(日志文件在安装目录中的路径)
private String LOG_SERVICE_LOG_PATH; //本服务产生的日志,记录日志服务开启失败信息
private String logServiceLogName = "Log.log";//本服务输出的日志文件名称

给变量LOG_PATH_MEMORY_DIR和LOG_SERVICE_LOG_PATH赋值

LOG_PATH_MEMORY_DIR = getFilesDir().getAbsolutePath() + File.separator + "log";
LOG_SERVICE_LOG_PATH = LOG_PATH_MEMORY_DIR + File.separator + logServiceLogName;

 File android.content.ContextWrapper.getFilesDir() 

public File getFilesDir () 

Returns the absolute path to the directory on the filesystem where files created with openFileOutput(String, int) are stored.

Returns
Returns the path of the directory holding application files.

posted on 2012-03-13 16:24  习以常  阅读(399)  评论(0编辑  收藏  举报