2013-12-17 36 views
1

什麼是有效的方式(關於內存和速度)來存儲和訪問移動應用程序的地圖?不想爲地圖使用互聯網流媒體。移動應用程序中地圖的高效本地存儲和訪問?

以下方法是否有效?

  • 存儲地圖作爲移動的本地存儲器中的圖像
  • 訪問由它的文件路徑的圖像的所有存儲在數組中
  • 而且每個地圖已2相對的角座標存儲在文本文件,該文件被訪問爲地圖應用座標系統。
  • 來自文本文件的座標用輸入流讀取/解析並存儲在數組中(即x和y的數組)。

所以上面的方法有2種類型的文件:圖像和2個座標的文本文件(每幅圖像)。和地圖路徑和角落座標的數組。我知道我會使用文件連接(持久存儲)。

最後,想: 開發一個移動應用程序,可以在本地查看地圖和根據用戶的座標光標更改地圖。我猜測地圖的變化可能發生在邊界檢查用戶的座標光標指定的座標。例如,在paint(...)方法中調用changeMap(x,y)。

因此,請建議一個清潔和高效的方式來存儲和訪問地圖的座標。

+0

」另外,每個地圖都有2個存儲在文本文件中的對角座標,可以訪問該文本文件以應用地圖的座標系「 - 而不是這樣,所有地圖只能使用一個文本文件,而將數據存儲爲」mapID 「」x協調座標「」y座標「......這樣,每次更改地圖時都會阻止搜索和加載文本文件。 – TheLostMind

+0

確定具有一個包含所有地圖座標的文本文件是有道理的。但是文本文件被解析一次並且它們的座標存儲在一個數組中。因此,在更改地圖之前,數組中的座標在此數組中被線性檢查。該數組的大小與具有映射文件路徑的數組的大小相同。所以對於陣列來說,地圖文件和角點座標是一對一的映射關係。 – StackIt

+0

我想用一次所有地圖座標讀取/解析單個文本文件會更高效。但是要將這些座標存儲在應用程序內存中,使用4個一維數組來存儲座標是有效的,即。左上角x和y右下角x和y? – StackIt

回答

0

爲什麼不結合多種方法?如果文本數據不太重,可以將其存儲在RMS中。您也可以將圖像存儲在RMS中,較新的設備對RMS的大小沒有理論限制,但是一個記錄存儲不能超過大約500KB。將較大的文件存儲在存儲卡上。 「

+0

好的不是一個壞主意。我需要將文本數據與圖像鏈接。那麼如何用RMS做到這一點? – StackIt

+0

還有什麼方法可以測試或實際測量手機在J2ME應用程序中可以處理的圖像的大小(分辨率/文件大小)? – StackIt

+0

最好的指導方針是,大多數J2ME手機有2MB的Java應用程序堆,你的應用程序不能超過這個堆,否則它會拋出一個outofmemory異常。你需要在這個限制內處理你的應用程序,我建議如果你的應用程序沒有消耗太多的內存,那麼500KB的圖像應該不是什麼大問題。 1MB圖像將推動它,但仍然有可能。 2MB圖像只適用於4MB堆的手機。剖析您的應用程序以查看內存使用情況,但我認爲500KB應該可以工作。 – Ajibola

相關問題