ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

МобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΎΡ†Π΅Π½ΠΊΠΈ эффСктивности ΠΌΠ΅Ρ€Ρ‡Π΅Π½Π΄Π°ΠΉΠ·ΠΈΠ½Π³Π° Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ

Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ построСн Π½Π° Π±Π°Π·Π΅ Android-сСрвиса ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½, ΠΊΠ°ΠΊ слСдуСт ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, для осущСствлСния Π·Π°Ρ‚Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π½Π΅ основного ΠΏΠΎΡ‚ΠΎΠΊΠ° выполнСния. Помимо основного своСго назначСния, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ опрСдСляСт слабосвязанный интСрфСйс для ΠΎΠ±ΠΌΠ΅Π½Π° с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ модулями прилоТСния Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Π½Ρ‚Ρ‹. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Ρ…ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ…… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

МобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΎΡ†Π΅Π½ΠΊΠΈ эффСктивности ΠΌΠ΅Ρ€Ρ‡Π΅Π½Π΄Π°ΠΉΠ·ΠΈΠ½Π³Π° Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

1. ΠžΠ±Π·ΠΎΡ€ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

2. БистСмноС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

3. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

3.1 ОписаниС взаимодСйствия с ΡΠ΅Ρ€Π²Π΅Ρ€ΠΎΠΌ

3.2 ОписаниС классов систСмных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

3.3 ОписаниС классов взаимодСйствия с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

3.4 ОписаниС классов ΠΏΠ°ΠΊΠ΅Ρ‚Π° dialogs

3.5 ΠžΠ±Π·ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… классов ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° helpers

3.6 ОписаниС классов ΠΏΠ°ΠΊΠ΅Ρ‚Π° networking

4. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

5. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° испытаний

6. Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

7. Π’Π΅Ρ…Π½ΠΈΠΊΠΎ-экономичСскоС обоснованиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

7.1 ОписаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

7.2 РасчСт смСты Π·Π°Ρ‚Ρ€Π°Ρ‚ ΠΈ Ρ†Π΅Π½Ρ‹ ПО

8. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΆΠ°Ρ€Π½ΠΎΠΉ бСзопасности Π½Π° Π—ΠΠž «Π˜Ρ‚Ρ€Π°Π½Π·ΠΈΡˆΡΠ½»

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π”Π°Π½Π½Ρ‹ΠΉ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ систСмы, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹ΠΌ ΠΎΡ‚Π΄Π΅Π»ΠΎΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ сотрудников (ΠΌΠ΅Ρ€Ρ‡Π΅Π½Π΄Π°ΠΉΠ·Π΅Ρ€ΠΎΠ²), Π° Ρ‚Π°ΠΊΠΆΠ΅ для слСТСния Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ΄Π°ΠΆ Π² ΡΠΎΠΎΡ‚вСтствии с ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ.

БистСма являСтся Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ инструмСнтом для Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ использованиС. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ систСма ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ сбор ΠΈ Π°Π½Π°Π»ΠΈΠ· ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„отографиями.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° систСмы прСслСдуСт Π΄Π²Π΅ Ρ†Π΅Π»ΠΈ: с ΠΎΠ΄Π½ΠΎΠΉ стороны, ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ рядовым сотрудникам удобство ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Ρƒ вСдСния отчётности ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅, Π° Ρ Π΄Ρ€ΡƒΠ³ΠΎΠΉ — ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ руководитСлям Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ контроля Π·Π° Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Ρ‘Π½Π½Ρ‹Ρ….

По ΡΠ²ΠΎΠ΅ΠΉ структурС систСма прСдставляСт собой ΠΊΠ»ΠΈΠ΅Π½Ρ‚-ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Π³Π΄Π΅ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² выступаСт мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ ΠΌΠ΅Ρ€Ρ‡Π΅Π½Π΄Π°ΠΉΠ·Π΅Ρ€Π°ΠΌΠΈ Π² Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΄Π°ΠΆ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Π΅Π±-интСрфСйс, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ основныС возмоТности для просмотра Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π·Π²Π΅Π½Π° сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π²Π΅Π±-интСрфСйса администрирования для управлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ирования Π΄Π°Π½Π½Ρ‹Ρ….

Богласно Π»ΠΎΠ³ΠΈΠΊΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы, ΠΌΠ΅Ρ€Ρ‡Π΅Π½Π΄Π°ΠΉΠ·Π΅Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ пСриодичСски ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€ снимки Π·Π°ΠΊΡ€Π΅ΠΏΠ»Ρ‘Π½Π½Ρ‹Ρ… Π·Π° Π½ΠΈΠΌΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΏΡ€ΠΎΠ΄Π°ΠΆ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π° ΠΎ ΡΠ²ΠΎΠ΅ΠΉ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, имСя доступ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΉ Π±Π°Π·Π΅ снимков, сдСланных ΠΌΠ΅Ρ€Ρ‡Π΅Π½Π΄Π°ΠΉΠ·Π΅Ρ€Π°ΠΌΠΈ, ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-интСрфСйс ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ снимков ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для сопоставлСния Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆ с Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ²Π°Ρ€Π° Π½Π° ΠΏΡ€ΠΈΠ»Π°Π²ΠΊΠ°Ρ…. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ нахоТдСния Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎΠ³ΠΎ располоТСния Ρ‚ΠΎΠ²Π°Ρ€Π°, Π»ΠΈΠ±ΠΎ ΠΆΠ΅ для наблюдСния Π·Π° ΡΡ…ΠΎΠΆΠΈΠΌΠΈ дСйствиями ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΠΈΡ€ΠΌ. Помимо этого, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ снимков ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ сотруднику для наблюдСния Π·Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ прСдусматриваСт использованиС Π² Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ инфраструктурС, поэтому слоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π»ΠΈ схоТиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π₯ΠΎΡ‚ΡŒ это ΠΈ Π½Π΅ Π°Ρ„ΠΈΡˆΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ, вСроятно, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ систСмы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ компаниями, ΠΎΠ΄Π½Π°ΠΊΠΎ, скорСС всСго, ΠΈΠΌΠ΅ΡŽΡ‚ свои особСнности, связанныС с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²Π΅Π½Π½ΠΎΠΉ ΠΎΡ‚Ρ€Π°ΡΠ»ΡŒΡŽ ΠΈ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠΌ наблюдСний.

1. ΠžΠ±Π·ΠΎΡ€ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π’ ΠΎΡΠ½ΠΎΠ²Π΅ программирования для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы (ОБ) Android Π»Π΅ΠΆΠΈΡ‚ программирования Π½Π° Java. НСсмотря Π½Π° ΡΠ²ΠΎΡŽ Π·Π°ΠΊΠΎΡΡ‚Π΅Π½Π΅Π»ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΠΎΠ΅ нСудобство Π² Ρ€Π°Π±ΠΎΡ‚Π΅, Java являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡ‹ΠΌ популярных языков программирования. Π―Π·Ρ‹ΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· Java состоялся Π΅Ρ‰Ρ‘ Π² 1995 Π³ΠΎΠ΄Ρƒ — поэтому Π½Π΅ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ сущСствуСт ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΎΠ² ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сайтов, посвящённых Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ярких ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ привСсти Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространённыС ΠΈ.

Java — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Sun Microsystems (Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Ρ‘Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Oracle). ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Java ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ транслируСтся Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, поэтому ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π»ΡŽΠ±ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Java-машинС Π²Π½Π΅ зависимости ΠΎΡ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. BΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Java (Java Virtual Machine, Π΄Π°Π»Π΅Π΅ JVM)) — основная Ρ‡Π°ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅ΠΉ систСмы Java, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Java Runtime Environment (JRE). Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Java ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ созданный ΠΈΠ· ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ компилятором.

