2011-06-14 19 views
9

Android için bir sözlük uygulaması yapıyorum. Bu uygulama genellikle oldukça büyük (10MB veya daha fazla) olan ve sadece düz metinleri içeren stardict ve DICT dosyalarını kullanır.Android - sözlük dosyası. Daha hızlı, veritabanı veya okuma dosyası hangisidir?

Kullanıcılar bir kelimeyi ararken, uygulamam dosyayı rastgele okuyacak ve sonucu döndürecektir. Bazı makalelerde okuma dosyasının pahalı ve yavaş olduğunu okudum. Bu yüzden tüm verileri veri tabanına getirmenin daha iyi bir çözüm olup olmadığını merak ediyorum.

+3

Sizin için ne daha önemli, hız veya gelişme kolaylığı nedir? 'Interpolasyon araması' kullanarak hızlı veya daha hızlı bir şey yazabilirsiniz, ancak uygulamak için daha uzun sürebilir. –

+0

Amacım, sonucu kullanıcılara mümkün olan en kısa sürede döndürmektir. Algoritma için teşekkürler, ona bir okuma yapacağım. – Genzer

cevap

19
Aşağıdaki nedenlerden dolayı bir veritabanı halinde kelime koyarak öneririm

: SQLite ile robot üzerinde

  1. DB aramaları "yeterince hızlı" olduğunu (~ 1 ms) kullanıcıları
  2. Okuma hatta en sabırsız belleğe büyük dosyalar, android gibi bellek sınırlı ortamlarda tehlikeli bir uygulamadır.
  3. "Bellekte" yerine "yerinde" bir dosyadan girişleri okumaya çalışmak, SQLite'nin zaten sizin için çözdüğü tüm sorunları çözmeye çalışıyor.

Veritabanını kullanmak için sunulan tek sorun, onu gereksinim duyduğunuz verilerle başlatıyor. Bu problem, istenen veritabanını önceden oluşturarak ve daha sonra APK varlıklarınıza ekleyerek çözülebilir. Oldukça iyi olan bir örnek here var.

Bu yardımcı olur umarım.