问题分析:
这是由于内存不足引起的。
比如我要用一个大的图片或音乐,40+MB的,在模拟器中启动就会发生这个错误。
问题解决:
如果使用模拟器,就可以手动扩大它的内存,命令为:
emulator -avd G8 -partition-size 150
其中G8是我模拟器的名称。
partition-size是模拟器的rom。
此时,我在解析40+MB的图片时,由于内存不足进程直接被kill掉。这是什么原因呢?
刚刚不是才把内存扩大到150MB么?
答:刚才扩大的只是rom,而程序运行时需要很大的ram。而模拟器默认的ram是92MB。
如何扩大呢?
答:同上,命令上加上 -memory 就好
emulator -avd G8 -partition-size 150 -memory 855
也可以在模拟器中Dev tools-->Terminal Emulator下输入:
# cat /proc/meminfo就会打印出很多信息如:
MemTotal: 852500 kB MemFree: 58560 kB Buffers: 127052 kB Cached: 142116 kB SwapCached: 18540 kB Active: 360452 kB Inactive: 372140 kB Active(anon): 215636 kB Inactive(anon): 252688 kB Active(file): 144816 kB Inactive(file): 119452 kB Unevictable: 0 kB Mlocked: 0 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 852500 kB LowFree: 58560 kB SwapTotal: 1489912 kB SwapFree: 1460260 kB Dirty: 20 kB Writeback: 0 kB AnonPages: 450340 kB Mapped: 64780 kB Shmem: 4892 kB Slab: 43456 kB SReclaimable: 35168 kB SUnreclaim: 8288 kB KernelStack: 2264 kB PageTables: 4988 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 1916160 kB Committed_AS: 932700 kB VmallocTotal: 159736 kB VmallocUsed: 7544 kB VmallocChunk: 145436 kB HardwareCorrupted: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 4096 kB DirectMap4k: 16384 kB DirectMap4M: 856064 kB这里的MemTotal就是设置的ram值了,下面再解析图片,不会内存不足了!!!