Π’ ΡΠ²ΠΎΡ‘ врСмя Java ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠ΄Π°Ρ‚ΡŒ стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для бизнСс Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π’ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π½Π° ΡΡ‚ΠΎ повлияли удобство программирования (Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ это Π΅Ρ‰Ρ‘ Π±Ρ‹Π»ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ) ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Π° освоСния языка: синтаксис языка Java прСдставляСт собой Π±ΠΎΠ»Π΅Π΅ простой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ синтаксиса языка Π‘++. Зная Π‘++, нСслоТно ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ·Ρ‹ΠΊΡƒ Java. Π’ Π½Π°ΡΡ‚оящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Java ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π² ΡƒΠ΄ΠΎΠ±ΡΡ‚Π²Π΅ использования Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ соврСмСнных языков программирования, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΠΏΠ΅ΡˆΠΈΡ‚ ΡΠ΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π΅ популярности. Π’ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ это обусловлСно ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Oracle, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π΅ΠΌΠΏΡ‹ развития Java сущСствСнно ΠΎΡ‚ΡΡ‚Π°ΡŽΡ‚ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… распространённых языков программирования. Java-сообщСство ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎ, Π° ΡΠΊΠΎΡΠΈΡΡ‚Π΅ΠΌΠ° языка содСрТит Π³ΠΈΠ³Π°Π½Ρ‚ΡΠΊΡƒΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ с Ρ‚ысячами сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, сущСствСнно Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. НСсмотря Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, ΠΎΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ, Π±Π΅Π· ΠΌΠ½ΠΎΠ³ΠΈΡ… популярных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠ΄ΠΎΠ±ΡΡ‚Π²ΠΎ использования Java «ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ» оставляСт ΠΆΠ΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ.

Одним ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… свойств Java, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²ΡˆΠΈΠΌ Π΅ΠΌΡƒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ, являСтся ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ. Ѐилософия Java ΠΏΡ€ΠΎΠ²ΠΎΠ·Π³Π»Π°ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ «Write once — run everywhere», ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ, Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, Java-ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ исполнСн Π½Π° Π»ΡŽΠ±ΠΎΠΉ JVM, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ Π½Π° Π»ΡŽΠ±ΠΎΠΌ устройствС. Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π±ΠΎΠ»ΡŒΡˆΠΈΠΌΠΈ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ это Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ работоспособности JVM Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° Ρ‚Ρ€Ρ‘Ρ… ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π°Ρ… устройств. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, благодаря Π·Π°ΠΌΠ°Π½Ρ‡ΠΈΠ²ΠΎΠΉ пСрспСктивС пСрСносимости, ΠΈΠΌΠ΅Π½Π½ΠΎ Java Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ языка программирования для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы (ОБ) Android. Ѐилософия ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования ΠžΠ‘ Π½Π° Π»ΡŽΠ±ΠΎΠΌ устройствС с Π»ΡŽΠ±ΠΎΠΉ микропроцСссорной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ARM, x86 ΠΈΠ»ΠΈ любая другая.

ОБ Android являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ лукавости ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° «Write once — run everywhere»: Π²Π²ΠΈΠ΄Ρƒ ограничСнности рСсурсов использованиС стандартной JVM Π±Ρ‹Π»ΠΎ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΎ, ΠΈ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»ΠΎ использованиС Java ME JVM, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств. Однако, компания Google Ρ€Π΅ΡˆΠΈΠ»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Dalvik VM, которая отличаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… JVM ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ [3]:

1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ DEX для хранСния Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ² с Ρ†Π΅Π»ΡŒΡŽ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

2. Dalvik VM ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° для выполнСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… процСссов ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ… ΠΏΡ€ΠΎΡ‚ΠΈΠ² стСковой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… JVM.

4. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ собствСнный Π½Π°Π±ΠΎΡ€ инструкций, Π° Π½Π΅ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ JVM.

5. Π’ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ запуск Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… нСзависимых Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ процСссС.

6. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сСриализации ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², основанный Π½Π° ΠΊΠ»Π°ΡΡΠ°Ρ… Parcel ΠΈ Parcelable.

7. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ особый способ для выполнСния Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами, основанный Π½Π° Android Interface Definition Language (AIDL).

ΠšΡ€ΠΎΠΌΠ΅ Π½ΠΎΠ²ΠΎΠΉ JVM, Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»ΠΈ пСрСсмотрСны стандартныС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Java JDK API. НСкоторыС ΠΈΠ· Π½ΠΈ Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, всё, Ρ‡Ρ‚ΠΎ касалось Swing (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для создания графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ), Π½ΠΎ Π² Ρ‚ΠΎΠΌ числС добавилось Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство собствСнных android. ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΡΠΊΠ°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, написанная Π½Π° Java, смоТСт Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π±Ρ‹Ρ‚ΡŒ скомпилированной ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ Π½Π° Android-устройствС.

Π’ ΡΠ²ΡΠ·ΠΈ с Π±ΠΎΠ»ΡŒΡˆΠΎΠΉ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, сущСствуСт большоС количСство источников ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ Android-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ источником, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, являСтся ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ докумСнтация. Помимо тСхничСской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° срСдств Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Software Development Kit, SDK), ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт содСрТит мноТСство ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², руководства ΠΏΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ стандартных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с Π½ΡƒΠ»Ρ, Π° Ρ‚Π°ΠΊΠΆΠ΅ трСбования ΠΊ Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ.

Одной ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных ΠΊΠ½ΠΈΠ³ являСтся. Данная ΠΊΠ½ΠΈΠ³Π° прСдставляСт собой практичСский курс ΠΏΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π° Π±Π°Π·Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ вСрсии Android SDK. НСсомнСнно, ΠΊΠ½ΠΈΠ³Π° сильно устарСла Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΎΠ΄Π½Π°ΠΊΠΎ всё Π΅Ρ‰Ρ‘ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ структурированным руководством ΠΏΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ мноТСство ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ создаСтся с ΡƒΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ совмСстимости с Π±ΠΎΠ»Π΅Π΅ старыми вСрсиями ΠžΠ‘ Android, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π½Π΅ ΠΏΠΎΡ‚Сряли Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Как Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ, ΠΈΠ· Π»ΡŽΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… источников ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡Π΅Ρ€ΠΏΠ½ΡƒΡ‚ΡŒ свСдСния ΠΎΠ± Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π›ΡŽΠ±ΠΎΠ΅ Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, содСрТит Π² ΡΠ΅Π±Π΅ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… App Components — ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² прилоТСния. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π²ΠΈΠ΄Π° основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² прилоТСния: Activity, Service, Content Provider ΠΈ Broadcast Receiver. К ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡŽ, Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° этих Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² Π½Π° Ρ€ΡƒΡΡΠΊΠΈΠΉ язык. Π’ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ калька с Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Activity — «ΠΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ». ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «ΠΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ» Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ соотвСтствуСт Ρ‚ΠΎΠΌΡƒ, для Ρ‡Π΅Π³ΠΎ слуТит класс Activity (ΠΎ Π΅Π³ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ написано Π½ΠΈΠΆΠ΅), Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-источников ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ русская транскрипция Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Activity — «ΠΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ».

Активити прСдставляСт собой ΠΎΠ΄Π½Ρƒ «ΡΡ‚Ρ€Π°Π½ΠΈΡ†Ρƒ» с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом (Ссли ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈ с Π²Π΅Π±-интСрфСйсами). ВсС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ классами, унаслСдованными ΠΎΡ‚ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ³ΠΎ класса Activity. Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ провСсти Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒ с Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Windows Forms, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ частичныС (partial) классы, Π² Android-прилоТСниях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ½ΠΎΠΉ способ связывания элСмСнтов интСрфСйса ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса-Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ. КаТдая Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ (рисунок 1.1), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ дСмонстрациСй спСцифики ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ рСсурсы ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств вСсьма ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹, достовСрно ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ лишь Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ лишь Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ относятся ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠΌΡƒ Π½Π° ΡΠΊΡ€Π°Π½Π΅ содСрТимому. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ скрываСтся с ΡΠΊΡ€Π°Π½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сворачиваСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ «Π”ΠΎΠΌΠΎΠΉ», Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΡΠΎΡΡ‚ояниС «ΠΎΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΎ» (stopped). Начиная с ΡΡ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ОБ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ΡŒ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, относящиСся ΠΊ Π΄Π°Π½Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ саму Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ. Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· ΡΡ‚ΠΎΠ³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ воврСмя ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ состояниС прилоТСния. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ смСнС ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ устройства с Π»Π°Π½Π΄ΡˆΠ°Ρ„Ρ‚Π½ΠΎΠΉ Π½Π° ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Π½ΡƒΡŽ ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ уничтоТаСтся ΠΈ ΡΠΎΠ·Π΄Π°Ρ‘тся Π·Π°Π½ΠΎΠ²ΠΎ. Π‘Π»ΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΈΠΊΡ‚ΠΎΠ²Π°Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, скорСС всСго это сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса для Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ устройства. Данная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΡƒΡŽ Π²Π°ΠΆΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ — ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ сохранСния состояния ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π΅ экрана). ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

