2011-07-25 32 views
1

好吧我正在創建一個應用程序,它基本上是一個拼字遊戲作弊...我注意到,所有其他應用程序可以在沒有互聯網的情況下工作,這意味着他們必須將他們的數據(單詞)存儲在sql數據庫中或進行排序。我打算做同樣的事情。我導出了我的Mac上的我的mysql數據庫,它是13.2 mb,我認爲它相當多。無論如何,當我看到市場上的其他應用程序與我做同樣的事情時,它們都有kb的大小。與sqlite相比,mysql大小有很大差異。而且我不知道我是否正確查看應用尺寸。這是我如何做到的。設置「>」應用程序「>」管理應用程序「,並在每個包下面顯示大小那是我應該在哪裏尋找應用程序的大小。如何將我的數據庫擴展到我的應用程序中。文件大小小的SQLITE?

回答

0

有許多因素可能會影響您在市場上看到的應用程序的大小與您的mysql轉儲。

1)它們的數據庫/模式的大小以及它們包含的單詞數量。每次向數據庫中添加一列數據時,都會有效地增加數據庫的幾何尺寸(也就是說,如果在2x3數據庫中添加一行,實際上是再添加3個單元格(1col x 3行) )如果您的字典中有10,000個單詞,您可以看到這會如何快速增加數據庫的大小。步驟1:從數據庫中刪除所有不必要的列

2)Android市場上的文件是。 apk文件,它們本質上是非常壓縮的歸檔文件。由於SQLite數據庫基本上只是簡單的文本文件,所以用於創建該包的壓縮算法在壓縮這些數據方面非常出色。一旦你創建你的.apk,你就會看到應用程序的大小急劇下降(我們的遊戲殭屍從60MB解壓縮到10M .apk文件)。第2步:生成apk並查看您實際獲得的文件大小。

0

如果您願意爲空間交換時間,可以將單詞列表作爲壓縮文本文件存儲在您的應用中。然後,在第一次啓動時,創建一個新數據庫並複製單詞列表。

如果您在應用程序啓動後在後臺線程上執行了此操作,則可能在用戶完成第一個單詞搜索之前完成當然你應該有一些機制來表明你已經完成的主線程,並且請求用戶請等待,如果你沒有的話)。