目次
1. このトピックについて
このデザインは主に、大学で学んだ Android 技術開発、データベース、およびその他のコースの総合的なレビューとアプリケーションです。ユーザーが決定した単語帳と設定でカスタマイズされた学習量に応じて、この設計では、ユーザーが計画的に毎日単語の復習を行うのを支援するシステムが必要です; ユーザーは自由に単語帳を交換してリセットすることを選択できます。学習記録; 主要な翻訳プラットフォーム API を介して提供され、単語と例文を見つけることができ、自分の学習記録と記憶を理解でき、システム テーマをカスタマイズできます。
2. 開発プラットフォーム
このテーマの開発プラットフォームは次のとおりです。
-
オペレーティング システム: Microsoft Windows 10
-
プログラミング言語: Java、XML
-
IDE ツール: AndroidStudio 4.1.1
-
IDE プラグイン: データベース ブラウザ
-
データベースサーバー: SQLite
-
その他のツール: Android 7.0 以降を搭載したスマートフォンまたはエミュレーター
3. システム分析
この章では、主にシステム構築に関するより詳細な要件分析、ターゲット分析、機能分析を行います。
3.1 海外での Android アプリ開発の現状
調査によると、2019 年の米国のインターネット ユーザー数は 2 億 9000 万人に達し、インターネット使用率は 89.4% に達し、携帯電話の 1 日平均使用時間は 3 時間を超えています。無料アプリではSNS、ゲーム、オフィス、オンライン動画が人気で、有料アプリではツールやオンラインゲームが人気です。Android プラットフォームでは、GooglePlay には膨大な数のアプリケーションがあり、その数とダウンロード数は国内のどのアプリケーション ストアよりもはるかに多く、海外でモバイル アプリケーションを使用する潮流がすでに到来しており、より多くのモバイル アプリケーションの開発ニーズが刺激されていることを示しています。[17] アプリケーション開発言語の選択において、依然として Java を開発言語として使用するほとんどの国内開発者とは異なり、ほとんどの外国開発者は一般的に開発言語として Kotlin を選択します。[18]
3.2 中国における Android アプリ開発の現状
国内の Android 開発は依然としてアプリケーション開発が中心であり、主にエンタープライズ向けアプリケーション開発、ゲーム開発、一般アプリケーション開発の 3 つのカテゴリに分けられます。
- 企業は、アプリケーションを開発します.このようなアプリケーションは、一般的に大規模な企業に必要です.これらの企業は、主に自社ブランドまたは他のブランドの携帯電話またはタブレット コンピューターの全体的なソリューションを設計します.
- 汎用アプリケーションの開発には、主に 2 つの収益方法があります。外資系企業に開発を委託する方法、広告を埋め込むことで広告シェアを獲得する方法、有料の購入によって利益を得る方法です [19]。
- ゲーム開発は現在、2 番目のタイプの開発者に似ています。このようなアプリケーションは、ユーザーに新鮮な気持ちを与えるだけでなく、ほとんどのユーザーのさまざまな心理を正しく利用することで、有料の購入を通じて簡単にお金を稼ぐことができます。
3.3 システム構築対象分析
単語暗記アプリの開発では、単語を効率的に暗唱するユーザーのニーズを満たすために、ユーザーがいつでもユーザー データを操作し、毎日のタスクと各単語に表示される単語の頻度を自動的に調整できる必要があります。このシステムの目標は、エビングハウスの忘却曲線とユーザーの親しみやすさの組み合わせに従ってレビューを配置することにより、ユーザーの単語の暗唱の効率を最大化することです [20]。さらに、アプリケーションは、直感的なユーザーの親しみやすさの統計と完了ステータス マップをリアルタイムで提供する必要もあります。
- 親密度計算単語頻度を実現
各単語の習熟度は、ユーザーが単語を復習する際に選択する必要があります。習熟度には、暗記、理解、あいまい、忘却の 4 つのオプションが含まれます。各習熟度は、システムによって判断され、確実な条件の下で復習が再調整されます。今日のタスク。当日のユーザーの暗唱の記憶がより確実で信頼できるものになるようにする。
- エビングハウスの忘却曲線を実現して単語の頻度を計算する
このアプリケーションは、エビングハウスの忘却曲線を最大限に活用して、ユーザーが今日以外のタスクを合理的にレビューできるようにします。エビングハウスの忘却曲線の計算方法は、システムのタイムスタンプのみに依存します。エビングハウスの忘却により、ユーザーがレビューできるように調整されています。曲線 単語は単語の忘却率を更新します (これはユーザーの親しみやすさとは関係ありません)。これにより、過去に学習した単語のユーザーの暗唱記憶がより強固で信頼できるものになります。
- 学習統計の実現
データベース統計とAPIを使用して、グラフの形でユーザーに視覚的に表示します。統計グラフには、現在の語彙学習進捗グラフ、エビングハウス忘却曲線グラフ、学習状況グラフがあり、そのうち学習状況グラフは、ユーザーの習熟度、残りの計画、および単語コレクションを明確に示します。
- ユーザーデータ操作の実装
ユーザー インターフェイスの設定を通じて、ユーザーは毎日のタスクの量をカスタマイズでき、ユーザーはタスク管理やシステム テーマなどを学習し、ユーザー エクスペリエンスと学習効率をさらに向上させることができます。
3.4 システム構築機能分析
3.4.1 システムの全体構成
システムは 2 つのサブシステムで構成されています: フォアグラウンド表示および暗記単語サブシステムとバックグラウンド データ管理サブシステムです。同時に、主に 2 種類の JSON データ解析と 1 つの XML データ解析プロセスが含まれています。ファントム バック ワード API 語彙本と語彙データ解析、iciba 辞書 API データ解析です。その中でもゴースト暗記APIのデータ解析は重要な部分であり、関連するすべての語彙のデータソースとなっています。
3.4.2 システム機能モジュール
フロントデスクには暗記単語サブシステムが表示されます
フロントデスクに表示されたワードバックサブシステムの簡単な説明
- レビューモジュール:単語を暗唱するためのアプリの主な機能であり、ユーザーが対応する単語を暗唱するように調整し、ユーザー情報と語彙情報データベースを更新します。
- 統計モジュール: ユーザーの学習進捗状況の扇形の統計グラフ、ユーザーの学習状況のヒストグラム、エビングハウスの忘却データの折れ線統計グラフを表示します。
- 語彙モジュール: 現在の英語の語彙を変更し、お気に入りの語彙と検索語を表示します。
- 設定モジュール:単語を暗唱するためのアプリのテーマ、単語を暗唱する毎日のタスク、およびユーザーデータの操作を設定します。
- ナビゲーション バー モジュール: ユーザーが対応する機能モジュールにすばやく切り替え、モジュール切り替えスタイルを表示するのに役立ちます。
バックグラウンド データ管理サブシステム
バックグラウンド データ管理サブシステムの簡単な説明
- ユーザーデータの初期化:ユーザーID、ユーザーが使用する辞書ID、ユーザーのタスク量、ユーザーの今日のタスクの進捗状況、タイムスタンプなどの情報を含む、現在のユーザー情報データベースを初期化します。
- 用語集データの初期化: 語彙データ要求情報、語彙 ID、語彙量、語彙データの有無などを含む、すべての語彙情報データベースを初期化します。
- 語彙データの初期化: 語彙ID、語彙データ要求情報、語彙本ID、語彙音声記号、語彙発音アドレス、語彙名、語彙定義、語彙が保存されているかどうか、語彙タイムスタンプ、語彙記憶レベルなど、すべての語彙情報データベースを初期化します。語彙 親しみやすさと語彙の例文およびその他の情報。
- 語彙例文の初期化:iciba API を使用して、対応する語彙の単語例文をクエリし、語彙情報データベースを更新します。
3.4.3 アプリケーション機能計画図
システムの主な機能計画を図 3-3 に示します. ここに示されているのは、システムの主なプロセスの一般的なリンクのみです. 詳細な説明は、後で機能モジュールの詳細な設計に関与します.
4. システム設計
4.1 フロント裏言葉表示用サブシステムの詳細設計
4.1.1 レビュー機能モジュール
復習機能モジュールは、ユーザーに最初に表示される部分であり、その動作原理とユーザー インターフェイスは、単語暗記アプリの最も重要な部分であり、ユーザーがアプリを使用し続けるように動機付ける上で非常に重要な役割を果たします。したがって、レビュー機能モジュールの設計は、ユーザーエクスペリエンスとアートデザインに注意を払う必要があると同時に、使いやすく、情報が包括的である必要があります。復習機能モジュールでは、フラグメントの本体が上から下に 3 つのフレームに分割されます. 1 つ目のフレームはユーザーの進捗状況とその日の単語タスク情報を表示し、2 つ目のフレームは現在の単語に対するユーザーの操作フレームです (例えば、単語の収集、単語の発音、親しみやすさの選択など); 3 番目のフレームは、単語の定義、発音記号、例文などの情報です。
説明の便宜上、2 番目のフレームと 3 番目のフレームの紹介から始めます。
ユーザーにとって、何も操作を行わなければ、2 番目のフレームと 3 番目のフレームの可視部分には、単語、単語の発音記号、単語の発音、および単語のコレクションのみが表示されます。単語の品詞、定義、例文、親しみやすさ選択部分が完全に隠されています。このプロジェクトでは、単語の例文と単語の品詞制御にクリック イベントを設定し、プロンプトでテキストをクリックします。ユーザーが対応する操作を実行した後、2 番目のフレームと 3 番目のフレームのユーザー親密度選択、スピーチの単語と単語の例文が表示されます。その中で、ユーザーの親しみやすさには、暗記、理解、あいまい、忘却の 4 つのオプションがあります。単語操作と親密度選択の機能は次のとおりです。
- 暗記: ユーザー語彙データ テーブルには、現在の単語の暗記フラグが記録されます。今日のタスクの負荷に関係なく、その単語が再度復習のためにスケジュールされる可能性は 0% です。
- 認識: ユーザー語彙データ テーブルには、現在の単語の認識フラグが記録されており、今日のタスクの負荷に関係なく、20% の確率でその単語が再確認のためにスケジュールされます。
- あいまい: ユーザーの語彙データ テーブルには、現在の単語のあいまいフラグが記録されます。今日のタスク負荷をカウントせずに、その単語が再び復習のためにスケジュールされる可能性は 40% です。
- 忘れる: ユーザー語彙データ テーブルは、現在の単語の忘れフラグを記録します。今日のタスクの負荷に関係なく、その単語が再び復習のためにスケジュールされる可能性は 60% です。
- 単語集:ユーザー語彙データテーブルには現在の単語のお気に入り・非お気に入りフラグが記録されており、単語帳機能モジュールの「お気に入り」でお気に入り・非お気に入り操作を再度確認することができます。
- 単語の発音: 語彙データ テーブルのアドレスに従って、実在の人物の発音を再生します。
データの初期化中に、アプリケーションは wordList と hitList を準備します。その中で、wordList にはユーザーが今日完成させる必要があるすべての単語が含まれ、hitList にはすべてのヒット単語が含まれます (ここでは、慣れ親しんだために再確認する予定のすべての単語がヒット単語になります。以下同じ)。 . ユーザーは、次の単語を確認するために、これら 4 つの習熟レベルのいずれかを選択する必要があります。次の単語のレビューを準備するとき、その単語が hitList から来る確率は 50% です。
最初のフレームの今日の進捗状況と毎日のタスクのデータはすべてユーザー データ テーブルから取得されます. ユーザーが習熟度の選択を行っているときに、次の単語が wordList から来ると、今日の進捗状況が 1 つ増加します. 今日の進行状況の最大値は、毎日のタスクの量を超えていません。それ以外の場合、タスクが完了したというメッセージが表示されます。ユーザーが昨日のタスクを完了していない場合、今日の進捗状況は 1 にリセットされますが、レビューを配置すると、昨日の親しみのために選択されていない単語から計算が開始されます。ユーザーが設定機能モジュールでタスク量をリセットする場合、次の状況に分けられます。
- ユーザーが設定した毎日のタスク量が、元の毎日のタスク量よりも多い: レビュー機能モジュールは、新たに拡張された語彙を wordList に追加し、新しく設定された値に従って毎日のタスク量の値を更新します。
- ユーザーによって新たに設定された 1 日のタスク量が、元の 1 日のタスク量よりも小さい: レビュー機能モジュールは、wordList 内の冗長な単語を後ろから前に順に削除し、新たに設定された 1 日のタスク量の値に従って、1 日のタスク量の値を更新します。値を設定します。新しい値が今日の進捗状況よりも小さい場合、今日の進捗状況を 1 日のタスクの最大量にリセットし、今日のタスクが完了したことを知らせます。でも、明日は親しみのために選択されていない単語から数え始めます。
レビュー機能モジュールのデモ (昼のテーマと夜のテーマ)
4.1.2 統計機能モジュール
統計機能モジュールは、ユーザーの学習状況を直感的に反映するように設計されたフラグメントであり、その統計データはすべてデータベースから取得され、リアルタイムで更新されます。したがって、特定のクリック応答イベント (ユーザーのジェスチャーでその場で回転できる扇形の統計グラフなど) を除いて、ユーザーは統計グラフを直接編集または変更することはできません。さまざまな美しい統計グラフを描画できる HelloChart グラフィック描画フレームワークを使用します。このモジュールには、HelloChart を通じて、ユーザー学習の進行状況のファン チャート、エビングハウスの忘却データの折れ線グラフ、およびユーザーの学習ステータスの縦棒グラフが含まれます。
- 扇形の学習進度統計チャート:残りの予定語彙、今日未完成の語彙、完成した語彙、現在の語彙の簡単な情報、学習の進行状況など、現在の語彙について作成された統計。
- エビングハウスの忘却データ折れ線グラフ: ドイツの心理学者エビングハウスは、忘却現象について体系的な研究を行い、無意味な音節を記憶材料として使用し、実験データをエビングハウス忘却曲線と呼ばれる曲線に描きました。曲線の縦軸は記憶保持量を表しており、忘却発達の法則を示しています: 忘却のプロセスはアンバランスです. 記憶の開始時には、忘却は非常に速く、その後徐々に遅くなります. 一定期間後.つまり、忘却の発達は「最初は速く、次にゆっくり」です。このプロジェクトの各単語には、復習時の対応するメモリ値とタイム スタンプがあり、エビングハウスの忘却曲線の縦座標を表すために使用されます。縦座標の値は、対応するタイムスタンプのみに関連することに注意してください。
- 学習状況のヒストグラム: ユーザーが学習したすべての単語について統計が作成されます。縦軸は単語数、横軸はユーザーの親密度統計、お気に入りの単語、今日の残りの未完のボリュームです。
統計関数モジュールのデモの長いスクリーンショット (昼のテーマと夜のテーマ)
4.1.3 辞書機能モジュール
単語帳機能モジュールは、単語暗唱アプリのコア モジュールの 1 つでもあります.その主な機能は、ユーザーが現在の単語帳を置き換えるのを支援することです.この操作を実行した後、復習機能モジュールに戻ると、今日の進歩がわかるでしょう.リセットされますが、ユーザーの日々のタスクは変化せず、統計機能モジュールの現在の学習語彙の学習進捗度の扇形の統計データも変化します。さらに、単語帳機能には、すべてのお気に入りの単語を表示する「お気に入り」オプションもあり、ユーザーは任意に単語をキャンセルできます.データベースとネットワーククエリで関連する単語を照会するための検索ボックスもあります.ここでは最も多い単語のみ重要な切り替えワードを紹介する機能です。単語帳のすべてのデータはプリロードされ、AsyncTask を介してデータベースとアプリケーション インターフェイスに直接同期されますが、すべてのデータがプリロードされると API アクセス エラーが頻繁に発生するため、各単語帳には単語データがない場合があります。最終的な解決策は、ユーザーが語彙を選択する必要があるというものです。その後、AsyncTask は、対応する語彙の語彙データをデータベースに同期し、機能モジュール フラグメントを確認します。ユーザーがこのアプリケーションを初めて使用するときは、図に示すように、レビュー機能モジュールのすべてのコントロールが使用できなくなり、単語選択のプロンプトが表示されます。
語彙を選択するユーザーの操作も非常に簡単に実現できます.すべてのブックの列はスライド可能であり,クリック イベントがあるため,ユーザーはリストされた語彙の名前を直接クリックするだけで済みます.このとき,機能モジュールのインターフェースには、切り替え成功のプロンプトが表示されます。もちろん、上記の対応するデータは、データベースと主要な機能モジュールにも自動的に追加および更新されます。ディクショナリ汎用モジュールのインタフェースを次の図に示します。
単語帳の選択(昼のテーマと夜のテーマ)
4.1.4 機能モジュールの設定
設定機能モジュールの機能は、主にユーザーの日常業務の設定、ユーザーデータのリセット、アプリのテーマの切り替え、ユーザーの切り替え、現在の語彙の更新機能などで、以下の機能があります。
- ユーザーの日常タスク設定: ユーザータスク設定はユーザーによって定義され、レビュー機能モジュールでのユーザー語彙データテーブルの操作の重要な基礎となります; その機能はレビュー機能モジュールで説明されているので、繰り返されませんここ。
- ユーザーデータのリセット: この操作は、ユーザーデータテーブルとユーザー語彙データテーブルのすべてのデータをリセットします. リセット後、ユーザーは新しいユーザーのような学習記録を持たなくなりますが、関連するデータベースのコンテンツは必要ありません.ダウンロードされ、再度ダウンロードされます。関連するデータの変更もリアルタイムで統計データモジュールに同期されるため、統計機能モジュールの内容を確認することは、ユーザーデータがリセットされたかどうかの判断基準にもなります。
- アプリのテーマ切り替え:夜と昼の2つのテーマが用意されており、夜のテーマの導入は、Android開発の開発動向とユーザーのニーズの増加に対応しています。アプリケーションテーマの切り替えは、ユーザーデータテーブルのフィールドでもあり、さまざまなユーザーのニーズに応じて、対応するテーマに自動的に切り替えることができます。
- ユーザーの切り替え: すべての語彙データ ソースはゴースト データ API から取得されるため、API によって提供されるユーザー ID とユーザー キーはすでに非常に一意でプライベートです。したがって、ユーザー アカウントとパスワードは、API によって提供されるユーザー ID とキーとして直接構成されます。ボキャブラリーモジュールの機能で述べたように、ボキャブラリーデータのプリロードを利用することができます. 初回利用時はメインアクティビティがローディングフラグメントを利用する前にログイン状態かどうかを判断することができます.ログイン状態の場合、さまざまなフラグメントを直接ロードします。そうでない場合は、返されたデータに基づいてログインが成功したかどうかを判断します。成功した場合、ユーザー データ テーブルに記録され、フラグメントが読み込まれます。それ以外の場合、ログインは拒否され、フラグメントは読み込まれず、メイン アクティビティのログイン ページにのみとどまります。 (図 4-7)。そのため、ユーザー登録機能は提供されなくなりました。
- 現在の語彙の更新: この操作は、現在のユーザー語彙に対応するユーザー語彙データ テーブルを破棄し、API データを再申請してユーザー語彙データ テーブルを再初期化します。
図に示すように関数モジュール図を設定します (昼のテーマと夜のテーマ)。
ユーザー ログイン インターフェイス:
コード インターフェイス、プロ テストの正しい
4.2 背景データ管理サブシステムの詳細設計
エビングハウスの忘却曲線の実現
エビングハウスの忘却曲線には、推奨される式があります。しかし、システムをより効率的にするために、ポイントを取る方法でエビングハウスの忘却曲線が使用されます。バックグラウンド データ管理サブシステムでタイムスタンプを更新すると、現在のタイムスタンプが元のタイムスタンプと比較され、差が下の表の値に達すると、現在のタイムスタンプに更新され、対応するメモリ値が更新されます。タイムスタンプ差分更新の処理方法を表 4-1 に示します。
表4-1 タイムスタンプ差分更新の処理方法
違い | ただ | 15分 | 20分 | 1時間 | 8時間 | 1日 | 2日 | 6日間 | 30日 |
---|---|---|---|---|---|---|---|---|---|
記憶値 | 100 | 58 | 44 | 36 | 34 | 28 | 25 | 21 | 15 |
復習機能モジュールでは、まず現在の本に含まれる単語を選択し、記憶値が 40 未満で 0 より大きい (つまり、単語が学習済みで、忘却値が 60 より大きい)、および忘却値がhit 関数に渡されます。単語がヒットした場合、単語リストに入れられます.このように、現在の語彙集で学習したすべての単語を復習するプロセスは、エビングハウスの忘却曲線を使用して実現されます.
5. データベース設計
5.1 表のまとめ
5.1.1 データベース表の要約表
テーブル名 | 機能説明 |
---|---|
ログ | ログインログテーブル、ユーザーログイン成功記録 |
ユーザー | ユーザー情報テーブル、特定のユーザー情報を記録 |
単語リスト | ユーザー語彙使用情報と語彙情報を記録するユーザー語彙データテーブル |
ブックリスト | ユーザー語彙使用情報と語彙情報を記録するユーザー語彙データテーブル |
5.2 詳細を表示
ログイン ログ テーブル
テーブル名 | ログ | ログ |
---|---|---|
分野 | データの種類 | 例証する |
ユーザーID | 整数 | 空でない |
ユーザー | 文章 | 空でない |
アプリキー | 文章 | 空でない |
日付番号 | 整数 | 日にち |
ユーザー情報フォーム
テーブル名 | ユーザー | ユーザー |
---|---|---|
分野 | データの種類 | 例証する |
ユーザーID | 整数 | PK |
ユーザー | 文章 | 空でない |
アプリキー | 文章 | 空でない |
クラスID | 文章 | ブックID |
単語位置 | 整数 | デフォルト 100 |
今日_進行状況 | 整数 | デフォルト 1 |
日付番号 | 整数 | 日にち |
テーマナイト | 整数 | 1 - ダーク テーマ、0 - デイ テーマ、デフォルト 0 |
ユーザー
テーブル名 | ブックリスト | ブックリスト |
---|---|---|
分野 | データの種類 | 例証する |
メッセージ | 文章 | デフォルトの失敗 |
タイトル | 文章 | 書名 |
クラスID | 文章 | ブックID |
単語数 | 整数 | デフォルト 0 |
course_num | 整数 | デフォルト 0 |
存在_アイテム | 整数 | 1 - 語彙データが存在する; 0 - 語彙データが存在しない; デフォルト 0 |
ユーザー語彙データ テーブル
テーブル名 | 単語リスト | 単語リスト |
---|---|---|
分野 | データの種類 | 例証する |
word_id | 整数 | PK、自己インクリメント |
メッセージ | 整数 | デフォルトの失敗 |
クラスID | 整数 | ブックID |
course_num | 整数 | デフォルト 0 |
シンボル | 文章 | 発音記号 |
音 | 文章 | 発音住所 |
名前 | 文章 | 英語の語彙 |
差別 | 文章 | 言い換え |
お気に入り | 整数 | 1—好きな言葉;;0—好きではない言葉;;デフォルト 0 |
タイムスタンプ | 整数 | タイムスタンプ; デフォルトは 1618674655870 |
メモリー | 整数 | メモリ値、デフォルト 0 |
単語操作 | 整数 | 3 - 記憶; 2 - 知識; 1 - あいまい; 0 - 忘れる;;デフォルト 0 |
example_sentence | 文章 | 例文 |
6. ソースコード
Androidベースのワードバックソフト [ソースコード+ドキュメント+返信PPT].zip - Androidドキュメントリソース - CSDNダウンロード