我只是好奇并做了一个测试。
只是一个简单的应用程序,只有一个活动A.
A中有一个按钮和一个ImageView(ivTest),我在drawable中放了一张大图(1024x1024)img.jpg。
当按钮触发时,它调用ivTest.setImageResource(R.drawable.img)并且当然会出现图片。
这是测试:
1.启动应用程序,点击按钮,看到图片,没问题。
现在杀了这个应用程序。
2.删除文件:data / app / com.test-1.apk(测试设备是root所以我可以这样做),启动应用程序,查看错误" ClassNotFoundException",它'如预期的那样(设备中的apk文件被删除) 现在重新安装应用程序。
3.启动应用程序,删除文件:data / app / com.test-1.apk,单击按钮,图片仍然显示。如何?
我假设android系统会将活动的所有res加载到内存中,这样即使我删除了apk文件,它仍然可以显示图片。
但是当我将10张大图片(每张10M)添加到res / drawable并启动活动时,内存不会在Android Monitor中上升。
太困惑了。有谁能解释一下?提前谢谢。