Android WebView的内存转换
为什么WebView使用如此小的内存来显示位图 这是一个位图,大小为3000*2077Android WebView的内存转换,android,webview,bitmap,Android,Webview,Bitmap,为什么WebView使用如此小的内存来显示位图 这是一个位图,大小为3000*2077 http://img.bz1111.com/d7/2012-8/2012081210376.jpg 当我在ImageView中显示它时,它投射了超过20MB的内存来显示itI think位图使用ARGB_8888解码 public class ImageViewActivity extends Activity { private ImageView mImageView; @Override prot
http://img.bz1111.com/d7/2012-8/2012081210376.jpg
当我在ImageView中显示它时,它投射了超过20MB的内存来显示itI think位图使用ARGB_8888解码
public class ImageViewActivity extends Activity {
private ImageView mImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ImageView imageView = new ImageView(this);
mImageView = imageView;
setContentView(imageView);
new LoadImageTask().execute("http://img.bz1111.com/d7/2012-8/2012081210376.jpg");
}
private class LoadImageTask extends AsyncTask<String, Void, Bitmap> {
@Override
protected Bitmap doInBackground(String... params) {
try {
BitmapFactory.Options options = new BitmapFactory.Options();
return BitmapFactory.decodeStream(new URL(params[0]).openStream());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
mImageView.setImageBitmap(bitmap);
}
}
而在WebView中,它的大小仅为40KB:
public class WebViewActivity extends Activity {
private static final String HTML_WITH_IMAGE = "<html>" +
"<head></head>" +
"<body>" +
"<img src=\"%s\" />" +
"</body>" +
"</html>";
private static final String HTML_WITHOUT_IMAGE = "<html>" +
"<head></head>" +
"<body>" +
"<span>Empty</span>" +
"</body>" +
"</html>";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// create WebView;
WebView webView = new WebView(this);
setContentView(webView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
String imageUrl = getIntent().getStringExtra("image_url");//http://img.bz1111.com/d7/2012-8/2012081210376.jpg
String html = null;
if (TextUtils.isEmpty(imageUrl)) {
html = HTML_WITHOUT_IMAGE;
} else {
html = String.format(Locale.ENGLISH, HTML_WITH_IMAGE, imageUrl);
}
webView.loadDataWithBaseURL("http://www.google.com",
html,
"text/html",
"utf-8",
"");
}
我想知道,WebView或WebKit如何解码位图,并保存位图以绘制?好的,我知道了。我在Android Studio中使用内存监视器,它只监视java的dalvik堆。另一方面,Webkit在本机堆中进行解码和绘制位图。