БСрвис — это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ„ΠΎΠ½Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся для Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Ρ€Π΅ΡΡƒΡ€ΡΠΎΡ‘ΠΌΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ сСрвиса являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска Π² ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ (foreground mode), благодаря ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠžΠ‘ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ„ΠΎΠ½Π΅ максимально Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя. НСсмотря Π½Π° Ρ‚Π°ΠΊΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ся Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ Сю ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ сСрвисы ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅. ΠŸΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для записи ΠΈΠ»ΠΈ воспроизвСдСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ содСрТимого, Π° Ρ‚Π°ΠΊΠΆΠ΅ для скачивания ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ². Помимо ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π²ΡˆΠΈΡ…ΡΡ Ρ€Π°Π½Π΅Π΅ источников, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ руководством ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΡΠ΅Ρ€Π²ΠΈΡΠ°ΠΌΠΈ являСтся.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΈΠΌ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ являСтся Broadcast Receiver (Π² Ρ€ΡƒΡΡΠΊΠΎΡΠ·Ρ‹Ρ‡Π½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ встрСчаСтся ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ «ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ»). Broadcast receiver — это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, слуТащий для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сообщСний. ОБ Android ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ для сообщСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ — ΠΈΠ½Ρ‚Π΅Π½Ρ‚Ρ‹ (intent). Иногда Π² Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ встрСчаСтся прямой ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ — «Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΡ». Π˜Π½Ρ‚Π΅Π½Ρ‚ — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Intent ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сообщСниС. Π‘ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΈΠΉ ΠΊΠΎΠ΄ ошибки, дСйствиС, URI (Uniform Resource Identifier), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ пСрСсылаСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ extras, хранятся Π² Π°ΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ строковыми ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ всС ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, строки, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ интСрфСйсы Serializable ΠΈΠ»ΠΈ Parcelable. Π˜Π½Ρ‚Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ·ΠΊΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для запуска сСрвиса ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π½ΠΎΡ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ событии. Π˜Π½Ρ‚Π΅Π½Ρ‚Ρ‹ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠžΠ‘ Android: благодаря ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Π½Ρ‚Π°ΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмныС события, ΠΎΡ‚ ΡΡ€Π°Π±Π°Ρ‚ывания Π±ΡƒΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊΠ° ΠΈ Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΏΠΎ ΡΡΡ‹Π»ΠΊΠ΅ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

Рисунок 1.1 — Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Activity

ПослСдним нСрассмотрСнным ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ являСтся поставщик ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° — content provider. Π­Ρ‚ΠΎ, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, слуТащий для прСдоставлСния доступа ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ систСмныС поставщики ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° для доступа ΠΊ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ, получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… прилоТСниях ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Доступ осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ URI ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Π΄ΠΎΡΡ‚ΡƒΠΏΠΎΠΌ ΠΊ Π²Π΅Π±-страницам. Низкая ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° связана с Π΅Π³ΠΎ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ: Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠΈ доступа ΠΊ ΡΠ²ΠΎΠΈΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ.

Π¨ΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊΠΈ ΠΈ ΠΏΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Ρ…ΠΎΡ€ΠΎΡˆΠΎ описаны Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… источниках, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΠΌ русскоязычном рСсурсС, посвящённом ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ программирования для ΠžΠ‘ Android -.

Π‘Π²ΡΠ·ΡƒΡŽΡ‰ΠΈΠΌ элСмСнтом, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Ρ€ΠΎΠ·Π½Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² Π΅Π΄ΠΈΠ½ΠΎΠ΅ Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, являСтся манифСст. ΠœΠ°Π½ΠΈΡ„Π΅ΡΡ‚ — это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ XML-Ρ„Π°ΠΉΠ», содСрТащий ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² прилоТСния, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ для сборки вСрсии ОБ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ возмоТности устройства (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ„Ρ€ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ вСрсии OpenGL ES).

Помимо изучСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ознакомится с ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ шаблонами проСктирования ΠžΠ‘ Android. НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ стандартными шаблонами проСктирования ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΡŒ (observer) ΠΈ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΡŒ (listener). Π’Π°ΠΊΠΆΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΊΠ°ΠΊ ΠΎΠ±ΠΌΠ΅Π½ сообщСний ΠΈ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ связываниС. Помимо этого, Android Π΄ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ свои ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… стандартных процСссов, Ρ‚Π΅ΠΌ самым заставляя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ спСцифичСским шаблонам проСктирования. Π―Ρ€ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² этого ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ (loaders). Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ класса Loader ΠΈ ΡΠ»ΡƒΠΆΠ°Ρ‚ для асинхронной Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π“Π»Π°Π²Π½Ρ‹ΠΌ прСимущСством Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ‚ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Для доступа ΠΊ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Loader Manager, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСтся Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π»ΡŽΠ±Ρ‹ΠΌ классам, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΌ интСрфСйс Loader Manager Loader Callbacks. НСсмотря Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ встроСнныС Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ довольно часто приходится Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ свои спСцифичСскиС Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ получСния массивов ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΡΠ΅Ρ‚ΠΈ. Π₯ΠΎΡ€ΠΎΡˆΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎ ΠΏΡ€Π°ΠΊΡ‚ичСской Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ. Π’Π°ΠΌ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Ρ‹ΡΠΊΠ°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎ ΡΠΏΠ΅Ρ†ΠΈΡ„ичСским шаблонам проСктирования.

НСсмотря Π½Π° Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ SDK ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… шаблонов проСктирования, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ врСмя издавалось Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ с ΡƒΠΏΠΎΡ€ΠΎΠΌ Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ вСрсии срСдств Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ привСсти. Книга Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ схоТа с [2], ΠΎΠ΄Π½Π°ΠΊΠΎ базируСтся Π½Π° ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π΅ΠΌΡƒ обСспСчСния совмСстимости с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ стандартных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Android-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° являСтся фрэймворк-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, достаточно сильно завязанной Π½Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ классы ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ΄Π°, ΠΏΠ΅Ρ€Π΅Π΄ всСми Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ встаёт вопрос: ΠΊΠ°ΠΊΡƒΡŽ ΠΆΠ΅ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для максимально ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ программирования ΠΏΠΎΠ΄ Android? ΠžΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° Π½Π΅Π³ΠΎ Π½Π΅Ρ‚, скорСС это вопрос Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ. БущСствуСт Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ основных ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Integrated development environment, Π΄Π°Π»Π΅Π΅ IDE) с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Android-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²:

— Eclipse + ADT Plugin;

— InelliJ IDEA;

— NetBeans;

— Android Studio.

Π”ΠΎΠ»Π³ΠΎΠ΅ врСмя Ρ‡Π°Ρ‰Π΅ всСго использовались ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ IDE. Eclipse являСтся скорСС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ для создания ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, основанных Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ — ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ для Android-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ носит имя ADT Plugin ΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ вСсьма ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ ΡˆΠΈΡ€ΠΎΠΊΠ°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ принСсла ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ связкС Eclipse + ADT Plugin, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° позволяла, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π² WYSIWYG стилС. НСсмотря Π½Π° ΡΡ‚ΠΎ, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ врСмя Eclipse сильно уступила InelliJ IDEA Π² ΡΠ²ΡΠ·ΠΈ с Π±ΡƒΡ€Π½Ρ‹ΠΌ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Ρ‹ΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ послСднСй. InelliJ IDEA Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Android-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΠΌΠΈ возмоТностями для написания, рСдактирования ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° исходного ΠΊΠΎΠ΄Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Eclipse.

