在Android清单中使用largeheap是一个好的实践吗?

2023-11-26

我正在发展NDK。它挂在Galaxy S3。为了测试我把android:largeheap = "true" in Manifest。然后就不存在挂起的问题了。 这是一个很好的做法吗largeHeap="true"?

谷歌是否有可能因为这个标签而拒绝我的构建? 如何防止我的应用程序在不使用的情况下挂起largeheap="true"?


简答

No, 如果你需要的话这并不是一个糟糕的协议,因为它就在那里。

长答案

官方文件指出

您的应用程序的进程是否应该使用大的 达尔维克堆。这适用于为 应用。
它仅适用于加载到的第一个应用程序 过程;如果您使用共享用户 ID 来允许多个 应用程序要使用进程,它们都必须使用此选项 始终如一,否则将会产生不可预测的结果。
大多数应用程序应该 不需要这个,而应该专注于减少他们的整体 内存使用以提高性能。启用此功能也不会 保证可用内存的固定增加,因为某些设备 受其总可用内存的限制。

一些开发人员使用它来避免 OOM 异常,因此如果您只是为了避免一些异常而使用它OOM这是一种非常非常糟糕的做法。

永远不要仅仅因为内存不足而请求大堆 你需要快速修复。仅当您确切知道时才应使用它 所有内存都分配在哪里以及为什么必须保留它


如果您确实需要更多空间,可以使用它, 您可以使用getMemoryClass()检查堆并getLargeMemoryClass()大堆。

但是,如果您可以避免使用largeHeap,这将是最好的方法,正如官方文档所述:

然而,即使您确信您的应用程序可以证明大堆是合理的,您应该尽可能避免提出请求。使用 额外的内存将越来越损害整个用户的利益 经验,因为垃圾收集会花费更长的时间并且系统 任务切换或执行其他操作时性能可能会变慢 共同操作。
此外,大堆大小不是 在所有设备上都相同,并且可能与常规堆完全相同 尺寸。因此,即使您确实请求大堆大小,您也应该调用 getMemoryClass() 检查常规堆大小并力争始终 保持低于该限制。

我也建议你看看这里管理应用程序的内存

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

