ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

Python для Android: Как Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ кроссплатформСнныС прилоТСния с Kivy. Π§Π°ΡΡ‚ΡŒ пСрвая

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

Jul 19, 2018 Β· 4 min read

Π’ этом руководствС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ шаги, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для создания кроссплатформСнного прилоТСния для Android с использованиСм Python-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Kivy ΠΈ Linux Ubuntu. ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ установки ΠΈ запуском Kivy Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ зависимости. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡƒΠΉΠ΄Ρ‘Ρ‚ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСды Kivy ΠΏΡƒΡ‚Π΅ΠΌ установки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ Kivy Π±ΡƒΠ΄Π΅Ρ‚ установлСн Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСдС.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Linu x Ubuntu 18.04 с Python 3.6.5. ΠŸΡ€ΠΈ запускС Kivy Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ различия. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ ОБ, ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ/ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ/ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты Python, Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ прСдставлСниС ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Linux ΠΈ Python.

Π­Ρ‚ΠΎ руководство ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹:

1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Kivy ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания СстСствСнных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов с прСимущСствами абстракции ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Он отдСляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΈ слоТных Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΈ просто прСдоставляСт простыС API для выполнСния слоТных Π·Π°Π΄Π°Ρ‡. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ бэкСнд Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Kivy Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для выполнСния своих Π·Π°Π΄Π°Ρ‡. ΠœΡ‹ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SDL ( Simple DirectMedia Layer) β€” ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ доступа ΠΊ графичСскому ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· OpenGL. Помимо SDL, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ GStreamer, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°ΡƒΠ΄ΠΈΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ написаны Π½Π° C, Π½Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся Cython.

2. Установка зависимостСй Kivy

ΠžΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° инструкциях ΠΏΠΎ установкС Kivy Π½Π° Linux (https://kivy.org/docs/installation/installation-linux.html), здСсь пСрСчислСны Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для установки SDL2 ΠΈ GStreamer. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Python для использования Π² Kivy с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ python ΠΈ python-dev для Python 2 ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ python3 ΠΈ python3-dev для Python 3. Pip Ρ‚Π°ΠΊΠΆΠ΅ находится Π² пСрСчислСнном Π½ΠΈΠΆΠ΅ спискС для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ использования Π² ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды Kivy.

3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды для установки Kivy

ПослС ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ зависимостСй Kivy ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ установку самого Kivy, создав Π΅Π³ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду. НСт нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду для запуска Kivy, Π½ΠΎ Π΅ΡΡ‚ΡŒ рСкомСндация ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ Kivy ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ создания Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ инструмСнты, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Π΅Π΅ создания, ΡƒΠΆΠ΅ установлСны ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎ инструмСнты virtualenv ΠΈ setuptools ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹.

virtualenv ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСды Python. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ прСимущСствах Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ страницу https://virtualenv.pypa.io/en/stable/. setuptools ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Python.

ПослС этого ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду Kivy. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° создаСт срСду с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ mykivyinstall.

ПослС ввСдСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π½Π°Π·Π²Π°Π½Π½ΡƒΡŽ Π² соотвСтствии с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС 1.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

ПослС создания Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ установку Kivy. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.

Π’ΠΎΡ‡ΠΊΠ° (.) Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ прСдставляСт собой Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, которая выполняСт содСрТимоС Ρ„Π°ΠΉΠ»Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π­Ρ‚ΠΎ синоним источника ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ прСдыдущая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π° этой ΠΊΠΎΠΌΠ°Π½Π΄Π΅:

Командная строка Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ послС Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

4. Установка Cython

ΠŸΠ΅Ρ€Π΅Π΄ установкой Kivy Cython Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн Π² Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ срСдС Π² соотвСтствии со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ вСрсия Cython зависит ΠΎΡ‚ вСрсии Kivy, которая Π±ΡƒΠ΄Π΅Ρ‚ установлСна. Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ послСдняя вСрсия Kivy β€” 1.10.0, ΠΈ для Π½Π΅Π΅ трСбуСтся Cython 0.25.2, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ поэтому ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅. ПослС этого ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ установкС Kivy.

5. Установка Kivy

Kivy ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip Π² соотвСтствии со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

ПослС этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ оТидаСтся, Ρ‡Ρ‚ΠΎ Kivy Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΈ установлСн автоматичСски. Но ΡƒΡ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ установка Kivy β€” это трудная Ρ‡Π°ΡΡ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ сущСствуСт мноТСство зависимостСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚Ρƒ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π½Π΅ являСтся простым ΠΈ прямолинСйным, поэтому Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ способы Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ошибок установки. НапримСр, Kivy ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ wheel-Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΡƒΡ‚Π΅ΠΌ клонирования Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° github Π² соотвСтствии со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

6. Π˜ΠΌΠΏΠΎΡ€Ρ‚ Kivy

ΠŸΡ€ΠΈ достиТСнии этого этапа, оТидаСтся, Ρ‡Ρ‚ΠΎ Kivy ΡƒΠΆΠ΅ установлСн ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту срСду, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π² Kivy, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС 2. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ срСда Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π°, Python Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ Kivy ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

УбСдившись, Ρ‡Ρ‚ΠΎ Kivy Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нашС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Kivy.

На этом ΠΊΠΎΠ½Π΅Ρ† ΠΏΠ΅Ρ€Π²ΠΎΠΉ части. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части ΠΌΡ‹ приступим нСпосрСдствСнно ΠΊ написанию прилоТСния ΠΈ пСрСносу Π΅Π³ΠΎ Π½Π° Android-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ Python ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Android

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Python для Android. НСт, это Π½Π΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΌΠ°Π½ΡƒΠ°Π» для создания скрипта для sl4a, это ΠΌΠ°Π½ΡƒΠ°Π» ΠΏΠΎ созданию ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ прилоТСния с UI, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ apk ΠΈ Π²Ρ‹Π»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° Android Market. Π—Π°ΠΎΠ΄Π½ΠΎ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΡ…Π²Π°Π»ΠΈΡ‚ΡŒΡΡ своим ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° google.play, это Π½Π΅ hello world, Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΎΠ², хотя ΠΈ ΡƒΠ·ΠΊΠΎ спСциализированноС.

Начну рассказ ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ с самого прилоТСния ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΡƒ рассказам ΠΎ Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ дСлалось.

isortViewer

МнС ΠΊΠ°ΠΊ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„Ρƒ приходится Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° сортировку ΠΈ ΠΎΡ‚Π±ΠΎΡ€ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ. НС всСгда хочСтся ΡΠΈΠ΄Π΅Ρ‚ΡŒ Π·Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ Π΅ΡΡ‚ΡŒ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊ, смартфон ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚, Π½ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΡƒΠ΄Π° дСсятки Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ raw ΠΈΠ»ΠΈ jpeg Ρ„Π°ΠΉΠ»ΠΎΠ², Π° ΠΏΠΎΡ‚ΠΎΠΌ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ β€” ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅. ИмСнно поэтому я создал ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ isortManager ΠΈ isortViewer, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΠ»ΠΈ ΠΌΠ½Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ сортировкС ΠΈ ΠΎΡ‚Π±ΠΎΡ€Ρƒ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΎΡ‚Π±ΠΎΡ€ΠΎΠΌ ΠΈ сортировкой Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ я ΠΌΠΎΠ³Ρƒ Π»Π΅ΠΆΠ° Π½Π° пляТС Π΄ΠΈΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ скучая Π² ΠΏΡ€ΠΎΠ±ΠΊΠ΅ πŸ™‚

ΠšΠΎΠΏΠΈΠΏΠ°ΡΡ‚ описания ΠΈ ΠΏΠ°Ρ€Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ΠΎΠ²:
isortViewer β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΎΠ², которая позволяСт Π»Π΅Π³ΠΊΠΎ ΠΈ быстрой ΠΎΡ‚Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тысячи Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ (raw ΠΈΠ»ΠΈ jpg) с фотосСссий Π½Π° Π²Π°ΡˆΠΈΡ… android смартфонах ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π°Ρ…. ΠŸΡ€ΠΈ этом, Π½Π΅Ρ‚ нСобходимости ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ дСсятки Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ jpg ΠΈΠ»ΠΈ raw Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° устройство. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ бСсплатной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ isortManager для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, которая сохранит всС Π² ΠΎΠ΄ΠΈΠ½ нСбольшой Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:
1. Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ ΠΈ запуститС isortManager с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта;
2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΠ°ΠΏΠΊΠΈ с фотографиями. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹: jpg ΠΈ raw (cr2, nef, orf ΠΈ Ρ‚.Π΄.). Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρƒ вас получится нСбольшой Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 150 ΠΌΠ± Π½Π° нСсколько тысяч Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ jpg ΠΈΠ»ΠΈ raw Ρ„ΠΎΡ€ΠΌΠ°Ρ‚);
3. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½Π° вашС android устройство Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π² isortViewer. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Β«Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅Β», Π° Ρ‚Π°ΠΊ ΠΆΠ΅, ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ ΠΎΡ‚ 1 Π΄ΠΎ 5 Π·Π²Π΅Π·Π΄;
4. ПослС этого, скопируйтС Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ измСнСния Π² isortManager. ΠšΡ€ΠΎΠΌΠ΅ удалСния Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ. НапримСр, Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ с Β«5 Π·Π²Π΅Π·Π΄Β» ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΡƒ Β«ΡˆΠ΅Π΄Π΅Π²Ρ€Ρ‹Β», Π° Β«1 Π·Π²Π΅Π·Π΄Π°Β» ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΡƒ Β«Ρ…Π»Π°ΠΌΒ».

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ бСсплатно ΠΈ доступно Π½Π° google.play, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎΠ½Π΅ΠΉΡ‚Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ.

Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ доступны Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС!