НаимСнСС распространённой IDE являСтся NetBeans, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ LinuΡ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ примСняли NetBeans для своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ вСсьма пСрспСктивно выглядит IDE ΠΎΡ‚ Google — Android Studio. Она позиционируСтся ΠΊΠ°ΠΊ спСциализированноС срСдство для Android-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° самой ΠžΠ‘. Android Studio основываСтся Π½Π° InelliJ IDEA ΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ всСми Π΅Ρ‘ Π΄ΠΎΡΡ‚оинствами. Π’ Π΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΊ ΡΡ‚ΠΎΠΌΡƒ Android Studio содСрТит спСциализированныС срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°, спСцифичныС для Android-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, СдинствСнным нСдостатком Android Studio являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ всё Π΅Ρ‰Ρ‘ находится Π² ΡΡ‚Π°Π΄ΠΈΠΈ Π±Π΅Ρ‚Π°-тСстирования. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° использовалась ΠΈΠΌΠ΅Π½Π½ΠΎ эта IDE. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ознакомится с Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ. Π’Π°ΠΌ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ описания процСсса ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π½ΠΎΠ²ΠΎΡŽ IDE с Π΄Ρ€ΡƒΠ³ΠΈΡ… популярных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Android Studio являСтся использованиС постСпСнно Π½Π°Π±ΠΈΡ€Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ систСмы сборки Gradle. Π•Ρ‘ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС ΠΈΠ»ΠΈ ΠΆΠ΅ Π½Π° Ρ€Π΅ΡΡƒΡ€ΡΠ΅ [12], ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΊ Android Studio. К ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡΠΌ Gradle, Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰Π΅ΠΉ Π΅Ρ‘ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм сборки, стоит отнСсти сплав ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ «build by convention», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π²ΠΎ Π²ΡΠ΅Ρ… популярных Π°Π½Π°Π»ΠΎΠ³Π°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Maven, с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ скриптов Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Groovy. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ сборки, Ρ‡Ρ‚ΠΎ вСсьма Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для Android-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Gradle, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π² Android Studio являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ основанныС Π½Π° Gradle ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΏΡ€ΠΈ этом фактичСски всё, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ — это ΠΏΠ°Ρ€Π° стандартных скриптов для построСния ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΠ³ΠΎ рСпозитория ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Подобная лаконичная структура вСсьма эффСктно смотрится ΠΏΡ€ΠΈ использовании систСмы контроля вСрсий: фактичСски всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ΠΈ Π½Π΅ Π·Π°Ρ…Π»Π°ΠΌΠ»ΡΡŽΡ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС Π²Ρ‹ΡˆΠ΅ пСрСчислСнныС срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π»ΠΈΠ±ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ бСсплатными, Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ бСсплатныС вСрсии.

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ слСдуСт ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ источники, спСцифичныС для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ взаимодСйствиС с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘Π”). На ОБ Android Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ SQLite. SQLite являСтся простой, лСгковСсной рСляционной Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π½Π° Π²ΡΠ΅Ρ… популярных ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… (iOS, Windows Phone). Помимо ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ [4], ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅ΠΉ шаблон проСктирования для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π”, ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ являСтся ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ докумСнтация Π‘Π”. SQLite ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ особСнностями, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ рСляционными Π‘Π”. SQLite содСрТит всСго лишь Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΊ ΡΡ‚ΠΈΠΌ ограничСниям, добавляСтся ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ входящиС Π² Android SDK срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π‘Π” Π½Π΅ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‚ созданию Π΄Π°ΠΆΠ΅ самой простой структуры Π‘Π” с Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ями ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, всячСски подталкивая ΠΊ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±ΠΎΠ»ΡŒΡˆΠΈΡ…, нСсвязанных Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ….

Одной ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… особСнностСй Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, являСтся Ρ€Π°Π±ΠΎΡ‚Π° с Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ использованиС ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. НСсмотря Π½Π° ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π΅Π΅ описаниС процСсса Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ ΠΊΠ°ΠΊ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΈ Π² Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅, ΠΊΠ°ΠΌΠ΅Ρ€Π° остаётся вСсьма спСцифичСским устройством. Π’ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ это связано с Π±ΠΎΠ»ΡŒΡˆΠΈΠΌ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„ΠΎΡ‚ΠΎΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ Π²Π»ΠΈΡΡŽΡ‰ΠΈΠΌ Π½Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ процСсс взаимодСйствия. К ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡŽ, Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ источника, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ всС, ΠΈΠ»ΠΈ хотя основныС, ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ полСзнСйшСго рСсурса, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π² Π²ΠΎΠΏΡ€ΠΎΡΠ°Ρ… взаимодСйствия с ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ, стоит привСсти.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ Android-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΎΠ±Π·ΠΎΡ€Π° Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, являСтся большоС число ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-рСсурсов. Π­Ρ‚ΠΎ обусловлСно, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π°, Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, особСнностями мобильной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. НСсмотря Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… основных ΠΊΠ½ΠΈΠ³ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ сущСствуСт большоС число нюансов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… источниках. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ‚Π°ΠΊΠΈΡ… нюансов ΠΌΠΎΠΆΠ½ΠΎ привСсти Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для ΠΎΠ±Ρ…ΠΎΠ΄Π° ошибок Π² Android SDK ΠΈΠ»ΠΈ ΠΆΠ΅ спСцифичСских для устройств ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ особСнностСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

2. БистСмноС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π’ΠΈΠΏΠΈΡ‡Π½ΠΎΠ΅ Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΡƒΡŽ структуру, Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ с Π²Π΅ΡΡŒΠΌΠ° слабосвязанными ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, ΠΎΠ±Ρ‰Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ посрСдствам пСрСсылки сообщСний. Π’ Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ρ‚Ρ€ΠΈ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ассоциированы с ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ прилоТСния, Π° Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ„ΠΎΠ½ΠΎΠ²ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…. Наряду с ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ модулями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ логичСски Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ исходя ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, нСслоТно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. К Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ отнСсти ΠΌΠΎΠ΄ΡƒΠ»ΡŒ настроСк, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс для взаимодСйствия с Π½ΠΈΠΌ. На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ излишним, ΠΎΠ΄Π½Π°ΠΊΠΎ исходя ΠΈΠ· ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠΈ взаимодСйствия с Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ°ΠΌΠΈ, ΠΎΠ½ΠΎ довольно Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π‘Π” для ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ части Π΄Π°Π½Π½Ρ‹Ρ… с ΡΠ΅Ρ€Π²Π΅Ρ€Π°, поэтому Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π”. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ нСбольшим количСством Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, поэтому, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС, Π½Π΅Ρ‚ нСобходимости Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… сСрвисов для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π” ΠΈ Π²Π΅Π±-сСрвСром. Как Π±Ρ‹Π»ΠΎ сказано Π²Ρ‹ΡˆΠ΅, Android позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹-Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ для асинхронного получСния массивов Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°Π½Π½Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΈ ΡΠ²Π»ΡΡŽΡ‚ся внСшними ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ взаимодСйствия с Π‘Π”, поэтому ΠΈΡ… Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ нСбольшим количСством Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, поэтому, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС, Π½Π΅Ρ‚ нСобходимости Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… сСрвисов для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π” ΠΈ Π²Π΅Π±-сСрвСром. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ сСрвиса, ΠΊΠ°ΠΊ контСкста выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ слСдуСт вынСсти Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ структура Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° прСдставлСна Π½Π° Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ΅ Π“Π£Π˜Π .400 201.086 C1.