在Android清单中使用largeheap是一个好的实践吗? 的相关文章

  • 保存用户可以访问的 Flutter Android 应用程序中的文本文件

    我在 Flutter 中开发的 Android 应用程序的用户应该能够将一些数据保存 导出 到文本文件中 用户应该能够使用其他应用程序 包括文件管理器 在其 Android 设备上找到并访问此文件 我想 final directory aw
  • 带阴影的弯曲 Android 工具栏

    我需要为工具栏或卡片视图提供弯曲的底视图 我尝试过的 bg toolbar xml
  • Android 12:如何防止更改手机壁纸时重新启动活动?

    在 Android 12 上 如果我们开启一个活动 进入手机主屏幕更换壁纸 切换回我们的 Activity 该 Activity 重新启动 看起来它与 Material You 主题有关 我想在我的应用程序进入前台时禁用活动的重新启动 有办
  • Espresso - 检查使用按钮按下意图打开哪个活动?

    是否可以跟踪按下某个按钮后打开了哪个 Activity 我有一个测试 其中当单击 按下按钮时 it 向服务器发送请求 直到发送请求时 它打开一个活动 验证是否执行成功在测试中 我需要检查打开的 Activity 是什么 我的测试示例 检查
  • 任务“:app:dexDebug”执行失败

    我目前正在处理我的项目 我决定将我的 Android Studio 更新到新版本 但在我导入项目后 它显示如下错误 Information Gradle tasks app assembleDebug app preBuild UP TO
  • 未找到 Gradle DSL 方法:“versionCode()”

    构建我的 Android 项目时遇到问题 我使用Grgit https github com ajoberstar grgit填写versionCode and versionName在 gradle 中 一切工作正常 直到我将 Andro
  • 合并两个位图图像(并排)

    任何人都可以帮助将两个位图图像合并为单个位图 在android中 并排 谢谢 尤瓦拉吉 您可以使用Canvas 查看这篇文章 http www jondev net articles Combining 2 Images in Androi
  • doInBackground 运行时是否可以停止 asynctask?

    我正在 ActivityB Oncreate 中创建异步任务 在该任务中 我正在运行无限 while 循环doInBackground 当我转到上一个活动并再次回到该活动时 创建了另一个异步任务 我的问题现在是两个无限 while 循环正在
  • 无法解析符号 FlutterActivity

    我使用 VCS gt Checkout from Version Control 将 flutter 项目从 github 导入到 Android Studio 中 现在我面临的问题是 Cannot resolve symbol Flutt
  • OpenCV InRange 参数

    我在 Android 上使用 OpenCV 来实时查找特定颜色的圆圈 我的第一步是仅保留与我正在寻找的定义颜色相对应的像素 在本例中为红色或绿色 示例图像 https i stack imgur com CIozU jpg 为此 我正在使用
  • 无法将 Tesseract OCR 模块添加到 Android Studio

    我按照此处找到的分步指南进行操作 https www codeproject com Articles 840623 Android Character Recognition https www codeproject com Artic
  • Flutter / FireStore:如何在 Flutter 中显示 Firestore 中的图像?

    我想将我在应用程序中使用的一些图像放入 Firestore 并从那里显示它们 而不是将它们作为资产捆绑在我的应用程序中 为了做到这一点 我想出了以下解决方案 对于我想要显示图像的项目 我创建了一个 Firebase 文档 其中有一个字段存储
  • Android开发:未定义方法

    大家好 我是 Android 和 Eclipse 的新手 我刚刚遵循了developer android com 上的教程 现在我在添加操作栏 http developer android com training basics actio
  • Android:单一活动,多个视图

    我不是 Android 专业人士 尽管我开发了一个包含 50 多个活动的应用程序 这使得该应用程序非常庞大 经过8周的开发 现在出现了一些问题 导致应用程序难以维护和升级 我正在处理的主要问题是 我无法将对象引用传递给活动的构造函数 事实上
  • Jetpack Compose 部分或开放侧边框

    我正在尝试绘制部分或一侧开放的矩形圆形边框以实现此效果 玩了一下之后我得到了这个 这是通过以下方式完成的 RoundedCornerShape topStartPercent 50 bottomStartPercent 50 start R
  • OpenGL ES 2.0 屏幕闪烁

    我面临着一个大问题 我正在使用带有 Android 4 0 3 的 Transformer tf101 选项卡 我的应用程序使用自定义 OpenGL ES 2 0 表面 我正在用纹理渲染多个平面 该纹理大约发生变化 每秒 20 次 并通过传
  • gradle-experimental:0.1.0 buildConfigField

    谁知道怎么定义buildConfigField在实验性的 gradle 插件中 android productFlavors create demo applicationId com anthonymandra rawdroid buil
  • Android应用程序kill事件捕获

    我想在我的应用程序被终止时执行一些操作 可以使用哪种方法来实现此目的 我正在开发 Android 5 0 这个问题的关键在于 您必须了解您的申请是否可以收到任何 当您的应用程序在任何情况下被终止时的额外回调 下面的答案是由德文连线 http
  • 绘制大位图时 nSyncAndDrawFrame 速度极慢

    我想用多个大位图优化视差滚动视图 在我的 Nexus 5 上 一切都很顺利 Traceview 转储如下所示 doFrame 方法大约需要 18 毫秒才能完成 但是 当使用我的 Nexus 7 或 Android 6 模拟器 Genymot
  • 尝试使用带有有效购买令牌的 Java Google Play Developer API v3 检索应用内购买信息时出现错误请求(无效值)

    当使用 Java Google Play Developer API 版本 3 并请求有效购买令牌的购买信息时 我收到以下异常 API 调用返回 400 Bad Request 响应以及以下消息 code 400 errors domain