Как это дСлалось

Π’Π°ΠΊ ΠΊΠ°ΠΊ python Π»ΡƒΡ‡ΡˆΠΈΠΉ язык программирования Π² ΠΌΠΈΡ€Π΅ ΠΊΡ€ΠΎΠΌΠ΅ python я Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ знаю, Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° python.

isortManager

Π‘ isortManager для PC ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ, созданиС GUI сборки ΠΏΠΎΠ΄ windows ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΠΎΠ±ΠΊΠ°Ρ‚Π°Π½ΠΎ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠ½ ΠΎΡ‡Π΅Π½ΡŒ просто: с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ dcraw Π²Ρ‹Π΄ΠΈΡ€Π°Π΅Ρ‚ jpg ΠΏΡ€Π΅Π²ΡŒΡŽΡˆΠΊΠΈ ΠΈΠ· raw Ρ„Π°ΠΉΠ»ΠΎΠ², рСсайзит ΠΈΠ· с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PIL ΠΈ складываСт Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» с достаточно простой структурой. Π‘Ρ‹Π» ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ свой вСсолипСд с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ для хранСния Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ° Β«Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅Β» ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ° Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π°), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, zip ΠΈΠ»ΠΈ tar Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» Π² Π°Ρ€Ρ…ΠΈΠ²Π΅ (ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅), Ρ‚Ρ€Π΅Π±ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ всСх Ρ„Π°ΠΉΠ»ΠΎΠ². Π€Π°ΠΉΠ»Ρ‹ просто ΠΏΠΈΡˆΡƒΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ подряд ΠΈ Π² Π±Π»ΠΎΠΊΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ repr питоновского словаря) Π² ΠΊΠΎΠ½Ρ†Π΅ сохраняСтся смСщСния Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»ΠΎΠ², плюс Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π° ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. GUI написано Π½Π° Tkinter (люблю я Π΅Π³ΠΎ Π·Π° быстроту написания ΠΈ Π·Π° ΠΌΠ°Π»Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ сборки), Π²ΠΎΡ‚ собствСнно ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚:

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

И Π΄Π°, всС это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Π½Π° linux, ΠΈ Π΄Π°ΠΆΠ΅ быстрСС Ρ‡Π΅ΠΌ Π½Π° windows )

isortViewer для android

ВсСго я нашСл Π΄Π²Π° способа Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ python ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° android, это pygame for android ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ kivy.
Pygame β€” Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ, всС UI ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎ отняло Π±Ρ‹ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, поэтому Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ kivy. Π˜Ρ‚Π°ΠΊ:

Π­Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠΎΡ€ΠΊ для написания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для windows, linux, MacOS, android ΠΈ iOS. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡ‚Π°Ρ‡, UI рисутСтся Ρ‡Π΅Ρ€Π΅Π· OpenGL, Π·Π½Π°Ρ‡ΠΈΡ‚ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ ускорСниС. Π£Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ установив дСмонстрационноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Kivy Showcase. Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎ спСцифичных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΈΠ±Ρ€ΠΎ ΠΈΠ»ΠΈ аксСлСромСтр, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля android.

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ я Π±Ρ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ linux, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, apk ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² этой OS.

Hello World выглядит Ρ‚Π°ΠΊ:

ΠŸΡ€ΠΈΡ‡Π΅ΠΌ этот ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° всСх заявлСнных ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. ΠŸΡ€ΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² тСстировании прилоТСния Π² эмуляторС. Достаточно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скрипт Π½Π° исполнСниС Π² своСй любимой IDE ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° экранС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π±Π΅Π· Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, запуск эмулятора ΠΈ ΠΏΡ€. Если Π²Ρ‹ всС ΠΆΠ΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ нСпосрСдствСнно Π½Π° устройствС, просто установитС Kivy Launcher, скопируйтС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° ΠΊΠ°Ρ€Ρ‚Ρƒ памяти ΠΈ запуститС. Π”Π΅Π±Π°ΠΆΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ этом ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ adb logcat.
Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ android, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Ρ‚ Π½Π° PC, Π½ΠΎ хочСтся Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° android, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΎΠΉ конструкциСй:

Π‘Π±ΠΎΡ€ΠΊΠ° apk достаточно проста ΠΈ описана Π½Π° этой страницС. ПослС сборки Ρ€Π΅Π»ΠΈΠ·Π°, достаточно ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (я использовал этот ΠΌΠ°Π½ΡƒΠ°Π») ΠΈ Π²Ρ‹Π»ΠΎΠΆΠΈΡ‚ΡŒ Π² google play.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ своСй ΡΡ‚Π°Ρ‚ΡŒΠ΅, я расскаТу Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎ процСссС написания прилоТСния «с нуля», расТСвывая ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строчку ΠΊΠΎΠ΄Π°.

