Android活动内存消耗

2024-04-21

我有一个 Android 应用程序,有 4 个活动。第一个是基本的启动屏幕,第二个是登录,第三个是主屏幕,第四个是用于绘图的额外屏幕。

在真实设备上运行该应用程序 - 2014 年的 Samsung Galazy 选项卡或 Android 4.4 的 smth 会在登录活动后运行错误并崩溃。它说内存不足错误。主要活动包含多个编辑文本字段和按钮,还有单选选项并使字段可见和不可见。

当我在登录后设置绘图活动时,它将正确登录,并且从绘图到主程序时,它第一次崩溃,但第二次运行。

所以我删除了启动和登录活动,然后应用程序运行顺利 - 没有滞后或任何东西。可以去画画并毫无问题地回来。所有功能都有效。

我的问题是,为什么会发生这种情况?为什么它可以在没有启动和登录的情况下运行,但在这两个情况下会崩溃。我认为这两个对内存的影响并不大。该平板电脑可能有问题吗?或者我应该检查一下内存消耗?对我来说这似乎很奇怪,它可以在没有这两个的情况下打开主要活动。


内存不足异常是应用程序中相当常见的问题。它可以根据 RAM 大小更改设备。从这里找出导致您出现问题的原因是不可能的。

设备内存不足、未正确使用内存(您在活动中使用的图像、所保存的变量的引用,而屏幕上的活动中不需要)和其他因素都可能导致此问题。

