. , . 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

, , ..
PPT, PPTX PDF- .
.