Рассмотрим ΠΏΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ Π΄Π²Π° модуля, ассоциированныС с Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй, ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся прСдставлСниС, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ класс-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, унаслСдованный ΠΎΡ‚ ΠΊΠ»Π°ΡΡΠ° Activity. НСсмотря Π½Π° ΡΡ‚ΠΎ, Π½Π΅ ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ эти части Π² Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… модуля, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² ΡΠ»ΡƒΡ‡Π°Π΅ Π²Π΅Π±-прилоТСния. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ сути, являСтся Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… XML-Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ динамичСски классом-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ, ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ всё Π΅Ρ‰Ρ‘ сущСствуСт нСявная, односторонняя, Π½ΠΎ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ сущСствСнная связь. Π’ Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΊΠ°ΠΊ прСдставлСниС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΎ ΠΊΠ»Π°ΡΡΠ΅-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅, Π΄Π° ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ классов Π² Ρ†Π΅Π»ΠΎΠΌ (ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€ΠΎΠ΄Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ элСмСнты управлСния), класс-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ элСмСнтами прСдставлСния. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнт, ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π² Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅, Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ исполнСния. ΠšΡ€ΠΎΠΌΠ΅ этого, слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ для получСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ассоциированных с ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ управлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ find View ById, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π½Π° Π²Ρ…ΠΎΠ΄ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ числовой ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ Π² Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅, ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ View. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Button ΠΈΠ»ΠΈ List View, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ свойствами. Π­Ρ‚ΠΎ создаёт Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ опасноС мСсто, ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ возникновСнию ошибок, связанных с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ², ΠΈ Π²Ρ‹Π΄Π°Ρ‡Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Class Cast Exception Π²ΠΎ Π²Ρ€Π΅ΠΌΡ исполнСния. Помимо этого, сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ элСмСнты управлСния ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ, Ρ‡Ρ‚ΠΎ способствуСт Π±ΠΎΠ»Π΅Π΅ тСсной связи прСдставлСния ΠΈ ΠΊΠ»Π°ΡΡΠ°-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

Активити Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ являСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ прилоТСния. Помимо своих основных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (прСдоставлСния возмоТности для Π²Π²ΠΎΠ΄Π° Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Ρ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ) Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ опрСдСлСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ запуска прилоТСния. АрхитСктурой Android-прилоТСния Π½Π΅ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вызываСтся ΠΏΡ€ΠΈ самом ΠΏΠ΅Ρ€Π²ΠΎΠΌ стартС прилоТСния, ΠΈΠ»ΠΈ ΠΆΠ΅ хотя Π±Ρ‹ просто ΠΏΡ€ΠΈ стартС прилоТСния. ВслСдствиС этого, Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ситуаций производится Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ прилоТСния, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ являСтся СдинствСнной Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ для альбомной ΠΈ ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Π½ΠΎΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ экрана.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ сдСлан Π½Π° Π±Π°Π·Π΅ основной, Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎ ΡΡ‡Ρ‘Ρ‚Ρƒ, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²ΠΈΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ — это Π½Π΅Ρ‡Ρ‚ΠΎ большСС, Ρ‡Π΅ΠΌ простоС прСдставлСниС. Android прСдоставляСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ возмоТности для написания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ. Π’ΠΈΠΏΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ использованиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ элСмСнта управлСния ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… интСрфСйсов ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° для получСния событий ΠΎΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² прСдставлСния. Помимо этого, Π²Π°ΠΆΠ½Ρ‹ΠΌ нюансов являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ экрана ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠ΅Ρ€Π΅ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° прСдставлСния, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π·Π° Π²Ρ‹Π²ΠΎΠ΄ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. Π‘ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ выглядит Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, поэтому ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСдставляСт собой собствСнная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° опрСдСлСния полоТСния экрана ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΅Π³ΠΎ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, получаСтся достаточно тСсно связанный, узкоспСциализированный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой синтСз Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ ΠΊΠ»Π°ΡΡΠ°-ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ для Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Π½Π° ΡΠΎΠ±Ρ‹Ρ‚ия ΠΎΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² позиционирования Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ прилоТСния являСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒ рСдактирования ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Π•Π³ΠΎ особая Ρ€ΠΎΠ»ΡŒ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ с ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ систСмы ΠΈ ΡΠ²Π»ΡΠ΅Ρ‚ся Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Ρ€Π°Π±ΠΎΡ‚Π΅ модуля ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ основныС стадии, Π² Ρ…ΠΎΠ΄Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΠ΅Ρ‚ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ частями прилоТСния. На ΡΡ‚Π°ΠΏΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ исходныС Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ снимка ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»Ρ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ устанавливаСт связь с ΠΌΠΎΠ΄ΡƒΠ»ΡΠΌΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… для асинхронного получСния ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„Π°Π·Π΅ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ обСспСчиваСт взаимодСйствиС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ: прСдоставляСт возмоТности для заполнСния Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт сохранСниС Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ. Π’ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„Π°Π·Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ становится ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Π΅ΠΌ событий ΠΎΡ‚ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ сСрвиса для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ прогрСсс выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи Π² ΡΠ»ΡƒΡ‡Π°Π΅ возникновСния ошибок.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ настроСк прСдставляСт собой ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΉ части ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ, которая прСдоставляСт доступ ΠΊ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½ΠΎΠΌΡƒ Ρ„Π°Π»Ρƒ настроСк прилоТСния, доступному Π² ΠΊΠΎΠ½Ρ‚СкстС всСго прилоТСния. Π’ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся использованиС модуля настроСк для сохранСния состоянии прилоТСния ΠΌΠ΅ΠΆΠ΄Ρƒ запусками. Помимо этого, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ настроСк связываСтся с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊ фасад ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‡Π°ΡΡ‚ΡŒ настроСк для рСдактирования. Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ прилоТСния, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚вия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π½ΠΎ ΠΈ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ слоТно систСмы, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΉ Π² ΡΠ΅Π±Ρ Π½Π°Π±ΠΎΡ€ собствСнных элСмСнтов прСдставлСния для рСдактирования настроСк, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, отвСтствСнных Π·Π° Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΅ рСагирования Π½Π° ΡΠΌΠ΅Π½Ρƒ настроСк. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся слоТным ΠΈ, Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, прСдоставляСт возмоТности для рСдактирования довольно ΠΎΠ±Ρ‰ΠΈΡ… свойств, Π²Π°ΠΆΠ½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ‚СкстС всСго прилоТСния, Π° Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ сСссии. По ΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдоставляСт лишь ΠΎΠ΄Π½Ρƒ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° Π² ΠΈΠ½Ρ‚СрфСйс настроСк. НСсмотря Π½Π° ΡΡ‚ΠΎ, Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ настроСк достаточно ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ всСми основными ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ систСмы. Π”Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚ являСтся основным Π΄ΠΎΠ²ΠΎΠ΄ΠΎΠΌ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ выдСлСния Π΄Π²ΡƒΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ°ΠΌ.

Достаточно обособлСнным выглядит ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π”. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ это слСдствиС шаблонов проСктирования ΠžΠ‘ Android. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° прСдоставляСт возмоТности для Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π‘Π” ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ позволяСт вСсти Π²Π΅Ρ€ΡΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒ Π‘Π”. ΠŸΡ€ΠΈ этом, Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС, имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поставщика содСрТимого (Content Provider), ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ внСшний интСрфСйс для взаимодСйствия с Π‘Π”. ΠŸΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊ содСрТимого ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π°Π½Π°Π»ΠΎΠ³ сСрвиса, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ API для Π»ΡŽΠ±Ρ‹Ρ… Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ограничСния доступа ΠΊ ΠΏΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊΡƒ. МоТно Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ прилоТСниям ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ запроса Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊΠΎΠΌ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ поставщика собствСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π’ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ случаС, фактичСски, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΏΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊΠ΅ содСрТимого ΠΎΡ‚ΠΏΠ°Π΄Π°Π΅Ρ‚, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ Π²ΠΎΠ»Π΅Π½ сам Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйс для взаимодСйствия с Π‘Π”. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… сСрвСра ΠΈ Π½Π΅Ρ‚ нСобходимости Π΄Π΅Π»Π°Ρ‚ΡŒ доступными эти Π΄Π°Π½Π½Ρ‹Π΅ для Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π” прСдоставляСт Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для асинхронного обновлСния содСрТимого Π‘Π”, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для подписки класса-обозрСватСля Π½Π° ΡΠΎΠ±Ρ‹Ρ‚ия ΠΎΡ‚ Π‘Π”. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, Ρ‚Π°ΠΊΠΈΠΌΠΈ событиями ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„Π°ΠΊΡ‚Ρ‹ получСния Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ прокси-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π‘Π” для чтСния Π΄Π°Π½Π½Ρ‹Ρ… выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1. ΠœΠΎΠ΄ΡƒΠ»ΡŒ-ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ чтСния (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ рСдактирования ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…) Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρƒ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, указывая события, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ класс ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ класс-ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΡŒ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎ Π³ΠΎΡ‚овности Π΄Π°Π½Π½Ρ‹Ρ….

