Bitmap在記憶體中載入

2021-07-13 06:54:34 字數 2000 閱讀 1103

package com.danjiang.bitmapdemo;

import android.annotation.suppresslint;

import android.graphics.bitmap;

import android.graphics.bitmap.config;

import android.os.bundle;

import android.util.log;

import android.widget.toast;

/** *

* author: zhangdanjiang

* * date:2023年6月8日 time: 下午5:42:36

* * function: bitmap 在記憶體中載入

* *

* 的存在的不同形式

* ①:檔案形式,即以二進位制形式存在於硬碟上,file.length()

* ②:流的形式,即以二進位制形式存在於記憶體中,將檔案讀取到流中時,流的大小和檔案在磁碟中顯示的大小是一樣的

* ③:bitmap形式,即以rgba(預設)形式存在於記憶體中

* * 在android3.0之前,bitmap的記憶體分配分為兩部分,一部分是分配在dalvik的vm堆中,而畫素資料的記憶體是分配在native堆中,

* 而到了android3.0之後,bitmap的記憶體則已經全部分配在vm堆上,這兩種分配方式的區別在於,

* native堆的記憶體不受dalvik虛擬機器的管理,我們想要釋放bitmap的記憶體,必須手動呼叫recycle方法,

* 而到了android 3.0之後的平台,我們就可以將bitmap的記憶體完全放心的交給虛擬機器管理了,

* 我們只需要保證bitmap物件遵守虛擬機器的gc root tracing的**規則即可。ok,基礎知識科普到此。

* * bitmap在載入到記憶體的時候是按照下面的計算公式

* 計算公式:占用記憶體大小= bitmap 寬度 * 高度 * 每個畫素占用的記憶體 = 畫素總數 * 每個畫素占用的記憶體

* 你可以把看成是由width行、height列的矩陣組成,每乙個矩陣元素代表乙個畫素點,

* 每乙個畫素點都是1byte整數倍的資料,這個資料越大,表示的色彩就越豐富,的顯示質量就越高。

* * bitmap有四種畫素型別:

* argb_8888、 4 位元組

* argb_4444、 4 位元組

* argb_565、 2 位元組

* alpha_8, 1 位元組。

* 乙個1000*1000的argb_8888型別的bitmap占用的記憶體為1000*1000*4 byte= 4000000byte = 4000kb = 4mb。

*/@suppresslint("newapi")

public class mainactivity extends activity

/*** 建立乙個1000 * 1000 的解析度的bitmap 配置不同的config

* @param config bitmap.config引數

* @param string 名字

*/private void printbitmapcount(config config, string string)

/*** 列印日誌

* @param string 輸出內容

*/public void logd(string string)

public void toast(string string)

}

輸出結果

bitmap 在檔案中的大小 和 bitmap在記憶體的大小 沒有任何關係

bitmap 在記憶體中的大小主要是寬 高 和 分別率 有直接關係

Apache中載入PHP,PHP中載入MySQL

apache安裝 php安裝 mysql安裝 1.開啟c software zdyhj apache24 conf httpd.conf,在loadmodule處加入 在apache中以module的方式載入php php7 module指php的版本號 loadmodule php7 module...

繼承關係在記憶體中的載入順序

a.先載入父類再載入子類 有靜態資源優先載入靜態資源 1.宣告子類的物件 2.編譯類載入時找到子類發現它有繼承關係,所以到它的構造器中找到super 方法通過呼叫關係找到它繼承的父類。子類規定要預設通過super 呼叫父類構造器,就是為了在載入子類時能找到它的父類把屬性預先載入進記憶體,供子類使用 ...

Bitmap物件在記憶體中的大小和轉化為位元組流的大小

檢視我的部落格原文 android bitmap 記憶體管理 比如我們構造bitmap時設定寬200,高400,色彩模式為bitmap.config.argb 8888,那麼它在記憶體中的大小就為200 400 4,色彩模式為bitmap.config.rgb 565,那麼大小就是200 400 2...