GoldenDict (www.goldendict.org、詳細については Google Play ストアも参照) の精神で、Firefox OS 用の辞書アプリを作成しました: http://tuxor1337.github.io/firedictおよびhttps://marketplace.firefox。 com/app/firedict
ffosのアプリはHTML、CSS、JavaScript(WebAPIなど)をベースにしているため、すべてゼロから書く必要がありました。最初に、JavaScript で StarDict 辞書への同期および非同期アクセス用の基本的なライブラリを作成しました: https://github.com/tuxor1337/stardict.js
アプリは今のところ安定していると言えますが、全体的なパフォーマンスはまだ少し遅いです. 一部の辞書では、ほぼ 1,000,000 エントリの単語のリストがあります。それは巨大です。インデックス作成には非常に長い時間がかかり (辞書ごとに最大数分)、検索も必要です。現時点では、単語は IndexedDB オブジェクト ストアに格納されています。別の代替手段はありますか?現在のソリューション (バイナリ検索を使用してアクセスおよび挿入される単語) では、全体的なエクスペリエンスはかなり遅くなります。IndexedDB によるロケールソートのサポートがあれば、おそらくもっと速くなるでしょう...実際、用語そのものを DB に保存するのではなく、オフセットのみを *.syn/*.idx ファイルに保存します。そうすることでいくらかのメモリを節約したいと思っています。もちろん、この構成ではIDBソート機能を使用できません...
一部のデバイス (ZTE Open など) では OOM が原因でアプリがカーネルによって強制終了されるため、メモリ内で並べ替えを行うのは最善の方法ではない可能性があります。500,000 を超えるエントリを持つディクショナリは、メモリ内で確実に 100 MB を超えます。(これはエントリあたりわずか 200 バイトであり、キーワード文字列が UTF-8 であると仮定すると、すぐに 100 MB を超えます...)
GitHub のプロジェクトに自由に直接貢献してください。そうでない場合は、上記の問題についてアドバイスをいただければ幸いです。