Android 內(nèi)存泄漏

LeakCanary

監(jiān)測應用內(nèi)存泄露的輕量級工具,方便集成,簡潔清晰。

LeakCanary簡單集成:

  1. 在build.gradle中加入對應依賴:

     dependencies {
                  debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
                   releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
     }
    
  2. 在Application的onCreate方法中加入 LeakCanary.install(this):

     public class ExampleApplication extends Application {
                @Override 
                public void onCreate() {
                              super.onCreate();
                              LeakCanary.install(this);
                  }
        }
    

Hander導致的內(nèi)存泄漏解決

           public class SampleActivity extends Activity {

                     private static class MyHandler extends Handler {
                             private final WeakReference<SampleActivity> mActivity;

                             public MyHandler(SampleActivity activity) {
                                    mActivity = new WeakReference<SampleActivity>(activity);
                             }

                             @Override
                             public void handleMessage(Message msg) {
                                   SampleActivity activity = mActivity.get();
                                   if (activity != null) {
                                                      // ...
                                        }
                              }
                     }
      
                     private final MyHandler mHandler = new MyHandler(this);

                     private static final Runnable sRunnable = new Runnable() {
                                      @Override
                                      public void run() { /* ... */ }
                     };

                     @Override
                     protected void onCreate(Bundle savedInstanceState) {
                             super.onCreate(savedInstanceState);

                             mHandler.postDelayed(sRunnable, 1000 * 60 * 10);
                      }
            }

參考鏈接

LeakCanary 中文使用說明
Github: leakcanary

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容