你该怎么办?

  1. 优化您的材质,尝试使用较低分辨率的图像,在更改活动或片段之前将变量设置为空,以使系统回收它们所持有的内存。

  2. 使用 Leak Canary 并找出应用程序中是否存在内存泄漏(https://square.github.io/leakcanary/ https://square.github.io/leakcanary/)

  3. 使用Android Studio Profiler监控应用程序的内存使用情况,以找出哪部分代码使用内存最多。

  4. 了解权衡后,您可以致电System.gc()垃圾收集器在执行繁重任务之前回收未使用的内存。

  5. 如果其中任何一个没有帮助,您可以将下面的代码添加到您的清单文件中(在应用程序标记之间)。但您应该意识到使用它的性能权衡。

    <application            
    android:largeHeap="true"  
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android活动内存消耗 的相关文章

随机推荐

  • Bootstrap 按钮活动颜色变化

    我正在使用引导按钮类 更具体地说 如下
  • 如何从WebBrowser控件获取图像

    我有一个 WebBrowser 控件 在浏览页面后我需要下载图像 我使用了以下代码 HtmlElementCollection tagsColl webBrowser1 Document GetElementsByTagName img f
  • SQL插入相关表

    在我看来 这似乎是 SQL 数据库开发中经常出现的问题 但我对这一切都是新手 所以请原谅我的无知 我有 2 张桌子 CREATE TABLE dbo Tracks TrackStringId bigint NOT NULL Id bigin
  • 如何从 Node.js 调用 C++ 代码?

    我目前正在开发一个在服务器上运行的模拟器 并应在浏览器中显示数据 对于服务文件 通信和类似的事情 我想使用 Node js 但是 我不确定它在计算部门是否会像我希望的那样执行 所以我想用 C 开发模拟部分 模拟被划分为单独的 世界 它们都以
  • 使用 node-sass 安装 angular-cli 时出错

    我的系统配置 Debian 4 4 nvm 0 33 8 节点 v8 9 4 npm 5 6 0 我想安装 Angular clinpm install g angular cli 但我收到一条错误消息 root contracts hom
  • NugGet Semver - 允许哪些预发行角色?

    我正在尝试对我的 NuGet 包 NET Core 2 之一使用语义版本控制 版本如下 1 0 0 my fancy branch 123 正如您所猜测的 我尝试将分支名称和当前 BuildId 设置为预发布标签 不幸的是 dotnet b
  • MediaCodec.createInputSurface() 在 Android 模拟器中抛出 IllegalStateException(错误 -38)

    I have MediaMuxer MediaMuxer mMediaMuxer new MediaMuxer new File Environment getExternalStorageDirectory video mp4 getPa
  • 在 Shiny 中格式化响应式 data.frames

    我有一个工作闪亮的应用程序 但我正在更改它 以便输入数据是反应性的 当底层数据更新时它会更新 当它刚刚读入数据时 它工作得很好 但现在数据是反应性的 我在其中一个文件上遇到了问题 另外两个文件按预期工作 该文件是从数据库导出的 csv 我想
  • 数据库级别的国际化

    谁能向我指出一些解决数据库级别任务国际化的模式 最简单的方法是为每个文本列的每种语言添加一个文本列 但这在某种程度上有点难闻 我真的希望能够动态添加支持的语言 我要提出的解决方案是保存在模型中的一种主要语言和一个查询翻译并将翻译保存到的字典
  • 为什么unique_ptr::~unique_ptr需要T的定义?

    如果我有一堂 酒吧 课 bar h class Bar public Bar 我转发声明与另一个类 Foo 中的 std unique ptr 一起使用 foo h include
  • Visual Studio 2010 - 如何优化

    我正在使用 2010 版的 Visual Studio 但遇到了许多延迟问题 我的计算机具有良好的 RAM 和处理器配置 特别是在保存文件时 目前 我正在进行一个中型项目 只有一个打开文件 ASP NET 页面 使用第三方 Telerik
  • ActionBarSherlock - 无法解析类型 android.support.v4.app.Fragment。它是从所需的 .class 文件间接引用的

    我使用 ActionBarSherlock 作为一个项目中的库项目 该项目本身就是一个库 一切都工作正常 直到我将项目移至新计算机并更新了 SDK 工具 我有这个错误我不明白 当我创建一个扩展 SherlockFragment 的类时 如下
  • xCode Instruments 检测到的这些内存泄漏对象是什么?

    我有一个 iPhone 应用程序 似乎存在内存泄漏问题 这是一款益智游戏 在玩了几个谜题后 应用程序在设备上崩溃了 我现在尝试使用 xcode Instruments 来检测发生了什么 第一次使用仪器 我注意到 泄漏 图中有一个泄漏栏 就在
  • JTextField 中的下拉列表

    我不知道当我在文本字段中输入一些字母时 应该从我的数据库中选取相关项目并应显示为下拉列表 例如 我在文本字段中输入了 J 在我的数据库中具有诸如 Juby Jaz Jasmine Joggy 之类的名称 这些名称应显示为列表 这样我就可以从
  • MSChart 中系列和数据点的所有可用自定义属性的最终列表

    我正在使用 NET 3 5 MSChart 控件 有时我发现我需要向系列或数据点添加自定义属性 例如 Series series new Series series PieDrawingStyle SoftEdge DataPoint po
  • Graphql 没有为接口/联合定义解析器 - java

    我在使用这种方法添加解析器时遇到问题graphql RestController RequestMapping api dictionary RequiredArgsConstructor onConstructor Autowired p
  • C# 中是否有与 HashSet 等效的 AddRange

    通过列表 您可以执行以下操作 list AddRange otherCollection a 中没有添加范围方法HashSet 添加另一个的最佳方法是什么ICollection to a HashSet For HashSet
  • MySQL中如何获取两个值中的最大值?

    我尝试过但失败了 mysql gt select max 1 0 ERROR 1064 42000 You have an error in your SQL syntax check the manual that corresponds
  • twitter bootstrap 下拉菜单的对齐

    我设计了一个带有下拉菜单的引导导航栏 http jsfiddle net yabasha fex8N 3 http jsfiddle net yabasha fex8N 3
  • Android活动内存消耗

    我有一个 Android 应用程序 有 4 个活动 第一个是基本的启动屏幕 第二个是登录 第三个是主屏幕 第四个是用于绘图的额外屏幕 在真实设备上运行该应用程序 2014 年的 Samsung Galazy 选项卡或 Android 4 4