Android App占用了大量内存

在我的Android应用程序上工作时,我最近检查了一个任务管理器,看看我的应用程序是如何进行内存的。

现在,我的应用程序有两个由AdMob服务执行的广告横幅,然后是Google Map的界面片段。 除了所有我然后有一个菜单,我在其中使用一个容器,我在Java代码中添加了视图。 我比列表视图更喜欢它,因为它更轻,更容易构建我想要对视图做的事情(我可以​​在添加/删除视图时使用Androids本机animation系统)。

添加到容器的视图由基于条件的循环结构添加。 它们的界面结构中的视图也具有利用小的局部可绘制的小图像视图。

所有这些都以某种方式累加到我的应用程序44.8 MB的内存,这似乎从以前的开发数字exception高。 这也是我第一次决定使用容器通过循环添加视图而不是使用list-view方法的适配器。

任何人都可以直接告诉我为什么我的应用程序会占用这么多内存吗? 这是我第一次使用所有这些组件:AdMob横幅,Google地图和添加了视图的容器。

我的LogCat没有显示任何低效做任何事情的警告。 只是好奇,看看我做错了什么。 如果有人有任何想法,我愿意提供任何源代码。

我认为44.8Mb对于现代Android应用来说非常正常。 我的赌注是谷歌地图,因为它是非常耗费资源的库(无论是CPU还是内存)。 无论如何,您可以尝试从应用程序中依次删除每个组件,并查看它如何影响内存占用。

正如安德烈已经说过的,对于Android应用来说,44.8Mb并不算太多。 但您可以使用DDMS跟踪分配和堆更新,以确切地看到占用此内存。 请参阅: https : //developer.android.com/tools/debugging/debugging-memory.html

此外,我建议使用带适配器的ListView ,因为ListView项目可以回收,这可以提高性能(参见本教程)。