Страницы

Поиск по вопросам

среда, 29 января 2020 г.

Некорректная работа приложения

#android


Начал писать игру на андроид, уже есть кое-что. Но это кое-что нормально работает
только на моём собственном телефоне и на эмуляторе на компе, а на остальных устройствах
то одно не работает, то другое. Хотя ничего сложного в игре не используется, и тестил
на норм. андроид-телефонах. Подскажите, что делать или как искать в Интернете эту проблему?
В Интернете не могу найти почему-то.
UPD: РЕБЯТ!!! Я умею искать ошибки и исправлять их, просто я думал, что можно соблюдать
какие-то советы, рекомендации и так далее, чтобы приложение работало без багов на 97%
телефонов, а не тестировать (или сделать автоматизацию тестирования) на огромном количестве
телефонов, учитывая, что при количестве кода, например, в десятки тысяч строк, этих
багов может оказаться крайне много на различных телефонах, которых тоже крайне много!!!     


Ответы

Ответ 1



чтобы приложение работало без багов на 97% телефонов, а не тестировать Бог с Вами, сударь! Без тестирования нельзя, основные ошибки выловишь сам, а тестировать на огромном количестве телефонов будешь по баг-репортам, так все живут. Есть правила, которые лишь помогают избежать критичных ошибок, но не более. Это что-то типа "Комментируй правильно код, т.е. юзай JavaDoc или аналоги" и "Избегай конструкции %something%, ибо опасна она и непредсказуема!".

Ответ 2



Для начала прочтите Android Device Compatibility Guide - там даны общие рекомендации, как писать совместимое приложение. Создайте несколько разных эмуляторов с прицелом под разные версии Android'а и протестируйте под ними. У меня обычно их 3: GingerBread (API=10), ICS (API=14) и KitKat (API=19). Обратите внимание, под каким API вы собираете приложение. Бывает, что люди собирают под LolliPop и пытаются запускать под GingerBread - запуститься, конечно, запустится, но если вы использовали фичи LolliPop или ICS, отсутствующие под GingerBread, - то результат понятен (скорее всего, это у вас и происходит). Запустите под Android Studio визард (по моему, называется code analysis), который ищет обращения к методам API, не совпадающим с объявленным в манифесте minSdk. Если есть таковые классы и методы не поддерживаемые вашим minSdk - тогда придется погружаться в глубины Android Support Library - занятие не самое приятное, но необходимое. Ну и, само собой, LogCat + отладчик + ACRA наше все. Да и еще: пытаться поддерживать API Level < 10 (ниже GingerBread) - бессмысленно. Не стоит оно того.

Ответ 3



@Aftorik если ты не хочешь выкладывать код сюда, или не можешь локализовать проблему сам, то я тебе предложу прикрутить библиотеку ACRA к своей андроид игре. Даже если программа падает, ACRA всё равно создаст стактрейс и запишет это в файл или отправит на email (если, конечно, настроить).

Ответ 4



Нашёл одну IDE, которая позволяет делать то, о чём я написал - Delphi от Embracadero (XE5, XE7 итд). Вот видео по правильной установке (смотреть обязательно): Видео по правильной установке Delphi XE5. На нём приложения пишутся так же, как оконные приложения для Windows на Delphi, но запускается на андроиде и работает везде всё идентично (по крайней мере, по моим скромным тестам на 5 телефонах). Правда, за широкие возможности не ручаюсь, но для простых приложений годится. Из минусов ещё - большой вес apk-файла (>8 мб для простейшего приложения). Из плюсов ещё - отсутствие всяких неведомых ошибок во время разработки. Вообще, разработка проходила как по маслу и совершенно без проблем.

Комментариев нет:

Отправить комментарий