展会信息港展会大全

android开发之调试实例代码
来源:互联网   发布日期:2016-01-26 10:44:41   浏览:2297次  

导读:package AndroidApi; import android util Log; class Monitoring implements Runnable { public void run() { while (!Thread currentThread() isInterrupted()) { try { ...

package AndroidApi;

import android.util.Log;

class Monitoring implements Runnable

{

public void run()

{

while (!Thread.currentThread().isInterrupted())

{

try

{

Thread.sleep(100);

} catch (InterruptedException s)

{

Thread.currentThread().interrupt();

}

AndroidDebug.printVaryMemory();

}

}

}

public class AndroidDebug

{

private static boolean m_bIsDebug = false;

/**

* 设置调试模式

*

* @param bIsDebug

*/

public static void setMode(boolean bIsDebug)

{

m_bIsDebug = bIsDebug;

}

/**

* 是否调试模式

* @return

*/

public static boolean isDebug()

{

return m_bIsDebug;

}

/**

* 打印信息

*

* @param strTxt

*/

public static void println(String strTxt)

{

if (m_bIsDebug)

{

System.out.println(strTxt);

}

}

/**

* 打印信息

*

* @param strTxt

*/

public static void Log(String strTag, String strTxt)

{

if (m_bIsDebug)

{

Log.i(strTag,strTxt);

}

}

/**

* 强制回收垃圾,可用于检测析构函数,检测未使用对象是否有

*/

public static void gc()

{

if (m_bIsDebug)

{

System.gc();

}

}

/**

* 打印堆总量

*/

public static void printTotalMemory()

{

Runtime r = Runtime.getRuntime();

AndroidDebug.println("Total memory is :" + r.totalMemory());

}

/**

* 打印堆剩余量

*/

public static void printFreeMemory()

{

gc(); // 执行强制回收以获得准确的剩余量

Runtime r = Runtime.getRuntime();

AndroidDebug.println("Free memory is :" + r.freeMemory());

}

/**

* 打印堆变化量

*/

static long longPre = 0;

public static void printVaryMemory()

{

gc(); // 执行强制回收以获得准确的剩余量

Runtime r = Runtime.getRuntime();

long longNow = r.freeMemory();

if (longNow > longPre)

{

AndroidDebug.println("Free memory -> :" + (longNow - longPre));

longPre = longNow;

} else if (longNow < longPre)

{

AndroidDebug.println("Free memory <- :" + (longPre - longNow));

longPre = longNow;

}

}

/**

* 监控内存

*

* @param bIsOpen

*/

private static Thread m_pThread = null;

public static void setMonitore(boolean bIsOpen)

{

if (bIsOpen)

{

if (null == m_pThread)

m_pThread = new Thread(new Monitoring());

m_pThread.setDaemon(true);

m_pThread.start();

}

else

{

if (null != m_pThread)

{

m_pThread.interrupt();

m_pThread = null;

}

}

}

赞助本站

人工智能实验室

相关热词: 调试 android开发

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港