Π₯ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ сразу ΠΏΡ€Π΅ΡΠ΅Ρ‡ΡŒ Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€Ρ‹ Π½Π° Ρ‚Π΅ΠΌΡƒ «для android Ρ‚ΠΎΠ»ΡŒΠΊΠΎ java, python Π½Π΅ Π½ΡƒΠΆΠ΅Π½Β». Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌΒ», Π³Π»Π°Π²Π½ΠΎΠ΅ Ρ‡Ρ‚ΠΎΠ± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ качСствСнным.
Π‘Ρ„Π΅Ρ€Π° примСнСния kivy ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ. БСйчас Π½Π° ΠΌΠΎΠ΅ΠΌ счСту нСсколько ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, написанных ΠΏΠΎΠ΄ Π·Π°ΠΊΠ°Π·, Π³Π΄Π΅ python с Ρ„Ρ€Π΅ΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ kivy ΠΏΠΎΠΊΠ°Π·Π°Π» сСбя с Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ стороны. НапримСр, Ρ€ΠΎΠ²Π½ΠΎ Π·Π° ΠΎΠ΄ΠΈΠ½ час, Π±Ρ‹Π»ΠΎ написано ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, для сСти сСрвисных Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ². ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ киоска ΠΈ установлСно Π½Π° Π΄Π΅ΡˆΠ΅Π²Ρ‹Π΅ китайскиС ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ висят Π² Ρ…ΠΎΠ»Π»Π΅. ΠšΠ»ΠΈΠ΅Π½Ρ‚ Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ Π·Π°ΠΊΠ°Π·Π°, Π΄Π°Π»Π΅Π΅ ΠΏΠΎ WiFi ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ соСдиняСтся с сСрвСром ΠΈ сообщаСт статус Π·Π°ΠΊΠ°Π·Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния с использованиСм Python ΠΈ OpenCV Π½Π° Android устройствС

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

Π’ это ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ устройство ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Ρ‚Π°ΠΊΠΈΡ… языках программирования ΠΊΠ°ΠΊ python с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ opencv Π² срСдС VSCode (Π±ΡƒΠ΄Π΅Ρ‚ использован code-server). Π’ ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ нСбольшоС сравнСниС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Termux Π½Π° ΠΌΠΎΠ΅ΠΌ Android устройствС ΠΈ Raspberry Pi 3B.

ВсС дСйствия описанныС ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ Π½Π°:
Huawei MediaPad M5 10.8
4GB ΠžΠ—Π£, Hisilicon Kirin 960s, EMUI 9, Π±Π΅Π· root

Для Π½Π°Ρ‡Π°Π»Π° понадобится ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Termux (эмулятор Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ возмоТности срСды Linux), ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡƒΠΆΠ΅ писали Π½Π° habr.

Π”Π°Π»Π΅Π΅ установим Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π° Ρ‚Π°ΠΊ ΠΆΠ΅, для Π±ΠΎΠ»Π΅Π΅ быстрой настройки Π² дальнСйшСм, установим ssh сСрвСр:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для Π²Π²ΠΎΠ΄Π° устройством ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствия ΠΏΠΎ ssh. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСн способ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ с использованиСм Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ пароля, для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ:

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ openssh ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΡ€Ρ‚ 8022, ΡƒΠ·Π½Π°Ρ‚ΡŒ ip адрСс устройства ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ifconfig:

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ ΠΊ Termux:

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv-python Π² собствСнном ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Termux ΠΌΠ½Π΅ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ, поэтому Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ‚Ρ€ΡƒΠ΄Π°ΠΌΠΈ Andronix ΠΈ запустим Π² Termux Ubuntu 18.04.

Π’ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Andronix ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для установки Π΄Ρ€ΡƒΠ³ΠΈΡ… дистрибутивов Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Kali, Manjaro ΠΈ Ρ‚.Π΄.
Π”ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 17.11.2020. Если Π²ΠΎ врСмя установки появляСтся ошибка proot, Ρ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, спасибо @makaedgat.

Если всС Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΎΡΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π½Π° экранС появится

Установим ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° python3 с использованиСм opencv:

Установка Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ довольно ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ установим code-server

ПослС установки code-server Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ code-server ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ адрСс 127.0.0.1:8080, для обращСния ΠΊ code-server с Π΄Ρ€ΡƒΠ³ΠΈΡ… устройств Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ bind-addr Π½Π° 0.0.0.0:8080. ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΠ°Ρ€ΠΎΠ»ΡŽ. Для задания пароля Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ password. Для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ auth: none.

ВсС дСйствия Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Ubuntu Π±Π΅Π· графичСского интСрфСйса Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ Π½Π΅Ρ‚ возмоТности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ imshow, Π½ΠΎ Π΅ΡΡ‚ΡŒ способ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ flask ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ MIME Ρ‚ΠΈΠΏ multipart.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒΡΡ Π½Π° написаниС ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ Π² ΠΌΠΎΠ΅ΠΌ github Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Python β€” соглашаСмся.

