Създаването на основно приложение за Android е лесно. Правенето на надеждно, мащабируемо и стабилно приложение за Android, от друга страна, може да бъде доста предизвикателно .
С хиляди на наличните устройства, изпомпвани от тонове на различни производители, ако приемем, че една част от кода ще работи надеждно в телефоните, в най-добрия случай е наивно.
Сегментирането е най-големият компромис за наличието на отворена платформа и ние плащаме цената във валутата на поддържане на кода, което продължава дълго след като приложението е преминало етапа на производство.
И така, какво се случва, когато приложение за Android се срине или стане неотзивчив ? Е, изскача диалоговият прозорец „Принудително затваряне“, който показва на потребителя, че нещо се е объркало. Ако приложението е изтеглено чрез Google Play, потребителят ще бъде подканен да докладва за срива, като изпрати подробен отчет за срив на Android (включително време, модел на телефона, версия на Android, проследяване на стека и т.н.), който вие (разработчикът) можете да видите в конзолата за програмисти, която ви позволява да отстраните грешката на виновника.
Всичко това звучи много приятно - но има основен проблем при използването на отчитането на грешки по подразбиране за Android: потребителите са склонни не да предприемат действия, когато приложенията им се сринат; всъщност мнозинството избира да не изпраща в отчетите за грешки в Android. Как тогава, можеш ли като a съвестен разработчик , да получите надеждна информация за сривовете и недостатъците на приложението си?
АКРА означава „Автоматизирано отчитане на сривове за Android“. Това е безплатна библиотека, която ви позволява да разрешите проблема с „ръчно отчитане на грешки“ с няколко реда код. След като внедрите библиотеката и всичко е правилно инициализирано, ще можете автоматично да извличате същите дневници за грешки на Android като Google (както и куп добавени опции за персонализиране), без да изисквате от потребителя да предприема действия.
Освен това, ACRA ви позволява да изберете как искате да информирате потребителя за срив на Android, като по подразбиране е безшумно фоново отчитане и алтернативи, включително персонализирани диалогови прозорци.
Доскоро ACRA беше подкрепена от Google Spreadsheet, което означаваше, че можете да получавате всичките си отчети в един файл, хостван безплатно във вашия акаунт в Google Drive. За съжаление, Google поиска да не използваме тази опция в бъдеще, така че оставаме с няколко алтернативи за изпращане на данни за доклад за сривове, някои от които ще разгледаме в този урок:
В тази статия ще анализираме едно от следните решения: хостване на вашите отчети за ACRA на a Облачно back-end и визуализиране на данните с акселератор .
Първото нещо, което трябва да направим, е регистрирам акаунт в Cloudant. Разбира се, има уловка: Услугите на Cloudant не са напълно безплатни, но според тях страница за ценообразуване много малко вероятно е да надхвърлите месечния лимит от $ 5 (освен ако нямате огромна потребителска база и тон грешки в кода си).
След като се регистрираме, трябва да разберем как работят нещата. На високо ниво нашият back-end ще се състои от два компонента:
За да работи коректно нашият back-end, ще трябва да настроим тези два компонента. На теория бихме могли да изградим базата данни и приложението от източника и след това използвайте инструмент, за да ги разположите в нашия back-end - но добрите хора в ACRA вече са направили това за нас. Така че най-лесният подход е да се репликира отдалечена база данни и отдалечено приложение.
Нека да репликираме празен ACRA CouchDB:
По този начин ние успешно репликирахме базата данни за съхранение на отчети. След това трябва да репликираме CouchApp на акрализатора, за да можем да визуализираме данните:
Забележка : репликирането на приложението за ускорител не е задължително. Няма да ви е необходим, ако се интересувате само от съхраняване на вашия отчет за срив на Android, вместо от визуализиране на данните (ще разгледаме по-отблизо acralyzer в следващия раздел на този урок за Android). Ако се чувствате достатъчно уверени в уменията си за JavaScript, можете дори да напишете собствено приложение за анализ! Но това е извън обхвата на тази публикация в блога.
Последната стъпка от първоначалния процес на настройка е добавяне на разрешения за защита. Cloudant предоставя свой собствен слой за сигурност над CouchDB с по-фин контрол върху индивидуалните права, така че за да напишем отчет в нашата база данни, трябва да създадем потребителски акаунт с разрешения за запис:
Аз съм с пазарен размер
След като се репликира, до таблото за управление на acralyzer може лесно да се стигне, като следвате https://{myapp}.cloudant.com/acralyzer/_design/acralyzer/index.html#/dashboard
Ще призная: това не е най-красивият инструмент за анализ там, но служи на целта си.
От горното меню можете да изберете коя база данни искате да визуализирате (възможно е да хоствате множество бази данни за различни приложения в един проект; това ще се отрази на квотата ви за използване) и да прегледате данните в главното табло за управление. Например можете:
Обърнете внимание, че наличните за визуализация показатели за срив на Android ще зависят от отчетите, които решим да изпратим от нашето приложение. ACRA предлага разнообразие от полета на отчета , някои от които могат да бъдат доста големи по размер или не напълно подходящи за отстраняване на грешки. За повечето проекти задължителните полета за отчет ще бъдат достатъчни. Те включват:
Както бе споменато по-горе в този урок, внедряването на ACRA е много лесно и изисква само няколко бързи стъпки.
Първо, трябва да включим библиотеката като зависимост по един от следните начини:
Като зависимост от Maven:
ch.acra acra X.Y.Z
Като градинска зависимост:
compile 'ch.acra:acra:X.Y.Z'
След това трябва да добавим клас Android Application към нашия проект (или да актуализираме съществуващ клас, тъй като може да има само един екземпляр) и да го декларираме в AndroidManifest.xml:
...
И настройте ACRA там:
@ReportsCrashes( formUri = 'https://{myusername}.cloudant.com/acra-{myapp}/_design/acra-storage/_update/report', reportType = HttpSender.Type.JSON, httpMethod = HttpSender.Method.POST, formUriBasicAuthLogin = 'GENERATED_USERNAME_WITH_WRITE_PERMISSIONS', formUriBasicAuthPassword = 'GENERATED_PASSWORD', formKey = '', // This is required for backward compatibility but not used customReportContent = { ReportField.APP_VERSION_CODE, ReportField.APP_VERSION_NAME, ReportField.ANDROID_VERSION, ReportField.PACKAGE_NAME, ReportField.REPORT_ID, ReportField.BUILD, ReportField.STACK_TRACE }, mode = ReportingInteractionMode.TOAST, resToastText = R.string.toast_crash ) public class MainApp extends Application { @Override public void onCreate() { super.onCreate(); // The following line triggers the initialization of ACRA ACRA.init(this); } }
Това е! Разбира се, ще трябва да замените всички заместители {myapp} с действителни стойности, както и стойности за formUriBasicAuthLogin
и formUriBasicAuthPassword
.
Както можете да видите от горния кодов фрагмент, ние използваме само задължителните полета за отчет. Чувствайте се свободни да добавяте други полета, които могат да имат отношение към вашето приложение.
Можете също да изберете да използвате PUT вместо POST. В този случай REPORT_ID
ще бъде добавен в края на former
като параметър.
И накрая, можете също да изберете как потребителят да бъде информиран за срива на приложението за Android, като по подразбиране е безшумен фонов отчет. В нашия случай избираме да покажем съобщение Toast, което уведомява потребителя, че е докладвано за срив и скоро трябва да бъде налице коригиране на грешка.
какво е дизайнът в изкуството
За да видя ACRA в действие, настроих acra_example репо на GitHub. Той разполага с просто приложение, което инициализира ACRA при стартиране и нека ви срине, като натиснете бутон (който след това задейства изключение с нулев указател). Данните за срива се изпращат до примерна база данни на Cloudant, която може да бъде визуализирана тук .
За да видите данните, влезте със следните идентификационни данни:
ACRA не е единствената опция за автоматизирано отчитане на грешки в Android. Тъй като сривовете непременно ще се случат, има голям пазар за бизнес за разработчици (B2D), който се опитва да осигури приходи от тяхната резолюция.
Критерицизъм например е много зряла платформа за докладване на сривове. Изглежда страхотно, предлага куп възможности за анализ на данни и е много лесен за интегриране. Единственият недостатък: цена , а безплатният пробен период е доста ограничен по отношение на броя на активните потребители, дни на задържане на данни и поддръжка). BugSense е подобна услуга.
Според мен обаче Crashlytics е превъзходно решение. Доскоро Crashlytics имаше модел freemium (с платен премиум ниво); но сега (след тяхното придобиване от Twitter ), всички предишни премиум функции са достъпни за Безплатно . Няма разходи за използване, такси или ограничения. Това е предпочитаното средство за докладване на грешки за много високопоставени и високопоставени компании и разработчици, тъй като е много лесно за използване и предлага мощни инструменти за анализ и визуализация. Той дори се интегрира с най-популярните IDE като плъгин (например Eclipse, Android Studio), така че добавянето на Crashlytics към вашето приложение е толкова просто, колкото избирането на проект и натискането на бутон. Тези приставки също ви позволяват да проследявате отчети за сривове от вашата IDE, без да се налага да отваряте браузър.
И така, защо да използваме ACRA тогава, когато има други алтернативи, които изглеждат много по-добре и предлагат повече функции за същите усилия за внедряване? Ще ви дам две причини.
Всички тези други опции са затворен код, патентован софтуер . Дори и с кошница, пълна с EULA, не можете да сте сигурни точно как Вашите данни се събират и обработват. От друга страна, ACRA и acralyzer са проекти с отворен код, хоствани на GitHub, които можете лесно да разклоните и приспособите към вашите нужди.
Мобилност на данните . Да приемем, че не сте доволни от Cloudant. Лесно е да репликирате и мигрирате данните си в друг back-end. Гарантирате, че данните остава твоя .
Както при много възможности за избор, и този се свежда до личните предпочитания и познаване. Вижте този Google+ конец за повече дискусия относно различните налични алтернативи, за да направите приложението си по-надеждно.
ACRA е изключително здрава и изключително адаптивни библиотека, която може да се използва заедно с Cloudant и acralyzer за постигане на безплатни, автоматизирани отчети за сривове и основни анализи за вашето приложение, всичко това за минимални усилия за внедряване.
Писането на надежден Android код изисква много опит и предвидливост, но никой от нас не е наистина всезнаещ. Бъдете подготвени за неочакваните сривове и грешки и бъдете готови да го направите поправяне неочакваното възможно най-скоро. Това е вид работа, която се влага в страхотни продукти и страхотно потребителско изживяване.
Свързани: Направете приложението си печелившо - Използвайте мобилния анализ