• 工作总结
  • 工作计划
  • 心得体会
  • 述职报告
  • 思想汇报
  • 发言讲话稿
  • 演讲稿
  • 申请书
  • 读后感
  • 报告材料
  • 策划方案
  • 当前位置: 写作资料库 > 其他范文 > 正文

    【安卓开发之调试实例】安卓移动应用开发实例

    时间:2018-08-15 16:29:30 来源:写作资料库 本文已影响 写作资料库手机站

    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;

    }

    }

    }