Установим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ устройства, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ IP Webcam. Π“Π»Π°Π²Π½ΠΎΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊ понятный opencv, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ rtsp. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° настраиваСм Π² зависимости ΠΎΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ устройства. На ΠΌΠΎΠ΅ΠΌ самоС ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ 1280×720.

ЗапускаСм Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ Π²ΠΈΠ΄Π΅ΠΎ Π² IP Webcam ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ соврСмСнного Android устройства Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ raspberry pi. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сняв ограничСния энСргопотрСблСния домашний ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ arm64 ΠΌΠΈΠ½ΠΈ ΠΏΠΊ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π² Ρ„ΠΎΠ½Π΅ постоянно. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρƒ Termux Π²ΠΏΠΎΠ»Π½Π΅ высокая.

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ 1280×720

Π”Π°Π»Π΅Π΅ нСсколько Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ вошли Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ termux ΠΈ android Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ локальная ΠΏΠ°ΠΌΡΡ‚ΡŒ устройства ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π²

Ссли ссылка Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎ Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΊΠ°Ρ‡Π°Π΅ΠΌ ΠΎΡ‚ сюда.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ ΠΏΠΎΠ΄ Android Π½Π° Python Π½Π° Π±Π°Π·Π΅ Kivy. ΠžΡ‚ А Π΄ΠΎ Π―: ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ ΠΈ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π§Π°ΡΡ‚ΡŒ 1

НСкотороС врСмя Ρ‚ΠΎΠΌΡƒ Π½Π°Π·Π°Π΄ я Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π° Python ΠΏΠΎΠ΄ Android. Π’Π°ΠΊΠΎΠΉ странный для ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²Ρ‹Π±ΠΎΡ€ обусловлСн Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ я люблю Python ΠΈ люблю Android, Π° Π΅Ρ‰Ρ‘ люблю Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ (Π½Ρƒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½Π΅ самоС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅). Π’ качСствС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ Kivy β€” фактичСски, Π±Π΅Π·Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π½ΠΎ ΠΎΠ½ ΠΌΠ½Π΅ ΠΎΡ‡Π΅Π½ΡŒ понравился. Однако, ΠΏΠΎ Π½Π΅ΠΌΡƒ Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (Π½Π΅Ρ‚, докумСнтация отличная, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π΅Ρ‘ нСдостаточно), особСнно Π½Π° русском языкС, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ Ρ…ΠΎΡ‚ΡŒ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ ΠΈΡ… Ρ‚ΠΎ Π»ΠΈ Π½ΠΈΠΊΡ‚ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ Π΄Π΅Π»Π°Π», Ρ‚ΠΎ Π»ΠΈ Π½Π΅ счёл Π½ΡƒΠΆΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. Ну Π° я счёл πŸ™‚ И этот пост Ρ‚ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ.

Под ΠΊΠ°Ρ‚ΠΎΠΌ я расскаТу ΠΎΠ±ΠΎ всСх этапах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·Π²ΠΈΠ²Π°Π»Π°ΡΡŒ простая идСя ΠΈ ΠΊΠ°ΠΊ для этого ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ возмоТности, ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΡˆΠΈΡ… ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Ρ… камнях ΠΈ Π±Π°Π³Π°Ρ…, ΠΎ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ… ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ πŸ™‚ ЦСль β€” ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ тСкстС основныС ΠΏΡƒΠ½ΠΊΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ, Ρ€Π΅ΡˆΠΈΠ²ΡˆΠ΅ΠΌΡƒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС ΠΈΠ³Ρ€Ρ‹ Pong ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π°, Π½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΡƒΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ StackOverflow ΠΈ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ часы Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ дСлаСтся Π·Π° ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚, Ссли знаСшь, ΠΊΠ°ΠΊ.

0. Если Π²Ρ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΡΠ»Ρ‹ΡˆΠΈΡ‚Π΅ ΠΎ Kivy.

… Ρ‚ΠΎ всё зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π»ΡŽΠ±ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹ Python ΠΈ Android, ΠΈ интСрСсно Π»ΠΈ Π²Π°ΠΌ Π² этом Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ. Если Π½Π΅Ρ‚ β€” ΠΏΡ€ΠΎΡ‰Π΅ Π·Π°Π±ΠΈΡ‚ΡŒ πŸ™‚ А Ссли Π΄Π°, Ρ‚ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π³Π°ΠΉΠ΄ΠΎΠ², ΠΈ ΡƒΠΆΠ΅ упомянутого ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π° ΠΏΠΎ ΠΈΠ³Ρ€Π΅ Pong β€” это даст Π±Π°Π·ΠΎΠ²ΠΎΠ΅ прСдставлСниС ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ ΠΈ Π΅Π³ΠΎ возмоТностях. Π― ΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΡΡ‚ΠΎΠ»ΡŒ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‰Π°Ρ… (Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, для понимания Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π» ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚) ΠΈ сразу ΠΏΠΎΠΉΠ΄Ρƒ дальшС. Π‘ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π»ΠΎ вступлСниС πŸ™‚

