編輯:初級開發
MemoryFile適用於哪些地方呢?
對於I/O需要頻繁操作的,主要是和外部存儲相關的I/O操作,MemoryFile通過將 NAND或SD卡上的文件,分段映射到內存中進行修改處理,這樣就用高速的RAM代替了ROM或SD卡,性能自然提高不少,對於Android手機而言同時還減少了電量消耗。android123提示網友該類實現的功能不是很多,直接從Object上繼承,通過JNI的方式直接在C底層執行。
主要的構造方法 MemoryFile(String name, int length) ,這裡第二個參數為文件大小,需要說明的是android的MemoryFile和傳統的mmap還有一點點區別,畢竟是手機,它內部的內存管理方式ashmem會從內核中回收資源。畢竟目前部分低端機型的RAM也比較吃緊。
synchronized boolean allowPurging(boolean allowPurging) //允許ashmem清理內存,線程安全同步的方式。
void close() //關閉,因為在Linux內部mmap占用一個句柄,不用時一定要釋放了
InputStream getInputStream() 返回讀取的內容用Java層的InputStream保存
OutputStream getOutputStream() 把一個OutputSream寫入到MemoryFile中
boolean isPurgingAllowed() //判斷是否允許清理
int length() //返回內存映射文件大小
下面就是我們熟悉的,讀寫細節,主要是對字符數組的操作,這裡大家要計算好每個文件類型的占用,同時考慮到效率對於自己分配的大小考慮粒度對齊。
int readBytes(byte[] buffer, int srcOffset, int destOffset, int count)
void writeBytes(byte[] buffer, int srcOffset, int destOffset, int count)
具體的實際應用,android開發網將在下次和大家講到。
很多初入android或Java開發的新手對Thread、Looper、Handler和Message仍然比較迷惑,衍生的有HandlerThread、Java.uti
本人嘗試,裡面提供得軟件在索愛x8上失敗了 提示說不能網絡共享 。看來自己編譯x8迫在眉睫啊 (有幸下載到了x8得源代碼。。。)--------------------
下面展示一段在android1.5上讀取手機通訊錄的代碼1 //鏈接通訊錄數據庫 2 ContentResolver content = getContentResol
注冊 android 地圖 API 密鑰運行:keytool -list -keystore ~/.android/debug.keystore用得到的MD5碼到:注冊