2. Боздаётся Π½ΠΎΠ²Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Ρ‡Π΅Ρ€Π΅Π· прокси-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, подписываСтся Π½Π° ΡΠΎΠ±Ρ‹Ρ‚ия обновлСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘Π”. Если ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² Π²ΠΈΠ΄ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ ΡƒΠΆΠ΅ Π±Ρ‹Π» создан, ΠΎΠ½ ΠΎΡ‚Π΄Π°Ρ‘Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ вмСсто создания Π½ΠΎΠ²ΠΎΠ³ΠΎ.

3. По Π³ΠΎΡ‚овности Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… событиях ΠΎΡ‚ Π‘Π” вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Π² ΠΊΠ»Π°ΡΡΠ΅-ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Π΅ чтСния, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² — это систСмный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Loader Manager, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слуТит для взаимодСйствия с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°ΠΌΠΈ (наслСдниками класса Loader), Π° Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈΡ… Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ классами, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ подписки Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ события ΠΈΠ·Π²Π½Π΅.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΈΠΌ Π½Π΅ Π²ΠΈΠ΄Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ являСтся Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, это класс Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ взаимодСйствиС с Π²Π΅Π± API Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ской сторонС. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ Π΅Π³ΠΎ функциями ΡΠ²Π»ΡΡŽΡ‚ΡΡ установка соСдинСния с ΡΠ΅Ρ€Π²Π΅Ρ€ΠΎΠΌ, Π²Ρ‹Π·ΠΎΠ² ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Π²Π΅Π±-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ абстракций ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ Π²Π΅Π± API. Основной ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ вынСсСния Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ модуля ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ прилоТСния, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСрвисов для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² (Ρ€Π°Π±ΠΎΡ‚Π° с ΡΠ΅Ρ‚ΡŒΡŽ, Ρ€Π°Π±ΠΎΡ‚Π° с Π‘Π”) Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ПодобноС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π·Π²Π°Π»ΠΎ Π±Ρ‹ лишь излишнюю ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ синхронизации Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ — Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Ρ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π” — ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚ ΠΈΡ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ€ΠΎΠ»ΡŒ модуля Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ контСкста выполнСния Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ построСн Π½Π° Π±Π°Π·Π΅ Android-сСрвиса ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½, ΠΊΠ°ΠΊ слСдуСт ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, для осущСствлСния Π·Π°Ρ‚Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π½Π΅ основного ΠΏΠΎΡ‚ΠΎΠΊΠ° выполнСния. Помимо основного своСго назначСния, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ опрСдСляСт слабосвязанный интСрфСйс для ΠΎΠ±ΠΌΠ΅Π½Π° с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ модулями прилоТСния Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Π½Ρ‚Ρ‹. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Ρ…ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, поэтому сСрвис ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ рСсурсоёмких ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ входящий Π² ΡΠΎΡΡ‚Π°Π² Android SDK класс Handler. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ наслСдования ΠΎΡ‚ ΡΡ‚ΠΎΠ³ΠΎ класса, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ событий с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ сообщСний — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² класса Message, способных ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. ЭкзСмпляр подкласса Handler ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ассоциирован с Π»ΡŽΠ±Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡŽ для обСспСчСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи с ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ исполнСния. НСсмотря Π½Π° ΡΡ‚ΠΎ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ½ΠΎΠΉ способ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ, основанный Π½Π° ΠΈΠ½Ρ‚Π΅Π½Ρ‚Π°Ρ…. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт Π±ΠΎΠ»Π΅Π΅ просто ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ доступ ΠΊ ΡΠ΅Ρ€Π²ΠΈΡΡƒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ прилоТСния. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ОБ Android прСдоставляСт Ρ‡Π°ΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ шаблона ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний — класс Intent Service. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса прСдставляСт собой Android-сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ стартС запускаСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ исполнСния ΠΈ Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ с Π½ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Handler, оставляя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€Π°Π²ΠΎ самому ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π½Ρ‚Ρ‹. Если ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΈΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠ² приходят Π²ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ…, Ρ‚ΠΎ ΠΎΠ½ΠΈ автоматичСски Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Π΅Ρ† Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. IntentService ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π½Ρ‚Ρ‹ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹-сообщСния для постановки Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ обслуТивания ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΈΡ… Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ пСрСдавая Π² ΠΌΠ΅Ρ‚ΠΎΠ΄-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Inten Service ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ лишь ΠΎΠ΄Π½Ρƒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний, Π° Ρ‚Π°ΠΊΠΆΠ΅ автоматичСски Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ послС выполнСния всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ для экономии рСсурсов Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°. Π”Π°Π½Π½Ρ‹Π΅ особСнности Π²Ρ‹Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ Intent Service Π² ΡΠ»ΡƒΡ‡Π°ΡΡ…, ΠΊΠΎΠ³Π΄Π° трСбуСтся ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ»ΠΈ ΠΆΠ΅ обСспСчСниС Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰Π΅Π³ΠΎ сСрвиса, ΠΎΠ΄Π½Π°ΠΊΠΎ для Ρ†Π΅Π»Π΅ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Intent Service ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ идСально.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сообщаСтся с Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ прилоТСния, Π½Π΅ Π²ΡΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи для ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π° ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π²Π΅ Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, пСрвая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обновлСния состояния кэша, Π° Π²Ρ‚орая — для чтСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π‘Π”.

ΠŸΠ΅Ρ€Π²Π°Ρ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° прСдставлСна ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:

1. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄.

2. РСакция Π½Π° Π²Π²ΠΎΠ΄ Π² Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ.

3. ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ сСрвису Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

4. Π’Ρ‹Π·ΠΎΠ² ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π²Π΅Π± API.

5. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON.

6. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ Π²ΠΈΠ΄Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌΡƒ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

7. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… для обновлСния Π² Π‘Π”.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, вторая Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° описываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1. Π‘Ρ‚Π°Ρ€Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ.

2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ° Π΅Π³ΠΎ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π‘Π”.

3. ОТиданиС обновлСния ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΏΠΎ Π³ΠΎΡ‚овности.

4. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 3 для отслСТивания Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ нСзависимы Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ модулями. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ запускаСтся сразу нСсколько Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΏΡ€ΠΈ этом ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ своё Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡŒ окончания ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ. Данная схСма являСтся работоспособной Π·Π° ΡΡ‡Ρ‘Ρ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ обновлСния Π‘Π” ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π‘Π” Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ модулями Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π” выдаст событиС ΠΎΠ± ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

3. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассматриваСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Ρ‹ всС ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ классы ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Бостав ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ классов Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ классов (Ρ‡Π΅Ρ€Ρ‚Ρ‘ΠΆ Π“Π£Π˜Π .400 201.128 Π Π .2).

3.1 ОписаниС взаимодСйствия с ΡΠ΅Ρ€Π²Π΅Ρ€ΠΎΠΌ Одной ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ мобильного ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° являСтся ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с ΡΠ΅Ρ€Π²Π΅Ρ€ΠΎΠΌ. Для этих Ρ†Π΅Π»Π΅ΠΉ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ интСрфСйс, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ Π²Π΅Π±-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. Π˜Π½Ρ‹ΠΌΠΈ словами, интСрфСйс программирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (application programming interface, Π΄Π°Π»Π΅Π΅ API). API базируСтся Π½Π° Ρ‚Ρ€Ρ‘Ρ… основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ…:

1. Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… — JSON.

2. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ пСрСдаСтся с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ запросом ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ HTTP (Basic Authentication).

3. Для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ HTTP POST запросы.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ сСрвСр прСдоставляСт ΠΏΡΡ‚ΡŒ Π²Π΅Π±-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² доступных ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ, описаниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдставлСно Π½ΠΈΠΆΠ΅. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ пСрСчислСны Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅ ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π’ΠΎΠΉΡ‚ΠΈ» Π½Π° ΡΠΊΡ€Π°Π½Π΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ login для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π°Π² доступа. Если доступ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ stores ΠΈ categories для обновлСния локального кэша, Π² Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ снимок. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сдСлаСт Ρ„ΠΎΡ‚ΠΎ, ΠΎΠ½ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, отправляСт Ρ„ΠΎΡ‚ΠΎ Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€, Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами производится Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² upload_photo ΠΈ save_photo.

