首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何减少Android进程中/dev/ashmem/dalvik主空间(区域空间)的大小?

如何减少Android进程中/dev/ashmem/dalvik主空间(区域空间)的大小?
EN

Stack Overflow用户
提问于 2019-05-31 09:55:14
回答 1查看 1.4K关注 0票数 1

当我在不同的安卓版本设备上运行同一个应用程序时,我发现在Android8.1.0上,/dev/ashmem/dalvik的虚拟内存是1GB (如您从下面看到的大小:1048576 kB),它太大了。但是在Android7.1.2上,它大约是0.375GB(2116 on + 194492kB + 196608kB)。我如何在Android8.1.0上减少它呢?

基于Android8.1.0的

代码语言:javascript
复制
S102X_32:/proc/30015 # cat smaps                                                                                                                                                                                                                                                                                             
12c00000-52c00000 rw-p 00000000 00:01 14821      /dev/ashmem/dalvik-main space (region space) (deleted)
Size:            1048576 kB
Rss:                 664 kB
Pss:                 550 kB
Shared_Clean:          0 kB
Shared_Dirty:        228 kB
Private_Clean:         0 kB
Private_Dirty:       436 kB
Referenced:          436 kB
Anonymous:           664 kB
AnonHugePages:         0 kB
Swap:               1980 kB
SwapPss:             990 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Locked:                0 kB
VmFlags: rd wr mr mw me ac 

基于Android7.1.2的

代码语言:javascript
复制
translator:/proc/891 # cat smaps                                                                                                                                                                                                                                                                                             
12c00000-12e11000 ---p 00000000 00:01 19060                              /dev/ashmem/dalvik-main space (deleted)
Size:               2116 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
AnonHugePages:         0 kB
Swap:                  0 kB
SwapPss:               0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Locked:                0 kB
VmFlags: mr mw me ac 
12e11000-1ec00000 ---p 00211000 00:01 19060                              /dev/ashmem/dalvik-main space (deleted)
Size:             194492 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
AnonHugePages:         0 kB
Swap:                  0 kB
SwapPss:               0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Locked:                0 kB
VmFlags: mr mw me ac 
32c00000-3ec00000 rw-p 00000000 00:01 19061                              /dev/ashmem/dalvik-main space 1 (deleted)
Size:             196608 kB
Rss:                 416 kB
Pss:                 416 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:       416 kB
Referenced:          416 kB
Anonymous:           416 kB
AnonHugePages:         0 kB
Swap:                  0 kB
SwapPss:               0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Locked:                0 kB
VmFlags: rd wr mr mw me ac 
EN

回答 1

Stack Overflow用户

发布于 2020-10-27 08:19:14

你不能在你的应用程序端调整它的大小。

映射为/dev/ashmem/dalvik-main的内存是ART运行时使用的堆,使用java/kotlin创建的所有对象都位于该堆中。由于艺术运行时是以合子启动的,在android启动时由init分叉,而且所有应用程序都在合子中共享相同的艺术运行时,所以除非您是Android系统开发人员,否则不能更改堆大小,所以可以将dalvik.vm.heapsizedalvik.vm.heapgrowthlimit设置为更小的大小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56392781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档