新聞中心
Ashmem

創(chuàng)新互聯(lián)公司是一家專業(yè)提供鐘樓企業(yè)網站建設,專注與成都做網站、網站建設、外貿營銷網站建設、H5開發(fā)、小程序制作等業(yè)務。10年已為鐘樓眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網絡公司優(yōu)惠進行中。
java.lang.Object
|---ohos.utils.Ashmem
public class Ashmem
extends Object
提供與匿名共享內存(Ashmem)相關的方法,包括創(chuàng)建、關閉、映射和取消映射Ashmem,從Ashmem讀取數(shù)據和向Ashmem寫入數(shù)據,獲取Ashmem大小,為Ashmem設置保護。
Ashmem 是由一個進程創(chuàng)建的。 您可以將創(chuàng)建的 Ashmem 對象映射到當前進程以讀取和寫入數(shù)據。 或者,您可以將此 Ashmem 對象傳輸并映射到另一個進程以進行數(shù)據讀取和寫入。 您需要確保多個進程之間并發(fā)讀寫操作的時序。
字段摘要
| 修飾符和類型 | 字段 | 描述 |
|---|---|---|
| static int | PROT_EXEC | 表示可以執(zhí)行 Ashmem 對象中的數(shù)據。 |
| static int | PROT_NONE | 表示 Ashmem 對象中的數(shù)據無法讀取、寫入或執(zhí)行。 |
| static int | PROT_READ | 表示可以讀取 Ashmem 對象中的數(shù)據。 |
| static int | PROT_WRITE | 表示可以寫入 Ashmem 對象中的數(shù)據。 |
構造函數(shù)摘要
| 構造函數(shù) | 描述 |
|---|---|
| Ashmem(long nativeObject) |
方法總結
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| void | closeAshmem() | 關閉此 Ashmem。 |
| static Ashmem | createAshmem(String name, int size) | 根據指定的調試名稱和內存大小創(chuàng)建 Ashmem 對象。 |
| static Ashmem | createAshmemFromExisting(long unwrappedNativeObject) | 通過復制現(xiàn)有的 Ashmem 對象來創(chuàng)建 Ashmem 對象。 |
| protected void | finalize() | 當垃圾收集確定不再有對該對象的引用時,由對象上的垃圾收集器調用。 |
| long | getAshmemIdentity() | 獲取 Ashmem 對象的身份。 |
| int | getAShmemSize() | 獲取 Ashmem 對象的內存大小。 |
| boolean | mapAshmem(int mapType) | 使用指定的映射類型將 Ashmem 對象映射到此進程。 |
| boolean | mapReadAndWriteAShmem() | 在 Ashmem 對象和此進程之間創(chuàng)建讀/寫映射。 |
| boolean | mapReadOnlyAShmem() | 在 Ashmem 對象和此進程之間創(chuàng)建只讀映射。 |
| byte[] | readFromAShmem(int size, int offset) | 從 Ashmem 對象中讀取數(shù)據。 |
| boolean | setProtection(int protectionType) | 設置 Ashmem 對象的保護類型。 |
| void | unmapAShmem() | 從此進程中取消映射 Ashmem 對象。 |
| boolean | writeToAShmem(byte[] data, int size, int offset) | 將數(shù)據寫入 Ashmem 對象。 |
| 從類 java.lang.Object 繼承的方法 |
|---|
| clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段詳細信息
PROT_EXEC
public static final int PROT_EXEC
表示可以執(zhí)行 Ashmem 對象中的數(shù)據。
它可用于設置 Ashmem 對象的保護或映射類型。
PROT_NONE
public static final int PROT_NONE
表示 Ashmem 對象中的數(shù)據無法讀取、寫入或執(zhí)行。
它可用于設置 Ashmem 對象的保護或映射類型。
PROT_READ
public static final int PROT_READ
表示可以讀取 Ashmem 對象中的數(shù)據。
它可用于設置 Ashmem 對象的保護或映射類型。
PROT_WRITE
public static final int PROT_WRITE
表示可以寫入 Ashmem 對象中的數(shù)據。
它可用于設置 Ashmem 對象的保護或映射類型。
構造函數(shù)詳細信息
Ashmem
public Ashmem(long nativeObject)
方法詳情
createAshmem
public static Ashmem createAshmem(String name, int size)
根據指定的調試名稱和內存大小創(chuàng)建 Ashmem 對象。
調試名稱僅用于在檢查已映射到此 Ashmem 的進程的內存映射時查詢有關此 Ashmem 的信息。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| name | 調試名稱,方便查詢Ashmem信息。 |
| size | 指示 Ashmem 的大小。 |
返回:
返回創(chuàng)建的 Ashmem 對象; 如果創(chuàng)建失敗則返回 null。
createAshmemFromExisting
public static Ashmem createAshmemFromExisting(long unwrappedNativeObject)
通過復制現(xiàn)有的 Ashmem 對象來創(chuàng)建 Ashmem 對象。
兩個 Ashmem 對象指向同一個共享內存區(qū)域。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| unwrappedNativeObject | 表示現(xiàn)有 Ashmem 對象的 ID。 您可以使用 getAshmemIdentity() 方法獲取 ID。 |
返回:
返回創(chuàng)建的 Ashmem 對象。
finalize
protected void finalize() throws Throwable
從類復制的描述:對象
當垃圾收集確定不再有對該對象的引用時,由對象上的垃圾收集器調用。子類覆蓋 finalize 方法以釋放系統(tǒng)資源或執(zhí)行其他清理。
finalize 的一般約定是,當 Java? 虛擬機確定不再有任何方法可以讓任何尚未終止的線程訪問該對象時調用它,除非是由于某個操作而導致的。由準備完成的其他對象或類的完成所采取。 finalize 方法可以采取任何行動,包括使該對象再次可供其他線程使用;然而,finalize 的通常目的是在對象被不可撤銷地丟棄之前執(zhí)行清理操作。例如,代表輸入/輸出連接的對象的 finalize 方法可能會執(zhí)行顯式 I/O 事務以在對象被永久丟棄之前中斷連接。
Object 類的 finalize 方法不執(zhí)行任何特殊操作;它只是正常返回。 Object 的子類可以覆蓋這個定義。
Java 編程語言不保證哪個線程將為任何給定對象調用 finalize 方法。但是,可以保證調用 finalize 的線程在調用 finalize 時不會持有任何用戶可見的同步鎖。如果 finalize 方法拋出未捕獲的異常,則忽略該異常并終止該對象的終結。
在為一個對象調用 finalize 方法后,不會采取進一步的行動,直到 Java 虛擬機再次確定沒有任何方法可以讓任何尚未終止的線程訪問該對象,包括可能的行動由其他準備完成的對象或類,此時該對象可能被丟棄。
對于任何給定的對象,Java 虛擬機永遠不會多次調用 finalize 方法。
finalize 方法拋出的任何異常都會導致該對象的終結被暫停,否則會被忽略。
覆蓋:
在類 Object 中完成
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| Throwable | 此方法引發(fā)的異常 |
closeAshmem
public void closeAshmem()
關閉此 Ashmem。
通過createAshmem(java.lang.String,int)創(chuàng)建的Ashmem對象不再需要時,必須調用該方法及時關閉,防止內存泄漏。
mapAshmem
public boolean mapAshmem(int mapType)
使用指定的映射類型將 Ashmem 對象映射到此進程。
在使用 Ashmem 讀寫數(shù)據之前,必須調用該方法將 Ashmem 對象映射到該進程上。 映射大小是Ashmem對象的總內存大小,映射從Ashmem的起始位置開始。 映射類型必須包含在為此 Ashmem 對象設置的保護類型中。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| mapType | 指示要使用的映射類型。 該值是 PROT_READ(可讀/不可讀)、PROT_WRITE(可寫/不可寫)、PROT_EXEC(可執(zhí)行/不可執(zhí)行)或 PROT_NONE 的按位或組合。 |
返回:
如果映射成功,則返回 true; 否則返回 false。
mapReadAndWriteAShmem
public boolean mapReadAndWriteAShmem()
在 Ashmem 對象和此進程之間創(chuàng)建讀/寫映射。
映射大小是Ashmem對象的總內存大小,映射從Ashmem的起始位置開始。 調用該方法時,確保Ashmem對象的保護類型包括PROT_READ | PROT_WRITE。
返回:
如果映射成功,則返回 true; 否則返回 false。
mapReadOnlyAShmem
public boolean mapReadOnlyAShmem()
在 Ashmem 對象和此進程之間創(chuàng)建只讀映射。
映射大小是Ashmem對象的總內存大小,映射從Ashmem的起始位置開始。 調用此方法時,請確保 Ashmem 對象的保護類型包括 PROT_READ。
返回:
如果映射成功,則返回 true; 否則返回 false。
unmapAShmem
public void unmapAShmem()
從此進程中取消映射 Ashmem 對象。
在您使用完通過 mapAshmem(int)、mapReadAndWriteAshmem 或 mapReadOnlyAshmem 映射到您的進程的 Ashmem 后,您必須調用此方法取消映射以防止內存泄漏。 如果需要,您可以再次創(chuàng)建映射。
setProtection
public boolean setProtection(int protectionType)
設置 Ashmem 對象的保護類型。
保護類型只能添加,不能刪除。
一旦設置了保護類型,它將對所有到 Ashmem 對象的映射生效,無論這些映射是在設置保護類型之前還是之后創(chuàng)建的。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| protectionType | 指示要設置的保護類型。 該值是 PROT_READ、PROT_WRITE、PROT_EXEC 或 PROT_NONE 的按位或運算組合。 |
返回:
設置成功返回true; 否則返回 false。
getAShmemSize
public int getAShmemSize()
獲取 Ashmem 對象的內存大小。
返回:
返回 Ashmem 對象的內存大小。
writeToAShmem
public boolean writeToAShmem(byte[] data, int size, int offset)
將數(shù)據寫入 Ashmem 對象。
您需要控制多進程操作的時序。
在調用該方法之前,請確保您已經獲得了Ashmem對象的寫權限,并且已經為您的進程創(chuàng)建了到該Ashmem對象的寫映射。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| data | 表示要寫入 Ashmem 對象的數(shù)據。 |
| size | 指示要寫入的數(shù)據的大小。 |
| offset | 指示在 Ashmem 對象中寫入數(shù)據的起始位置。 |
返回:
如果數(shù)據寫入成功,則返回 true; 其他場景返回 false,如數(shù)據寫入越界或未獲得寫入權限。
readFromAShmem
public byte[] readFromAShmem(int size, int offset)
從 Ashmem 對象中讀取數(shù)據。
您需要控制多進程操作的時序。
在調用此方法之前,請確保您已獲得 Ashmem 對象的讀取權限,并且已為您的進程創(chuàng)建了到此 Ashmem 對象的讀取映射。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| size | 指示要讀取的數(shù)據的大小。 |
| offset | 指示 Ashmem 對象中讀取數(shù)據的起始位置。 |
返回:
返回讀取的數(shù)據。
getAshmemIdentity
public long getAshmemIdentity()
獲取 Ashmem 對象的身份。
返回:
返回 Ashmem 對象的標識。
當前題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSAshmem
當前路徑:http://fisionsoft.com.cn/article/coedssj.html


咨詢
建站咨詢
