2 заметки с тегом

android

Вынесение порицания андроиду

Понегодую-ка на андроид с явой. Нубство, наверное, но чего уж, я в первый раз столкнулся. В двух словах, как пишется приложение? Один экран это одна так называемая активность. Состоит из xml файла с описанием внешнего вида (кнопок, картинок, текстовых полейи всего такого) и файла с собственно кодом на яве. Без явы всё просто выглядит, но ничего не понажимаешь, а без xml что-то там наверное работает, но результатов не видно. Как-то так. И в двух словах, как работает кнопка? Кнопке надо назначить обработчик. Функция, которая будет вызываться по нажатию на кнопку. Назначить обработчик можно в коде - сначала создать объект типа кнопка, потом найти по идентификатору из разметки нарисованную кнопку и дать понять, что это одно и то же. Потом собственно присовить обработчик. А можно в xml к кнопке добавить всего одну строчку: android:onClick="Ololo" Ololo это и будет именем функции, которая вызовется по клику. Очевидно, что второй способ гораздо удобнее. Так я и подумал, по-быстрому описал все свои сорок кнопок и давай думать о более сложных вещах. Пишу потихоньку, изредка запускаю всё то на эмуляторе, то на своём телефоне, всё работает, всё классно. Решаю, что пора бы и бета-тестирование провести. А запускаю как? В среде разработки есть кнопка "запустить", по которой автоматом создаётся apk, закидывается на подключенное устройство (виртуальное или реальное, без разницы), устанавливается там и запускается. Нажал одну кнопку, подождал, тестируешь. Удобно! А бета-тестирование провести как? Каждого ж за руку к себе домой не отведёшь, телефон по проводу к компу не подключишь. Надо создать apk и раздавать его как хочешь, а устанавят и запустят сами, вручную, чай не маленькие. Создаётся такой apk тоже одной кнопкой, тоже очень удобно. Создал, кинул самому себе в телеграм, пошёл в кафе Одесса к Хорсу с Сойером и давай хвастаться, пробуйте мол, пересылаю. Запускает его Хорс, нажимает на что-то - приложение падает. Вот стыдоба же! У меня всё работает, а у него нет. И у Сойера нет. Поначалу списал всё на самсунг гэлакси эс 7 эдж, настолько хороший телефон, что на нём всё работает, а у вас нет, отсосите. А сам думаю - ну почему кнопки с буквами нажимаются нормально, а кнопки "сдаться" и "хэлп" нет? Непонятно. Дальше больше, на следующий день, в гостях у родителей ставлю игру на мамин гэлакси эс 4 - то же самое, не работает. Подумываю уже изъять её телефон для дебага, но тут оказывается, что и у жены ничего не работает! Ладно, её телефон всегда под рукой, вот на нём дома и гляну в чём косяк. И что вы думаете? Падает всё из-за того, что нет, оказывается, такого обработчика, который назначен кнопке. Но он есть, вот он, собственными глазами вижу! Вот же, абсолютно так же описан, как и те, что запускаются нормально. Все назначены одинаково, из разметки. Одни работают, другие нет. И вишенка на торте - не работают именно в той версии apk, что создаётся для распространения, а не сразу для запуска. То есть самсунг гэлакси эс 7 эдж тут не при чём, на нём всё точно так же падает. Н - ненависть. Методом научного тыка назначил обработчики этим кнопкам в коде, убрав их из разметки - всё заработало. Но как так-то?! Как может один и тот же подход к одним и тем же вещам в одном случае работать, а в другом нет? И зачем делать разные версии приложения (рабочую и нет) по кнопкам Run и Build?
 Нет комментариев    42   2017   android

Проба пера в игрописании

Давным давно играли мы на форуме в быков с коровами, только не с числами, а со словами. Один человек загадывает, остальные пишут версии и получают ответы. Кто победил, тот молодец и сам загадывает. Лично мне очень нравилось. Минус только один - ждать ответов приходилось долго. Потом и вовсе всё это сдохло вместе со всем форумом. И вот спустя несколько лет я взял, да и написал быков с коровами под этот наш андроид. Просто ради освоения чего-то нового. В процессе дичайше плевался от явы, но в итоге смирился и вроде норм. В интерфейсах и дизайне я не мастак, так что там сплошной минимализм и ничего больше. Ни рекламы, ни разрешений на что-либо. Самое сложное было вычитать словарь, изъяв всякую дичь, и то, наверное, не всю. К примеру, угадывал я как-то слово из 8 букв, на 22-ой попытке сдался и словом тем оказался "дерматин", про который я всю жизнь думал, что он "дермаНтин". Хотя очевидно же, что от латинского "дерма", ну нет там никакой Н. В общем, без кучи времени и словарного запаса играть будет тяжеловато )
 Нет комментариев    30   2017   android