android profile导出内存,android – 为什么Memory Profiler中的“Code”和“Native”部分使用了太多的内存,我该如何减少它?...

关于本机内存使用:

>即使您的应用中有0个本机代码,Android框架也可以使用本机内存,请参阅“native”here以供参考.例如,我只是尝试创建一个示例项目,只有一个Activity有一个Button,本机内存使用量是18mb,如果我触发垃圾收集它会降到8mb.要在Android Studio中手动触发垃圾回收,您可以单击内存概要分析器窗口左上角的“垃圾箱”图标.不要对那个按钮感到害羞,我通常必须连续多次按它才能看到内存使用量下降.

>也可以从Java分配本机内存,而无需使用ByteBuffer.allocateDirect(int)加载任何本机库.

>如果您说在下一个Activity之前没有加载任何本机库,如果您正在静态加载库(在static {}内),则无法保证在第二个Activity启动时实际加载库.它很可能会在之前被加载.如果要检查库实际加载的时间,可以尝试将此方法添加到C代码中,应该在加载库时调用它.它太脏了,但是,嘿,它的工作原理.您可能会记录某些内容而不是崩溃.

__attribute __((constructor))void init(void){

int a = *(int *)((void *)0);

}

关于代码内存的使用,你应该减少你的代码:)

如果您还没有这样做,请在构建类型中将minifyEnabled设置为true,假设您正在使用调试版本检查内存使用情况:

...

buildTypes {

debug {

minifyEnabled true

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

...

此外,关闭即时运行(参见“注释”here).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值