1. Авторизация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (./api/login)

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

{

}

ΠžΡ‚Π²Π΅Ρ‚ сСрвСра:

{

" role": «user»

}

ОписаниС:

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Ρ€ΠΎΠ»ΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ. На Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ сущСствуСт Ρ‚Ρ€ΠΈ Ρ€ΠΎΠ»ΠΈ: «user», «merchandizer» ΠΈ «admin». Π›ΡŽΠ±Π°Ρ ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… Ρ€ΠΎΠ»Π΅ΠΉ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, хотя Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, Π² Ρ‡Π°ΡΡ‚ности, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ нСдоступными для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€ΠΎΠ»Π΅ΠΉ.

2. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ² (./api/stores)

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

{

" version": 10

}

ΠžΡ‚Π²Π΅Ρ‚ сСрвСра:

[

{

" id": 102,

" version": 11,

" active": true,

" name": «Coolman» ,

" street": «ΠšΡƒΠ»ΡŒΠΌΠ°Π½» ,

" city": «ΠœΠΈΠ½ΡΠΊ»

},

]

ОписаниС:

ΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ², ΠΎΠ±Π½ΠΎΠ²ΠΈΠ²ΡˆΠΈΡ…ΡΡ послС Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠΉ вСрсии (ΠΏΠΎΠ»Π΅ «version» ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…). ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½ΠΎΠΌΠ΅Ρ€ вСрсии. НомСр вСрсии являСтся Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΡΠ΅Ρ€Π²Π΅Ρ€Π° счСтчиком. ΠšΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΡ€ΠΈ запросС отправляСт ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΠ· ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ся Ρƒ Π½Π΅Π³ΠΎ. Π’Π°ΠΆΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ систСмы являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°Ρ… Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ся, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ статус (ΠΏΠΎΠ»Π΅ «active» ΠΈΠ· ΠΎΡ‚Π²Π΅Ρ‚Π° сСрвСра). НСактивныС ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ‹ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

3. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ (.api/categories)

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

{

" version": 10

}

ΠžΡ‚Π²Π΅Ρ‚ сСрвСра:

[

{

" id": 3,

" version": 6,

" active": true,

" name": «Computers»

},

]

ОписаниС:

ΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ²ΡˆΠΈΡ…ΡΡ послС Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠΉ вСрсии. (ΠΏΠΎΠ»Π΅ «version» ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…). ΠœΠ΅Ρ‚ΠΎΠ΄ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ, Π½ΠΎ Π²ΠΌΠ΅ΡΡ‚ΠΎ списка ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ² ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ список ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ². НомСр вСрсии Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΡΠ΅Ρ€Π²Π΅Ρ€Π°, Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°ΠΌ, Π½Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ся, Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΡΡ‚ся Π² Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ.

4. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ (./api/upload_photo)

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Π€ΠΎΡ‚ΠΎ Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.

ΠžΡ‚Π²Π΅Ρ‚ сСрвСра:

{

" file": «3F2504E0−4F89−11D3−9A0C-0305E82C3301»

}

ОписаниС:

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€. ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сСрвСр Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ для Ρ„Π°ΠΉΠ»Π° (GUID) ΠΈ ΡΠΎΡ…раняСт Π΅Π³ΠΎ ΠΏΠΎΠ΄ этим ΠΈΠΌΠ΅Π½Π΅ΠΌ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, послС Ρ‡Π΅Π³ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° Π·Π°ΠΏΡ€ΠΎΡ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, связанной с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

5. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ (./api/save_photo)

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

{

" store": 102,

" category": 12,

" comment": «User defined comment» ,

" problem": false,

" was_taken": «unknown»

" file": «3F2504E0−4F89−11D3−9A0C-0305E82C3301» ,

" coordinates": {

" latitude": 54.3,

" longitude": 23.4,

" accuracy": 10

}

}

ΠžΡ‚Π²Π΅Ρ‚ сСрвСра:

{

" success": true

}

ОписаниС:

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сохранСния Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π½Π΅Π΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° «file» запроса. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π² Ρ‚Π΅Π»Π΅ POST-запроса ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ снимка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты:

— ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° («store»);

— ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ («category»);

— ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ («comment»);

— ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ «was_taken», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ снимок ΠΊΠ°ΠΊ сдСланный Π΄ΠΎ, Π»ΠΈΠ±ΠΎ послС Ρ€Π°Π±ΠΎΡ‚Ρ‹; Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния: «unknown» (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), «before» ΠΈΠ»ΠΈ «after»;

— ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ„Π°ΠΉΠ»Π° («file»);

— ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΡ‡ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π»Π° сдСлана фотография (структура «coordinates»), Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Π² ΡΠ΅Π±Ρ ΡˆΠΈΡ€ΠΎΡ‚Ρƒ («latitude»), Π΄ΠΎΠ»Π³ΠΎΡ‚Ρƒ («longitude») ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ опрСдСлСния («accuracy»).

Π’ ΡΠ»ΡƒΡ‡Π°Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΠ½Π° ΠΈΠ»ΠΈ пароля, любой ΠΈΠ· Π²Ρ‹ΡˆΠ΅ пСрСчислСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Π²ΠΈΠ΄Π΅ HTTP ΠΎΡ‚Π²Π΅Ρ‚Π° с ΠΊΠΎΠ΄ΠΎΠΌ 401 — «Unauthorized». ΠžΡ‚Π²Π΅Ρ‚ сСрвСра сдСлан нСпустым Π½Π° ΡΠ»ΡƒΡ‡Π°ΠΉ, Ссли понадобится Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….

3.2 ОписаниС классов систСмных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠšΠ»Π°ΡΡΡ‹ систСмных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой класс Worker Service, наслСдованный ΠΎΡ‚ ΠΊΠ»Π°ΡΡΠ° Intent Service, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ класса, унаслСдованныС ΠΎΡ‚ ΠΊΠ»Π°ΡΡΠ° Acivity: Login Activity, Settings Acivity, Camera Activity ΠΈ Data Activity. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π΄Π°Π½Π½Ρ‹Ρ… классов являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ прилоТСния, Π²Π°ΠΆΠ½Ρ‹ΠΉ, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, для ΠžΠ‘.

Для Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ-классов ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС ΠΈ Ρ‡Π°ΡΡ‚ΠΎ пСрСопрСдСляСмых Π² ΠΊΠ»Π°ΡΡΠ°Ρ… наслСдниках. Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΈ ΡΠ»ΡƒΠΆΠ°Ρ‚ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ смСны стадий ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

— void onCreate (Bundle savedInstanceState) — ΠΌΠ΅Ρ‚ΠΎΠ΄, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ создании Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ. Π’ Π½Ρ‘ΠΌ осущСствляСтся созданиС ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ (inflatting) Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° с Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ инициализация ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π°Π½Π°Π»ΠΎΠ³ конструктора, с Ρ‚ΠΎΠΉ лишь Ρ€Π°Π·Π½ΠΈΡ†Π΅ΠΉ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ создана, Π½ΠΎ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° ΡΠΊΡ€Π°Π½Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Bundle являСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ, содСрТащим ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ»ΡƒΠΆΠΈΡ‚ для восстановлСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΡ€ΠΈ пСрСсоздании Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ послС ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° экрана ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ смСны ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

— boolean on Create Options Menu (Menu menu) — ΠΌΠ΅Ρ‚ΠΎΠ΄, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ создании контСкстного мСню Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ добавлялись ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ menu. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ шаблон проСктирования с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ контСкстного мСню устарСл ΠΈ Π² ΡΡ‚ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ производится инициализация Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ «ΡΡ‚Ρ€ΠΎΠΊΠΈ дСйствий» (Action Bar), ΡΠ²Π»ΡΡŽΡ‰Π΅ΠΉ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ дизайнСрским шаблоном для прСдоставлСния контСкстно зависимых ΠΎΠΏΡ†ΠΈΠΉ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Скстного мСню, строка дСйствий, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, инициализируСтся Π½Π΅ Π² ΠΊΠΎΠ΄Π΅, Π° Π² Ρ„Π°ΠΉΠ»Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ слуТит ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ для создания мСню: Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Ρ€Π½Ρ‘Ρ‚ false, Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚СкстноС мСню создано Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ значСниями. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ справСдливо Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π΄Π»Ρ строки дСйствий.

