设为首页收藏本站

移动叔叔

搜索
查看: 810|回复: 0
打印 上一主题 下一主题

[教程] 联想 A765e 安卓开发之调试实例

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-16 08:54:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 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;
  }
  }
  }

-




您需要登录后才可以回帖 登录 | 注册

© 2008-2024 移动叔叔. 版权所有,专业的网络售后平台 ( 闽ICP备18006692号-3 )

商务合作点击这里给我发消息|Email:service@mobileuncle.com|手机版|移动叔叔     

GMT+8, 2024-11-29 03:37 , Processed in 0.214362 second(s), 12 queries , Gzip On, Memcache On.

返回顶部