2016-01-13 38 views
2

我運送包含它在Assets/Database目錄中的應用程序的只讀數據庫。所有數據都預先填好。無法使用SQLCipher加密後對Android SQLite數據庫進行壓縮

SQLCipher集成並加密數據庫後,我注意到APK的大小從膨脹到25MB到150MB。原因在於SQLite db文件不再被壓縮。

Android Studio通常會壓縮資源,但在DB文件被加密後,似乎壓縮文件沒有任何效果。我試着用普通的郵政編碼& 7Zip來測試這個,它沒有什麼區別,壓縮文件的大小與原始大小相同。

未加密的數據庫大約爲130MB,壓縮時只需要18MB,因爲它大部分是文本和字符串壓縮很好。壓縮加密的數據庫文件在大小上沒有區別。

通過服務器填充不是一個可行的選擇,因爲它會由於記錄數量永遠存在。下一個選項是從服務器上下載一個完整的加密數據庫文件,但對於140MB文件來說,它仍然會很慢。

需要找到一種方法來發送加密數據庫的應用程序,同時仍然保持應用程序的大小合理的20-30MB

任何想法?

謝謝。

回答

4

壓縮需要查找數據中的模式。 加密刪除所有這些模式。

您需要在加密前進行壓縮。 這不適用於SQLCipher;您必須提供壓縮和加密的.sql文件,然後在新的加密數據庫上執行它。

相關問題