— boolean on Options Item Selected (MenuItem item) — ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню ΠΈΠ»ΠΈ дСйствия со ΡΡ‚Ρ€ΠΎΠΊΠΈ дСйствий (Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, это ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅: Ρ€Π°Π·Π½ΠΈΡ†Π° лишь Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π΅ отобраТСния). ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Menu Item ассоциирован с Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅, Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ являСтся ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ окончания ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ наТатия: Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ false, для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню, Π·Π½Π°Ρ‡ΠΈΡ‚ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС.

— void on Resume () — ΠΌΠ΅Ρ‚ΠΎΠ΄, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π½Π° ΡΠΊΡ€Π°Π½Π΅. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ производится Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ всСх Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€Π΅Ρ€Π²Π°Π½Π½Ρ‹Ρ… процСссов.

— void on Pause () — ΠΌΠ΅Ρ‚ΠΎΠ΄, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π² Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ. Π˜Π½Ρ‹ΠΌΠΈ словами, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΏΡ€ΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ с ΡΠΊΡ€Π°Π½Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ всС связанныС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом процСссы, Π° Ρ‚Π°ΠΊΠΆΠ΅ производится сохранСниС состояния Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

— void on Activity Result (int request Code, int result Code, Intent data) — Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ прСдставляСт собой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ Π²Ρ‹Π·ΠΎΠ² Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, содСрТащСй Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС request Code — ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ½Ρ‚Π΅Π½Ρ‚Π°, result Code — ΠΊΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ успСх ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ, data — нСпосрСдствСнно сам ΠΈΠ½Ρ‚Π΅Π½Ρ‚ с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ выполнСния запроса.

— void on Click (View view) — Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся Ρ‡Π°ΡΡ‚ΡŒΡŽ класса Activity, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΡ‡Π΅Π½ΡŒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π΅Π³ΠΎ наслСдниках. Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ являСтся СдинствСнным ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ интСрфСйса View. On Click Listener, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹-ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΠΈ событий-ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΏΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтам управлСния. БущСствуСт Π΄Π²Π° основных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠ»ΠΈΠΊΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ свои прСимущСства ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΊΠΈ: Π»ΠΈΠ±ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта управлСния создаётся свой класс-ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΡŒ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΉ), Π»ΠΈΠ±ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс View. On Click Listener ΠΈ ΡΡ‚ановится ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Π΅ΠΌ для всСх свои элСмСнтов управлСния. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Ρ‚ΠΎΡ€ΠΎΠΉ способ.

Помимо этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² ΠΊΠ»Π°ΡΡΠ°Ρ…-Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ цСлочислСнных констант Π²ΠΈΠ΄Π° «ACTION_CODE_XXX» ΠΈ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Ρ… констант Π²ΠΈΠ΄Π° «YYY_DIALOG_TAG».

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ создании ΠΈΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠ². Они Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π½Ρ‚Ρ‹. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ создании ΠΈΠ½Ρ‚Π΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡ‚Π²ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ on Activity Result Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° requestCode. ЗначСния цСлочислСнных констант Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… Ρ†ΠΈΡ„Ρ€ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ² HTTP ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². ΠŸΠ΅Ρ€Π²Π°Ρ Ρ†ΠΈΡ„Ρ€Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (класс), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ константа, вторая — ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния константы (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ½Ρ‚Π΅Π½Ρ‚Π°, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° ΠΈ Ρ‚. Π΄.), Ρ‚Ρ€Π΅Ρ‚ΡŒΡ — порядковый Π½ΠΎΠΌΠ΅Ρ€ константы Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΠΈ примСнСния.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹-Ρ‚Π΅Π³ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½. Богласно Π½ΠΎΠ²Ρ‹ΠΌ шаблонам проСктирования, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, унаслСдованныС ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Dialog Fragment. Π­Ρ‚ΠΎ сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ состояниС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ экран ΠΈΠ»ΠΈ сворачиваСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄ΠΎΠΌΠΎΠΉ. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°, основанныС Π½Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ…, ΠΈΠΌΠ΅ΡŽΡ‚ свой ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ», Π½Π΅ Π·Π°Π²ΠΈΡΡΡ‰ΠΈΠΉ ΠΎΡ‚ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, поэтому ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы ΠΎΠ΄Π½ΠΈΠΌ экзСмпляром класса, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ отмСчаСтся Ρ‚Π΅Π³ΠΎΠΌ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΅Π³ΠΎ всСгда ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ.

Класс Login Activity

Π”Π°Π½Π½Ρ‹ΠΉ класс ассоциирован с Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ — ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ прилоТСния. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ Π΅Π³ΠΎ функциями ΡΠ²Π»ΡΡŽΡ‚ΡΡ авторизация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° самого ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ запуска прилоТСния.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹:

— ACTION_CODE_LOGIN — ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ½Ρ‚Π΅Π½Ρ‚Π°, ассоциированного с Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ΠΌ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

— PROGRESS_DIALOG_TAG — Ρ‚Π΅Π³ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для отобраТСния прогрСсса выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ.

— REPORT_DIALOG_TAG — Ρ‚Π΅Π³ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….

— REDIRECT_DIALOG_TAG — Ρ‚Π΅Π³ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для пСрСадрСсации Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Ρƒ Π½Π° ΡΡ‚Ρ€ΠΎΠ΅ΠΊ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС прилоТСния.

— SAVE_CREDENTIALS_PROPERTY — константа-ΠΊΠ»ΡŽΡ‡ для доступа ΠΊ ΠΎΠΏΡ†ΠΈΠΈ запоминания Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Ρ.

Поля:

— Save Credetials — ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° boolean, содСрТащСС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ запоминания Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Ρ.

— Login Edit Text — ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Edit Text, содСрТащСС ссылку Π½Π° Ρ‚СкстовоС ΠΏΠΎΠ»Π΅ для Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Π»ΠΎΠ³ΠΈΠ½Π°).

— Password Edit Text — ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Edit Text, содСрТащСС ссылку Π½Π° Ρ‚СкстовоС ΠΏΠΎΠ»Π΅ для Π²Π²ΠΎΠ΄Π° пароля.

— Save Credentials Check Box — ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Check Box, содСрТащСС ссылку Π½Π° Ρ„Π»Π°ΠΆΠΎΠΊ ΠΎΠΏΡ†ΠΈΠΈ запоминания Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Ρ.

— Signin Button — ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Button, содСрТащСС ссылку Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π’ΠΎΠΉΡ‚ΠΈ».

— Progress Dialog — ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Progress Dialog Fragment, содСрТащСС ссылку Π½Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для отобраТСния прогрСсса выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ.

— Preferences — ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Shared Preferences, содСрТащСС ссылку Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ настроСк.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹:

— void try Begin Authorize User () — ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ.

— void begin Authorize User (String login, String password) — ΠΌΠ΅Ρ‚ΠΎΠ΄, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ процСсс асинхронной Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ.

— void end Authorize User (String role) — ΠΌΠ΅Ρ‚ΠΎΠ΄, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ являСтся Ρ€ΠΎΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

— void navigate To Camera Activity () — ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ управлСния ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ.

— void before Text Changed (Char Sequence char Sequence, int i, int i2, int i3) — ΠΌΠ΅Ρ‚ΠΎΠ΄ интСрфСйса Text Watcher. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

— void on Text Chan ged (Char Sequence char Sequence, int i, int i2, int i3) — ΠΌΠ΅Ρ‚ΠΎΠ΄ интСрфСйса Text Watcher. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

— void after Text Changed (Editable editable) — ΠΌΠ΅Ρ‚ΠΎΠ΄ интСрфСйса Text Watcher. ВызываСтся послСд Π²Π²ΠΎΠ΄Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа. Π Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ signin Button ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Ρ.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