1. НСмного ΠΎ ΠΌΠΎΠ΅ΠΉ ΠΈΠ³Ρ€Π΅

Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½Π° Π±Ρ‹Π»Π° идСя. МнС Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ достаточно простоС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ возмоТности Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, Π½ΠΎ ΠΈ достаточно интСрСсноС ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π΄ΠΈ программирования (это Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° это Π½Π΅ СдинствСнная Ρ†Π΅Π»ΡŒ β€” это Π΅Ρ‰Ρ‘ Π»ΡƒΡ‡ΡˆΠ΅). Π― Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽ интСрфСйсы, Π½ΠΎ Π½Π΅ ΡƒΠΌΠ΅ΡŽ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ, поэтому ΠΈΠ³Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Π»Π° Π±Ρ‹Ρ‚ΡŒ простая графичСски, ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ тСкстовая. И Ρ‚ΡƒΡ‚ Ρ‚Π°ΠΊ ΡƒΠΆ слоТилось, Ρ‡Ρ‚ΠΎ Ρƒ мСня Π΅ΡΡ‚ΡŒ Π·Π°Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΉ сайт с Ρ†ΠΈΡ‚Π°Ρ‚Π°ΠΌΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ я ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π» свой ΠΏΡƒΡ‚ΡŒ Π² web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ (я ΠΎ Π½Ρ‘ΠΌ Π΄Π°ΠΆΠ΅ писал Π½Π° Π₯Π°Π±Ρ€Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ идСя Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° такая: ΠΈΠ³Ρ€Π°-Π²ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π° Β«Π£Π³Π°Π΄Π°ΠΉ Ρ†ΠΈΡ‚Π°Ρ‚ΡƒΒ». Π’ русскоязычном Google Play Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ, Π° Π² англоязычном Π±Ρ‹Π»Π° ΠΏΠ°Ρ€Π° ΠΏΠΎΠ΄Π΅Π»ΠΎΠΊ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ качСства с сотнСй скачиваний.

ΠŸΠΎΡ‡Ρ‚ΠΈ сразу ΠΆΠ΅ стало понятно, Ρ‡Ρ‚ΠΎ просто Ρ‚Π°ΠΊ ΠΎΡ‚Π³Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Ρ†ΠΈΡ‚Π°Ρ‚Ρƒ Π·Π° Ρ†ΠΈΡ‚Π°Ρ‚ΠΎΠΉ β€” скучно. Π’Π°ΠΊ появились ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Β«Ρ„ΠΈΡˆΠΊΠΈΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π² ΠΈΡ‚ΠΎΠ³Π΅, ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ это Π±Ρ‹Π»ΠΈ тСматичСскиС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Ρ†ΠΈΡ‚Π°Ρ‚, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠΎΠΉ ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ) ΠΈ Π±Π°Π»Π»Ρ‹ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Π·Π° ΠΎΡ‚Π³Π°Π΄Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ†ΠΈΡ‚Π°Ρ‚ ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΈ тратятся Π½Π° подсказки ΠΈ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅ΠΌ), Π° Ρ‚Π°ΠΊΠΆΠ΅ статистика, достиТСния ΠΈ ΠΈΠ·Π±Ρ€Π°Π½Π½ΠΎΠ΅.

Π’Π°ΠΊ всё Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΎΡΡŒ (кликабСльно):
ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

Ну Π»Π°Π΄Π½ΠΎ, Π»Π°Π΄Π½ΠΎ, большС Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ уТас πŸ™‚ ΠšΡΡ‚Π°Ρ‚ΠΈ, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ ΠΎΠ½ΠΎ выглядит сСйчас (Ρ‚ΠΎΠΆΠ΅ кликабСльно, скрины взяты с Google Play):
ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈΡΡŒ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΆΠ΅ экрана…

2. Kivy Ρ‚ΠΎΡ€ΠΌΠΎΠ· ΠΈΠ»ΠΈ я Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ дСлаю Π½Π΅ Ρ‚Π°ΠΊ?

