. , . Android-, . .
10.02.2017 | |
2,6 M |
. ,
, , , , .
http://www.allbest.ru/
1.
1.1
1.2
1.3
2.
2.1
2.2
2.3 Android-
2.4
. -, 15 . 1999 . 2015 . 4 . 1999. - . .. . 2001 , [20]. 2014 . ()[9]. 2015 . . [ ]. - : https://nnov.hse.ru/language/about_subfaculty, .
, , . 5 : N1, N2, N3, N4 N5. - N1, - N5. , , [21]. , .
-, 90- . [22,1,12,18]. , , , . , .. .. , . , . , , . [2]
, .. , . , , - [5].
, Android 2015 82,2%, , [10].
, Google Play, : , , . : JA Sensei Obenkyo. : , , , .
. - Android .
.
, :
- ;
- AndroidStudio 2.0;
- Android- .
, , - .
, , ; , , .
, , , .
1.
; ; .
1.1
. (Common European Framework of Reference) (A - Basic User; B - Independent User; C - Proficient User), :
A1 - Breakthrough
A2 - Waystage
B1- Threshold
B2 -Vantage
C1 - Effective Operational Proficiency
C2 - Mastery[15]
C .
({\͎). , (JF) (JEES), 1984 , . 2008 560000 .
, : , , . , , .
, JF JEES , , 20 , 2010 .
, . , , , .
(1-, 2-, 3- 4- ) (N1, N2, N3, N4, N5). .
N1 |
1 , . , |
|
N2 |
2 |
|
N3 |
2 3 () |
|
N4 |
3 |
|
N5 |
4 |
N Nihongo ({) - , New - .
, 4- 5- .
N4 |
. ? . ? , . |
|
N5 |
. ? , , , , , . ? , ( , ..). |
, . N1, N2, , , / , N3, N4, N5 : , , , . , N3, N4, N5 , (, , ) / , .
, 2014 . Japan Foundation 6- (1-2) - Japan Foundation Standard, . JFS , . , , JFS (܂邲ƻ) 1-2 , [11].
:
1) , , , ;
2) , : .
:
1) ( ), , p (:: :) ( , ), - 1000 . , . , , , . , , , . : , ;[11]
2) ;
3) , , ;
4) , .
, :
. ;
. ;
. ;
. ;
. ;
. . ;
. ;
. ;
. ;
;
. ;
. ;
. . ;
.
, :
: -/-.
.
3. .
4. .
5. .
6. :
;
,
;
;
;
, , - .
7. .
8. .
9. .
10. , , .
11. .
12. :
;
;
;
;
;
.
:
JBridge. .1-3. - Tokyo, Bonjinsha, 2005.
Minna no Nihongo. .1-2 - Tokyo, 3A Corporation, 1998.
Basic Kanji Book. - Tokyo, Bonjinsha, 2001.
, . , Minna no Nihongo , .
:
Japanese-Language Proficiency Test Official Practice Workbook N4. Publisher: Bonjinsha Inc.
Japanese-Language Proficiency Test Official Practice Workbook N5. Publisher: Bonjinsha Inc.
, 1 , CD . .
Nihongo Sou Matome. 4 : , , , .
1.2
, . KotobaQuiz . .. 3 : - () 1- , .
, . , , :
;
,
;
;
, ;
[11].
, , , .
: . , :
1) - s->, _->T, ->, ~->
2) - b->L, ->p, R->\,b, W->i,
, , : - .
, , , .
1.3
:
- -;
- ;
- .
.
- , , . : 4 . , . , . , : , , , . V . . : { , x . , : , , - N .
, , - .
, , , . , 1 -, - -. , - . :
- ̎q͈҂ɏ܂B- .
- eŁAޏ͑cɈĂꂽB- , .
- - . : 1- + . 1- , 2- - , 3- :
[
[.
. , 4 :
͐yɁQQQQQB
a) ҂ b)҂܂ c)҂܂ d) ҂
, - . b . , , - . , ǂ -> ǂ܂ -> ǂ܂.
- 11 , :
, : , . .
.
.
.
.
.
.
.
.
܂.
.
肪. , . :
~͚MނłB- - .
- . :
|{͐_ːlłA^Oǂ͉lłB- - - , - - [3, c. 99]
, , . :
Ln̉͑f炵łB- [7, c. 25-26]
. , . :
͖ؑłB - -?
ؑ̕łB - @ -.
, , , : ? ?. :
J~Ă܂B@|@ .
:
N͊ǂނƂł܂B- - . : -, .
AWF[J́AxmRƂ܂B- - . : -, .
̑̐l̓VAꂪ킩܂B- -.@ : , ( ) .
N͐VԂقłB- - . : -, .
, , [24, c. 120].
. :
͑cꂿcqB- -, [25, c.69]
:
_~Ă܂B
: . . :
b) c) d)
, ?, . .
2.
; -; , .
2.1
, .. . :
1) , ;
2) ;
3) ;
4) , [14].
KotobaQuiz :
Android Studio 2.0 - -;
SQLite Browser 3.5.0 - , -;
Adobe Illustrator 2014 - . .
2.2
: , , . . , . , , . 1.
:
;
;
;
;
;
.
C :
;
;
;
;
, .
:
;
.
, : . : 2 3 , 1 2 .
2.3 Android-
KotobaQuiz :
, , , . , ;
: , , ;
: , / , , , .
13 java-, 2 (. 1), 8 xml- (. 2), 25 , , ; , . , , . java- com.lyubov.app.kotobaquiz.. 5 : customization, database, preferences, task, ui (. 2). .
customization 2 java- :
- BackGroundManager.java - ;
- SoundManager.java - ;
- ThemeKeys.java - .
BackGroundManager.java . ThemeKeys.java . (Singleton Pattern). , , : , . . (, 2016:60). ThemeKeys.java getInstance(); BackgroundManager(); init(), :
public static BackgroundManager getInstance() {
if (sInstance == null) {
return sInstance = new BackgroundManager();
} else {
return sInstance;
}
}
private BackgroundManager() {
}
public void init(Context context) {
//
}
ThemeKeys.java, , , :
Integer ORIGINAL_THEME_KEY = 1;
Integer DARK_THEME_KEY = 2;
Integer NEUTRAL_THEME_KEY = 3;
ORIGINAL_THEME_KEY 1, : - . , . DARK_THEME_KEY 2, : - . , . , NEUTRAL_THEME_KEY 3, : - .
SoundManager.java . , BackgroundManager.java Singleton. getState() .
public boolean getState() {
return mState;
}
playSoundClick(). , . MediaPlayer.java . , , .
public void playSoundClick(final Context context) {
new Thread(new Runnable() {
@Override
public void run() {MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.button_click);
mediaPlayer.start();
}
}).start();
}
database - ExternalDBOpenHelper.java, . SQLiteOpenHelper.java. .
:
private final String DB_PATH;
private final String DB_NAME;
private SQLiteDatabase database;
private final Context context;
DB_PATH DB_NAME . database SQLiteDatabase , . context .
createDataBase() , copyDataBase() .
openDataBase() , . , . close() synchronized , .
preferences - PreferencesManager(). , : . . mPref SharedPreferences . savePreference Editor.java, edit(). putInt() Editor.java . savePreferences. loadPreferences() getPreference() .
task :
- TaskTypes.java - ;
- QuestionAndAnswers.java - ;
- QuestionAndAnswerManager.java - ;
- TaskLoader.java - .
; .
QuestionAndAnswer.java , . :
- mQuestion - ;
- mAnswerOne - 1- ;
- mAnswerTwo - 2- ;
- mAnswerThree - 3- ;
- mAnswerFour - 4- ;
- mCorrectAnswer - .
. - - .
QuestionAndAnswersManager.java - , , , . :
- mArray - , QuestionAndAnswers.java;
- mCorrectAnswerCount - ;
- mIncorrectAnswerCount- ;
- mNumberOfQuestion - , ;
- mAnswerAndQuestionNumber - QuestionAndAnswers.java;
, QuestionAndAnswers:
mArray = new ArrayList<>(quantity);
for (int i = 0; i < quantity; i++) {
mArray.add(i, new QuestionAndAnswers());}
:
mCorrectAnswerCount = 0;
mIncorrectAnswerCount = 0;
mAnswerAndQuestionNumber = 0;
mNumberOfQuestion = 1;
getCorrectAnswersCount() . getIncorrectAnswersCount() . setAnswerAndQuestion():
public void setAnswersAndQuestion(TextView question, Button answerOne, Button answerTwo, Button answerThree, Button answerFour, TextView numberQuestion, Context context) {
Random rand = new Random();
if (mArray.size() > 0) {
mAnswerAndQuestionNumber = rand.nextInt(mArray.size()); }
(, ) setText(). question answerOne :
question.setText(mArray.get(mAnswerAndQuestionNumber).getQuestion());
answerOne.setText(mArray.get(mAnswerAndQuestionNumber).getAnswerOne());
, numberQuestion setText():
numberQuestion.setText(context.getResources().getString(R.string.question_number) +
String.valueOf(mNumberOfQuestion));
}
, , isCorrect():
public boolean isCorrect(Button currentButton) {
mNumberOfQuestion++;
if (mArray.get(mAnswerAndQuestionNumber).getCorrectAnswer().
equals(currentButton.getText())) {
mCorrectAnswerCount++;
return true;
} else {
mIncorrectAnswerCount++;
return false;
}
}
QuestionAndAnswers.java , , mArray:
public void removeChosenAnswerAndQuestion() {
mArray.remove(mAnswerAndQuestionNumber);
}
mArray getArrayAnswersAndQuestions():
public ArrayList<QuestionAndAnswers> getArrayAnswersAndQuestions() {
return mArray;
}
}
TaskLoader.java TaskTypes.java, , :
-int CHARACTER_MEANING = 0 - , -;
-int GRAMMAR = 1 - , ;
-int CHOOSE_RIGHT_PARTICLE = 2 - , ;
: , :
-String TASK_TABLE_ONE = "task_char_trans"- , -;
-String TASK_TABLE_TWO = "task_gram" - , ;
-String TASK_TABLE_THREE = "task_choose_particle" - , ;
, :
- String TASK_ID = "_id" - , , ;
- String TASK = "task" - , , 1, ;
- String CORRECT_ANSWER = "correct_answer"- , , ;
- String DB_NAME = "taskdatabase" - , 1;
- String TABLE_RESULT_CHARACTER_MEANING = "result_character_meaning" - , 2;
- String TABLE_RESULT_CHARACTER_READING = "result_gram" - , 3
- String TABLE_RESULT_CHOOSE_PARTICLE = "result_choose_particle" - , , - , ,
- String RESULT_CORRECT_ANSWER = "correct_answer" - , , ;
- String RESULT_INCORRECT_ANSWER = "incorrect_answer"- , - , ;
- String RESULT_TOTAL_RATE = "total_rate" - , ;
- int NUMBER_OF_ANSWERS = 4 - , ;
sDataBase SQLiteDatabase. QuestionAndAnswers.java, , mQuestionsAndAnswersCountForTask. Cursor. connectAndOpenDataBase(). executeData(). , , , . :
ArrayList<String> cursorColumns = new ArrayList<>(4);
cursorColumns.add(ANSWER_ONE);
cursorColumns.add(ANSWER_TWO);
cursorColumns.add(ANSWER_THREE);
cursorColumns.add(ANSWER_FOUR);
, :
Integer[] columnOfAnswer;
, , :
Iterator setIterator = randSet.iterator();
0 :
for (int i = 0; i < arrayQuestionAndAnswers.size(); i++) {
:
cursor.moveToPosition((int) setIterator.next());
, :
columnOfAnswer = randomLoadingAnswers();
" & ", :
arrayQuestionAndAnswers.get(i).
setQuestion(cursor.getString(cursor.getColumnIndex(TASK)));
" & " , , : arrayQuestionAndAnswers.get(i).
setAnswerOne(cursor.getString(cursor.getColumnIndex(cursorColumns. get(columnOfAnswer[0])
" & " , , ( 0 3). " & " , , :
arrayQuestionAndAnswers.get(i). setCorrectAnswer(cursor.getString(cursor.getColumnIndex(CORRECT_ANSWER)));
, :
cursor.close();
, :
public void setCursorForTaskLoad(String tableName)
, , , :
cursor = sDataBase.query(tableName, new String[]{TASK, ANSWER_ONE, ANSWER_TWO, ANSWER_THREE, ANSWER_FOUR, CORRECT_ANSWER}, null, null, null, null, null);
(), . , , , :
public void setQuestionsAnswersCountForTask() {
mQuestionsAndAnswersCountForTask = cursor.getCount() / 2;
}
- " & ", :
public int getQuestionsAnswersCountForTask() {
return mQuestionsAndAnswersCountForTask;
}
, ,
public String getTableFromNumber(int number) {
switch (number) {
case CHARACTER_MEANING:
return TASK_TABLE_ONE;
case GRAMMAR:
return TASK_TABLE_TWO;
case CHOOSE_RIGHT_PARTICLE:
return TASK_TABLE_THREE;
default:
return null;
}
}
, , switch-case-break:
public String getResultTableFromNumberOfTask(int number) {
switch (number) {
case CHARACTER_MEANING:
return TABLE_RESULT_CHARACTER_MEANING;
case GRAMMAR:
return TABLE_RESULT_CHARACTER_READING;
case CHOOSE_RIGHT_PARTICLE:
return TABLE_RESULT_CHOOSE_PARTICLE;
default:
return null;
}
}
- . , - - :
public String getResultTableForTaskOne() {
return TABLE_RESULT_CHARACTER_MEANING;
}
getStatistics() . .
ui, -Activity, layout . : , onClickListener(). :
MainActivity.java;
SelectTypeLessonActivity.java;
GameActivity.java;
ResultActivity.java;
StatisticsActivity.java;
SettingsActivity.java;
MainActivity.java main_menu_layout.xml (. ). : RelativeLeayout ; Button , , , , ; : . onCreate(), init(). . , :
mStatisticButton.setOnClickListener(this);
setTheme(). :
if (SoundManager.getInstance().getState()) {
SoundManager.getInstance().playSoundClick(getBaseContext());
}
, . , :
switch (view.getId()) {
case R.id.settings_button:
goToSettingActivity();
break;
case R.id.game_button:
goToSelectLessonActivity();
break;
case R.id.about_button:
showAbout();
break;
case R.id.exit_button:
exit();
break;
case R.id.statistic_button:
goToStatisticsActivity();
break;
default:
break;
}
}
.
private void showAbout() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle(R.string.about_game_title)
.setMessage(R.string.about_game_info)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.dismiss(); }});
AlertDialog aboutDialog = builder.create();
aboutDialog.show();
}
:
android.os.Process.killProcess(android.os.Process.myPid());
GameActivity.java : , . 0,5 , : , , , .
ResultActivity.java , . :
resultView.setText(getResources().getString(R.string.correct_answers_text) + " " + String.valueOf(mCorrectAnswersCount) + "\r\n" + getResources().getString(R.string.incorrect_answers_text) + " "+ String.valueOf(mIncorrectAnswersCount));
. 5 , . 10, "". 10 - .
private void calculateRate() {
if (mCorrectAnswersCount <= 5) {
setRate(R.drawable.bad_rate, getResources().getString(R.string.bad));
} else if (mCorrectAnswersCount <= 10) {
setRate(R.drawable.normal_rate, getResources().getString(R.string.not_bad));
} else {
setRate(R.drawable.good_rate, getResources().getString(R.string.good));
}
}
, :
- ;
- ;
- .
private void setRate(int drawable, String totalTextRate) {
ImageView mGraphicalRate = (ImageView) findViewById(R.id.graphical_rating);
mGraphicalRate.setImageResource(drawable);
mTextRate.setText(totalTextRate);
}
SelectTypeLessonActivity.java : - , , . .
SettingsActivity.java , : / , . , : , . , , .
StatisticsActivity.java : getStatistics():
private String[] getmStatistics()
TaskLoader.java :
TaskLoader statisticLoader = new TaskLoader();
statisticLoader.connectAndOpenDataBase(getBaseContext());
1 ( ):
String taskStatisticOne = statisticLoader.getStatistics(statisticLoader.
getResultTableForTaskOne(), getBaseContext());
:
statisticLoader.closeDatabase();
:
return new String[]{taskStatisticOne, taskStatisticTwo, taskStatisticThree};}
2.4
, KotobaQuiz - Android 4.1 Jelly Bean. , 4.1. Android [ ]. - : www.developer.android.com, . 5 Mb .
, :
- . .. ; , - . ;
- : Java for Android Android Studio 2.0.
- ;
- Android-.
, : , , Material design - , Google. Google [ ]. - : https://www.google.com/design/spec/material-design/introduction.htm, . Google Play.
1. .. // . 2014. 31.
2. .., .. . : - -. 5-10 2014 . - : . .. . 2015. C. 42-46.
3. , .. . I/ .. . - .: . .. , 1999. - 305 .
4. , . JAVA EE. / . , . . - .: , 2016. - 240 .: .
5. .. []/.. // - 2014. - 1. - . 84-94.
6. , .. Android. / .. . - .: -, 2012. - 272 .: .
7. , .. /.. - .: , 2001. - 475 .
8. , .. - C++/CLI, C# Java/ .. - .: , 2011. - 578 .: .
. . . - . .
[17,7 K], 18.06.2007. . . . " " .
[23,4 K], 11.07.2013, . . . ; .
[258,8 K], 14.04.2016. . .
[4,6 M], 29.07.2017. , , . . .
[59,3 K], 10.12.2011. . , , . .
[54,5 K], 08.11.2011. 2 . .
[63,6 K], 11.02.2012, , . , .
[79,2 K], 30.10.2013() . " ". . .
[53,6 K], 17.12.2009, . . .
[611,7 K], 21.06.2011