随机推荐

  • 如何使用 pandas 将多行合并为一行[重复]

    这个问题在这里已经有答案了 我需要将多行组合成一行 这将是简单的空格连接 View of my dataframe tempx value 0 picture1 1 5 1 picture555 1 5 2 picture255 1 5 3
  • 从多单元格区域获取格式化值

    Dim myText As String myText Range a3 Text 返回单元格 A3 中的格式化值 但是 myText Range a3 c7 Text 给我一个错误 如何从多单元格区域获取表示格式化值的字符串 同时保留数字
  • 空嵌套元组错误

    include
  • 更改 Google 地图信息窗口中的背景颜色

    我希望 Google 地图实现中的 InfoWindows 具有黑色背景颜色 InfoWindows 没有 backgroundColor 选项 See here 我在内容选项中放置了一个黑色背景和白色文本的 div 标签 然而 它仍然呈现
  • 错误:“用于调用 Google Play 开发者 API 的项目 ID 尚未在 Google Play 开发者控制台中链接。”

    我在使用服务帐户访问 Google Play Developer API 时收到以下错误 用于调用 Google Play 开发者 API 的项目 ID 尚未在 Google Play 开发者控制台中链接 服务帐户电子邮件和 p12文件是使
  • r - 来自子/父关系的分层数据框架

    我有一个子父 data frame 我想将其转换为包含所有级别和级别编号的完整层次结构列表 下面的示例数据分为三个级别 但也可能更多 我可以使用什么函数来转换数据 Source data frame name c land water ai
  • 如何删除 Matplotlib 图中的线条

    如何删除 matplotlib 轴的一行 或多行 使其实际上被垃圾收集并释放内存 下面的代码似乎删除了该行 但从未释放内存 即使显式调用gc collect from matplotlib import pyplot import nump
  • 了解 Vaadin 如何使用 GWT

    在使用 Vaadin 大约一周后 我很好奇 Vaadin 如何使用 GWT GWT 将 Javacode 编译为 Javascript 每次重新部署时都必须执行此操作 由于 Vaadin 必须被理解为一个以服务器为中心的框架 从而消除了编写
  • 如何在 Selenium Web Driver 中使用 SSL 证书?

    我在 Windows 7 上使用 Selenium Web 驱动程序 我正在尝试测试一个使用身份验证的网站 并且我需要使用 SSL 证书 当我在 Selenium 之外使用 Firefox 时 一切正常 但我注意到 Selenium 打开的
  • 无法使用 iOS 9.0 GM 在 Xcode 7.1 beta 上调试应用程序

    当我尝试在 iPad 上安装 iOS 9 0 GM 并使用 Xcode 7 1 Beta 7B60 运行我的应用程序时 出现以下错误 在此设备上启用开发时遇到错误 请尝试重新启动并重新连接设备 0xE8000076 这个问题有解决办法吗 苹
  • 版本控制如何工作?

    版本控制通常如何工作 它是否将 diff 文件保存为带有哈希值的跟踪以验证跟踪 查看Eric Sinks 关于版本控制的博客系列 此外 乔尔 斯波尔斯基写道Hg Init Mercurial 教程 这最终让我 了解 了分布式源代码控制的全部
  • 将表示为链表的两个大数相加,无需反转链表

    假设您有两个用链表表示的大数字 如何将它们相加并将结果存储在单独的链表中 例如 a 2 gt 1 gt 7 b 3 gt 4 result 2 gt 5 gt 1 您可以在不颠倒链表的情况下添加它们吗 伪代码 步骤1 遍历链表并将元素压入两
  • 在 numpy.correlate 中指定滞后

    Matlab互相关函数xcorr x y maxlags 有一个选项maxlag 返回滞后范围内的互相关序列 maxlags maxlags 纳比的numpy correlate N M mode 有三种模式 但没有一种模式允许我设置特定的
  • 如何使用 Python Pillow 定义模糊半径?

    我正在尝试模糊图像Pillow using 图像过滤器如下 from PIL import ImageFilter blurred image im filter ImageFilter BLUR 这工作得很好 只是它的设定半径对我来说太小
  • 获取未旋转的旋转矩形的边界

    我有一个已经应用了旋转的矩形 我想获得未旋转的尺寸 x y 宽度 高度 这是当前元素的尺寸 Bounds at a 90 rotation height 30 width 0 x 25 y 10 以下是旋转设置为无后的尺寸 Bounds a
  • Go mgo 包中的连接池

    文章中与 go 并发运行 mongodb 查询说 mgo DialWithInfo 创建一个会话 维护与 MongoDB 的套接字连接池 但是当我在文献记录函数的拨号信息我没有找到与我谈论池连接的内容 只有我在DialFunction Di
  • ES6 地图垫片如何工作

    根据我对文档的理解 here and here 需要一个对内存地址的引用才能工作 const foo const map new Map map set foo 123 Can only be done if memory address
  • 通过通用父类访问子类中的 Java 静态成员

    这似乎是一个新问题 但上次我使用 Java 时 该语言没有泛型 我有一个类层次结构 名称更改为尽可能通用 public abstract class AbstractBase public class ConcreateSubA exten
  • 没有主目录的用户的 SSH 公钥

    我正在运行 Mac OS X Leopard Server 并且创建了一个新用户 但没有为该用户指定主目录 是否可以让该用户使用公钥进行身份验证 我知道当用户does有一个它所在的主目录 ssh authorized keys 我不想为该用
  • 在Android清单中使用largeheap是一个好的实践吗?

    我正在发展NDK 它挂在Galaxy S3 为了测试我把android largeheap true in Manifest 然后就不存在挂起的问题了 这是一个很好的做法吗largeHeap true 谷歌是否有可能因为这个标签而拒绝我的构