Один ΠΌΠΎΠΉ Π΄Ρ€ΡƒΠ³ Π»ΡŽΠ±ΠΈΡ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ вопросы Β«Π΄Π°Β» πŸ™‚ На самом Π΄Π΅Π»Π΅, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ Π² Kivy Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, созданиС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². Но это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ это Π΄Π΅Π»ΠΎ нСльзя ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Об этом я ΠΈ расскаТу.

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

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΠΈΡ‚ΠΎΠ½

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΠΌΠΎΠΈΠΌ ΠΏΠΎΠ±ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π±Ρ‹Π»ΠΎ Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π·Π°ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…, ΠΈ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠΏΡ‹Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ Ссли ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ всС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅, ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ свойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° StartScreen, Ρ‚ΠΎ всё (ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ) Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ достаточно быстро. Однако ΠΆΠ΅, Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ… Π½ΡƒΠΆΠ½ΠΎ пСриодичСски ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ (хотя Π±Ρ‹ Ρ‚ΠΎ ΠΆΠ΅ количСство ΠΎΡ‚Π³Π°Π΄Π°Π½Π½Ρ‹Ρ… Ρ†ΠΈΡ‚Π°Ρ‚). Π”Π° ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² я ΡƒΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π». ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ это, Π½ΠΎ я Ρ€Π΅ΡˆΠΈΠ» Π½Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ вСлосипСд ΠΈ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ.

Π‘Π½Π°Ρ‡Π°Π»Π° стоило ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² создании Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², поэтому я Π·Π° нСсколько ΠΌΠΈΠ½ΡƒΡ‚ набросал ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄Π²Π° экрана, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… гСнСрировался Π½Π°Π±ΠΎΡ€ строк ΠΈΠ· Π»Π΅ΠΉΠ±Π»Π° ΠΈ чСкбокса количСством 50 ΡˆΡ‚. πŸ™‚

Запустил Π½Π° своём ΡΡ‚Π°Ρ€Π΅Π½ΡŒΠΊΠΎΠΌ Moto G (gen3) ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»:

И Π΄Π°Π»Π΅Π΅ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Π΄ΡƒΡ…Π΅. Поиск ΠΏΠΎ этому вопросу Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π°Π», поэтому я обратился ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ. И ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΎΡ‚Π²Π΅Ρ‚: Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅, особСнно Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ содСрТат. Для создания Π±ΠΎΠ»ΡŒΡˆΠΈΡ… списков Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ RecycleViewΒ». Π—Π΄Π΅ΡΡŒ Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ я Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚, вСдь описаниС RecycleView Π΅ΡΡ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π”Π°, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π΅ΡΡ‚ΡŒ, Π½ΠΎ ΠΌΠ°Π»ΠΎ ΠΊΡ‚ΠΎ способСн ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ всю Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π½Ρ‘Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, ΠΈ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ инструмСнт Π±Ρ‹Π²Π°Π΅Ρ‚ нСпросто, особСнно Ссли ΠΎΠ½ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ описан Π² контСкстС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠ΅ ΠΎΠ½ описан πŸ™‚

Π‘ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² 100 Ρ€Π°Π· быстрСС. ВпСчатляСт, Π½Π΅ ΠΏΡ€Π°Π²Π΄Π° Π»ΠΈ?

Π’ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ слСдуСт ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ RecycleView β€” Π½Π΅ панацСя. Он Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли Ρ€Π°Π·ΠΌΠ΅Ρ€ элСмСнта зависит ΠΎΡ‚ содСрТимого (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Label, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ мСняСтся Π² зависимости ΠΎΡ‚ количСства тСкста).

3. БСрвисы. Автозапуск ΠΈ пСрСзапуск

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я столкнулся, Π½Π΅ поддавалась Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Ρ‚Π°ΠΊ Π΄ΠΎΠ»Π³ΠΎ, Ρ‡Ρ‚ΠΎ я ΡƒΠΆΠ΅ ΠΌΠ°Π»ΠΎΠ΄ΡƒΡˆΠ½ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΡ‹Π²Π°Π» ΡΡ‡Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π½Π΅ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌ ΠΈ Π·Π°Π±ΠΈΡ‚ΡŒ πŸ™‚ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° с сСрвисами (Π² Android Ρ‚Π°ΠΊ называСтся процСссы, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅). Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ сСрвис Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ слоТно β€” Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ сбиваСт с Ρ‚ΠΎΠ»ΠΊΡƒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ докумСнтация, Π½ΠΎ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ. Однако, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв, ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈ Ρ‚ΠΎΠ»ΠΊΡƒ ΠΎΡ‚ сСрвиса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π΅ запускаСтся автоматичСски ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π½Π΅ пСрСзапускаСтся, Ссли Β«Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒΒ» ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ свайпом ΠΈΠ· диспСтчСра Π·Π°Π΄Π°Ρ‡? По-ΠΌΠΎΠ΅ΠΌΡƒ, Π½Π΅Ρ‚.

На Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ Π±Ρ‹Π»Π° всСго лишь ΠΎΠ΄Π½Π° ΡΡ‚Π°Ρ‚ΡŒΡ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ wiki, Π½ΠΎ ΠΎΠ½Π°, Ρ…ΠΎΡ‚ΡŒ ΠΈ Π½Π°Π·Ρ‹Π²Π°Π»Π°ΡΡŒ Β«Starting Kivy service on bootupΒ», Π½Π° самом Π΄Π΅Π»Π΅ всСго лишь рассказывала, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅ Π΅Π³ΠΎ сСрвис (Π΄Π°, Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚ΠΎΠΆΠ΅ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎ ΠΌΠ½Π΅). Π’Ρƒ ΡΡ‚Π°Ρ‚ΡŒΡŽ я, Π² ΠΈΡ‚ΠΎΠ³Π΅, пСрСписал, Π° здСсь расскаТу подробности.

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всСго-Ρ‚ΠΎ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ пСриодичСски Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² Π»ΠΎΠ³ строку (этим ΠΌΡ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±Π°Π³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΈΠ·-Π·Π° особСнностСй самого сСрвиса).

Из прилоТСния ΠΌΡ‹ запускаСм Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ основного класса ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ PyJnius:

Если APK собран ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈ запускС прилоТСния сСрвис Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ этого нСдостаточно.

Для Π½Π°Ρ‡Π°Π»Π°, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ пСрСзапускался ΠΏΡ€ΠΈ остановкС прилоТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ снятии Π΅Π³ΠΎ ΠΈΠ· диспСтчСра Π·Π°Π΄Π°Ρ‡). ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ startForeground, Π½ΠΎ это ΡƒΠΆΠ΅ Π½Π΅ совсСм Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ πŸ™‚ Для Π½Π΅Π³ΠΎ потрСбуСтся, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ β€” это Π½Π΅ всСгда ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ„Π»Π°Π³ START_STICKY, Π½ΠΎ ΠΌΡ‹ ΠΆΠ΅ пишСм Π½Π° Python, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ β€” ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ PyJnius ΠΎΠ½Π° ΡƒΠΆΠ΅ Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ.

Π£Ρ€Π°, сСрвис рСстартится. Всё? ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅Ρ‚ πŸ™‚ ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ‚ΡƒΡ‚ ΠΆΠ΅ валится с ошибкой:

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ onStartCommand(Intent intent, int flags, int startId), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ послС пСрСзапуска intent Ρƒ нас null. Π§Ρ‚ΠΎ ΠΆ, ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ ΠΈ Π΅Ρ‘:

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ функция nativeStart() Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½Ρ‹Ρ… Extras. К соТалСнию, Π΄Π²Π° ΠΈΠ· Π½ΠΈΡ… ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π·Π°Ρ…Π°Ρ€Π΄ΠΊΠΎΠ΄ΠΈΡ‚ΡŒ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ выглядит это Ρ‚Π°ΠΊ:

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ автозапуску сСрвиса ΠΏΡ€ΠΈ запускС Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°. ПослС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ это Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΡ‰Π΅. (На самом Π΄Π΅Π»Π΅ ΠΆΠ΅ всё Π±Ρ‹Π»ΠΎ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ β€” я ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ ΠΌΠΎΠ³ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± этом Π½Π΅ Π±Ρ‹Π»ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠ³Π΄Π΅, ΠΈ сами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π²ΡˆΠΈΡΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с вопросом пСрСзапуска, я понял, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.)

Для Π½Π°Ρ‡Π°Π»Π° понадобится Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ RECEIVE_BOOT_COMPLETED β€” это просто. А Π·Π°Ρ‚Π΅ΠΌ β€” BroadcastReceiver, Π΅Π³ΠΎ придётся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² AndroidManifest Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π½ΠΎ это Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Ρ‘ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ πŸ™‚

РСшСниС для запуска прилоТСния (Π½Π΅ сСрвиса) выглядит Ρ‚Π°ΠΊ:

Π‘Π½Π°Ρ‡Π°Π»Π° я попытался просто ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ для сСрвиса:

Π”ΡƒΠΌΠ°ΡŽ, Π²Π°ΠΌ ΡƒΠΆΠ΅ понятно, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚Π΅Ρ… самых Extras. МнС ΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ± этом Π±Ρ‹Π»ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π½Π΅ΠΎΡ‚ΠΊΡƒΠ΄Π°. Но Π½Π΅ Π±ΡƒΠ΄Ρƒ Ρ‚ΡΠ½ΡƒΡ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠΎΠ΄ выглядит Ρ‚Π°ΠΊ:

Локализация ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ·Ρ‹Ρ‡Π½ΠΎΡΡ‚ΡŒ

Π’ Ρ†Π΅Π»ΠΎΠΌ, для Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ gettext, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΏΡ€ΠΎΡ‰Π΅ β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ lang, Π² Π½Π΅ΠΉ ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ язык (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, en.py ΠΈ ru.py), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΌ всС слова ΠΈ Ρ„Ρ€Π°Π·Ρ‹ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…/констант, ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

БтатичСская пСрСмСнная использована для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ языковыС константы Π±Ρ‹Π»ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² kv-Ρ„Π°ΠΉΠ»Π΅:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *