如何以编程方式找到我的Android应用程序上使用的内存?
我希望有办法做到这一点.另外,我如何获得手机的免费记忆?
如何以编程方式检测Android应用程序可用的应用程序堆大小?
我听说有一个功能可以在SDK的更高版本中执行此操作.无论如何,我正在寻找适合1.5及以上的解决方案.
我正在使用minSdkVersion ="14"和targetSdkVersion ="17"开始一个新的应用程序.它包含一个6页的viewpager.有3个网页浏览量和3个其他视图.
当我通过单击后退或主页按钮将我的应用程序推送到后台时,它在"缓存后台进程"中使用大约40MB,我不明白为什么.
这是我的一个webview的示例:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.RelativeLayout;
public class Presentation extends Fragment {
boolean isOption = false;
RelativeLayout main = null;
WebView web_main = null;
public Presentation () {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
main = (RelativeLayout) inflater.inflate(R.layout.webview, container, false);
return main;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
web_main = …Run Code Online (Sandbox Code Playgroud) 我看过DDMS,但没有看到任何东西.谢谢.
在我的应用程序中有两个活动,即A和B.
活动A:
它有一个列表,可以简要显示有关项目的信息.单击A上的项目时,它会加载活动B.
活动B:
它有两个Web视图和几个列表视图.活动顶部由标题Web视图占用.活动的下半部分具有选项卡主机,它在第一个选项卡中托管第二个Web视图,其余每个选项卡都包含一个列表视图.
问题:
当用户从A导航到B时,堆大小会显着增加.即使在我从B导航回A之后,堆大小仍然是相同的.甚至没有字节减少,实际上它有时会增加.是的,因为这些网页浏览量.我已阅读有关SO和其他网站上的Web视图内存泄漏的信息.我按照这里提到的方法
无论什么堆大小都没有回到导航到B之前的状态.
真的很感激,如果有人可以指导我找到可能的解决办法
注意:
我已经阅读了这篇文章并在SO上关注了这个问题. WebView中的内存泄漏
编辑:
我已经尝试过在B中没有Web视图,并且堆大小的增加非常小于0.5 MB但是在Web视图中它的折痕增加了4-5 MB
堆大小日志(按照所提建议得到了在这里)
onCreate B
debug.heap native: allocated 4.11MB of 4.17MB (0.01MB free) in []
debug.memory: allocated: 12.00MB of 96.00MB (1.00MB free)
onDestroy B
debug.heap native: allocated 8.66MB of 10.08MB (0.48MB free) in []
debug.memory: allocated: 12.00MB of 96.00MB (1.00MB free)
on Resume A
debug.heap native: allocated 7.94MB of 10.08MB (1.32MB free) in []
debug.memory: allocated: 12.00MB of 96.00MB …Run Code Online (Sandbox Code Playgroud)