1.單例引用activity實例導致內存泄漏
項目中檢測人臉部分需要用到so庫中的接口,因此封裝了一個單例來管理so庫中的接口調用,但是在單例中傳入了activity,因爲單例的生命週期是遍佈整個app的,而且又引用到activity,那麼activity退出時就無法釋放,導致內存泄漏。解決辦法很簡單,加入如下代碼即可。
mContext = context.getApplicationContext();
2.網絡返回的json字符串未做異常處理。
3.okhttp亂用,網絡連接封裝有問題,導致部分網絡接口連接時會生存新的連接,甚至在下載圖片時,竟然新建一個okhttpclient,就導致了網絡連接數量越來越多的問題。完善網絡封裝,okhttpclient只保持兩個,連接兩個不同的ip地址,之後app的網絡連接數量就保持在了10個左右。