portaldacalheta.pt
  • Основен
  • Agile Talent
  • Дизайнерски Живот
  • Възходът На Дистанционното
  • Рентабилност И Ефективност
Подвижен

Автоматизирани Android Crash Reports с ACRA и Cloudant



Създаването на основно приложение за Android е лесно. Правенето на надеждно, мащабируемо и стабилно приложение за Android, от друга страна, може да бъде доста предизвикателно .

С хиляди на наличните устройства, изпомпвани от тонове на различни производители, ако приемем, че една част от кода ще работи надеждно в телефоните, в най-добрия случай е наивно.



Сегментирането е най-големият компромис за наличието на отворена платформа и ние плащаме цената във валутата на поддържане на кода, което продължава дълго след като приложението е преминало етапа на производство.



Защо отчитането на грешки в Android има значение

И така, какво се случва, когато приложение за Android се срине или стане неотзивчив ? Е, изскача диалоговият прозорец „Принудително затваряне“, който показва на потребителя, че нещо се е объркало. Ако приложението е изтеглено чрез Google Play, потребителят ще бъде подканен да докладва за срива, като изпрати подробен отчет за срив на Android (включително време, модел на телефона, версия на Android, проследяване на стека и т.н.), който вие (разработчикът) можете да видите в конзолата за програмисти, която ви позволява да отстраните грешката на виновника.



Всичко това звучи много приятно - но има основен проблем с отчитането на грешки по подразбиране за Android: потребителите обикновено не го използват, оставяйки разработчиците без знание за състоянието на техните приложения.

Всичко това звучи много приятно - но има основен проблем при използването на отчитането на грешки по подразбиране за Android: потребителите са склонни не да предприемат действия, когато приложенията им се сринат; всъщност мнозинството избира да не изпраща в отчетите за грешки в Android. Как тогава, можеш ли като a съвестен разработчик , да получите надеждна информация за сривовете и недостатъците на приложението си?

Надеждният дневник за сривове на Android е особено важен, когато потребителите не изпращат отчети за сривове.



Представяме ви ACRA

АКРА означава „Автоматизирано отчитане на сривове за Android“. Това е безплатна библиотека, която ви позволява да разрешите проблема с „ръчно отчитане на грешки“ с няколко реда код. След като внедрите библиотеката и всичко е правилно инициализирано, ще можете автоматично да извличате същите дневници за грешки на Android като Google (както и куп добавени опции за персонализиране), без да изисквате от потребителя да предприема действия.

Освен това, ACRA ви позволява да изберете как искате да информирате потребителя за срив на Android, като по подразбиране е безшумно фоново отчитане и алтернативи, включително персонализирани диалогови прозорци.



Доскоро ACRA беше подкрепена от Google Spreadsheet, което означаваше, че можете да получавате всичките си отчети в един файл, хостван безплатно във вашия акаунт в Google Drive. За съжаление, Google поиска да не използваме тази опция в бъдеще, така че оставаме с няколко алтернативи за изпращане на данни за доклад за сривове, някои от които ще разгледаме в този урок:

  • Стандартен имейл (все още изисква взаимодействие с потребителя).
  • Персонализиран имейл / HTTP клиент (изисква обширна настройка).
  • Персонализиран back-end (с опции вариращ от безплатни към търговски решения).

В тази статия ще анализираме едно от следните решения: хостване на вашите отчети за ACRA на a Облачно back-end и визуализиране на данните с акселератор .



Настройване на Cloudant back-end

Първото нещо, което трябва да направим, е регистрирам акаунт в Cloudant. Разбира се, има уловка: Услугите на Cloudant не са напълно безплатни, но според тях страница за ценообразуване много малко вероятно е да надхвърлите месечния лимит от $ 5 (освен ако нямате огромна потребителска база и тон грешки в кода си).

След като се регистрираме, трябва да разберем как работят нещата. На високо ниво нашият back-end ще се състои от два компонента:



  1. База данни за съхранение или по-точно Apache CouchDB . CouchDB съхранява данните си във формат JSON, което означава, че всички отчети, изпратени от устройството с Android, трябва да съвпадат с формата, за да бъдат вмъкнати като запис. Вмъкването на база данни е проста HTTP POST или PUT заявка.
  2. Уеб приложение (за анализ) или, по-точно, a CouchApp . Това е просто приложение на JavaScript, което ви позволява да изпълнявате заявки и да показвате данните, съхранени в инстанцията CouchDB.

За да работи коректно нашият back-end, ще трябва да настроим тези два компонента. На теория бихме могли да изградим базата данни и приложението от източника и след това използвайте инструмент, за да ги разположите в нашия back-end - но добрите хора в ACRA вече са направили това за нас. Така че най-лесният подход е да се репликира отдалечена база данни и отдалечено приложение.

Нека да репликираме празен ACRA CouchDB:



  • Изберете раздела ‘Репликация’ в таблото си за управление на Cloudant.
  • Като изходна база данни изберете „Отдалечена база данни“ с http://get.acralyzer.com/distrib-acra-storage като URL.
  • Като целева база данни изберете „Нова база данни“ и я наречете „acra- {myapp}“ (без кавичките). Обърнете внимание, че параметърът {myapp} трябва да е уникален за вашето приложение и че името на базата данни трябва да започва с „acra-“.
  • Щракнете върху „Репликиране“.

Това илюстрира как да настроите Cloudant back-end за управление на Android отчитане на сривове.

По този начин ние успешно репликирахме базата данни за съхранение на отчети. След това трябва да репликираме CouchApp на акрализатора, за да можем да визуализираме данните:

  • Изберете раздела ‘Репликация’ в таблото си за управление на Cloudant.
  • Като изходна база данни изберете „Отдалечена база данни“ с http://get.acralyzer.com/distrib-acralyzer като URL.
  • Като целева база данни изберете „Нова база данни“ и я наречете „acralyzer“.
  • Щракнете върху „Репликиране“.

Тази стъпка се състои от репликация на приложението acra, за да визуализира данните от регистрационния файл за сривове на Android.

Забележка : репликирането на приложението за ускорител не е задължително. Няма да ви е необходим, ако се интересувате само от съхраняване на вашия отчет за срив на Android, вместо от визуализиране на данните (ще разгледаме по-отблизо acralyzer в следващия раздел на този урок за Android). Ако се чувствате достатъчно уверени в уменията си за JavaScript, можете дори да напишете собствено приложение за анализ! Но това е извън обхвата на тази публикация в блога.

Последната стъпка от първоначалния процес на настройка е добавяне на разрешения за защита. Cloudant предоставя свой собствен слой за сигурност над CouchDB с по-фин контрол върху индивидуалните права, така че за да напишем отчет в нашата база данни, трябва да създадем потребителски акаунт с разрешения за запис:

Аз съм с пазарен размер
  • Изберете раздела „База данни“ в таблото си за управление на Cloudant.
  • Щракнете върху раздела за разрешения (икона на заключване) за базата данни acra- {myapp}.
  • Щракнете върху „Генериране на API ключове“.
  • Запишете генерираното потребителско име и парола (ще ги използваме по-късно).
  • Добавете разрешения за запис за генерираното потребителско име.

Добавете разрешения за сигурност, така че вашите регистрационни файлове и отчети за срива на Android да са достъпни по-късно.

Визуализиране на отчети за сривове на Android с acralyzer

След като се репликира, до таблото за управление на acralyzer може лесно да се стигне, като следвате https://{myapp}.cloudant.com/acralyzer/_design/acralyzer/index.html#/dashboard Ще призная: това не е най-красивият инструмент за анализ там, но служи на целта си.

От горното меню можете да изберете коя база данни искате да визуализирате (възможно е да хоствате множество бази данни за различни приложения в един проект; това ще се отрази на квотата ви за използване) и да прегледате данните в главното табло за управление. Например можете:

  • Начертайте броя на отчетите по единица време (час, ден, месец и т.н.).
  • Вижте разпределението на отчетите по специфични за Android показатели (версия за Android, версия на SDK, версия на приложението, устройство и т.н.).
  • Избройте всички отчети за сривове (с подробна проследяване на стека) или вижте всички грешки (тук „грешка“ е група от идентични отчети, получени от различни потребители).
  • Визуализирайте подробности за една грешка и задайте нейното състояние като разрешено (ако е коригирано).
  • Пречистване на стари или остарели записи.

Визуализирането на данните от регистрационните файлове за сривове на Android може да бъде много полезно за подобряване на приложението ви по-стратегически.

Обърнете внимание, че наличните за визуализация показатели за срив на Android ще зависят от отчетите, които решим да изпратим от нашето приложение. ACRA предлага разнообразие от полета на отчета , някои от които могат да бъдат доста големи по размер или не напълно подходящи за отстраняване на грешки. За повечето проекти задължителните полета за отчет ще бъдат достатъчни. Те включват:

  • APP_VERSION_CODE
  • APP_VERSION_NAME
  • ANDROID_VERSION
  • PACKAGE_NAME
  • REPORT_ID
  • СГРАДАЙТЕ
  • STACK_TRACE

Внедряване на ACRA във вашия Android проект

Както бе споменато по-горе в този урок, внедряването на ACRA е много лесно и изисква само няколко бързи стъпки.

Добавете зависимост

Първо, трябва да включим библиотеката като зависимост по един от следните начини:

  • Като .jar файл в папката / libs.
  • Като зависимост от 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, която може да бъде визуализирана тук .

За да видите данните, влезте със следните идентификационни данни:

  • Потребителско име: medo
  • Парола: acraexample

Алтернативи на ACRA

ACRA не е единствената опция за автоматизирано отчитане на грешки в Android. Тъй като сривовете непременно ще се случат, има голям пазар за бизнес за разработчици (B2D), който се опитва да осигури приходи от тяхната резолюция.

Критерицизъм например е много зряла платформа за докладване на сривове. Изглежда страхотно, предлага куп възможности за анализ на данни и е много лесен за интегриране. Единственият недостатък: цена , а безплатният пробен период е доста ограничен по отношение на броя на активните потребители, дни на задържане на данни и поддръжка). BugSense е подобна услуга.

Според мен обаче Crashlytics е превъзходно решение. Доскоро Crashlytics имаше модел freemium (с платен премиум ниво); но сега (след тяхното придобиване от Twitter ), всички предишни премиум функции са достъпни за Безплатно . Няма разходи за използване, такси или ограничения. Това е предпочитаното средство за докладване на грешки за много високопоставени и високопоставени компании и разработчици, тъй като е много лесно за използване и предлага мощни инструменти за анализ и визуализация. Той дори се интегрира с най-популярните IDE като плъгин (например Eclipse, Android Studio), така че добавянето на Crashlytics към вашето приложение е толкова просто, колкото избирането на проект и натискането на бутон. Тези приставки също ви позволяват да проследявате отчети за сривове от вашата IDE, без да се налага да отваряте браузър.

И така, защо да използваме ACRA тогава, когато има други алтернативи, които изглеждат много по-добре и предлагат повече функции за същите усилия за внедряване? Ще ви дам две причини.

  1. Всички тези други опции са затворен код, патентован софтуер . Дори и с кошница, пълна с EULA, не можете да сте сигурни точно как Вашите данни се събират и обработват. От друга страна, ACRA и acralyzer са проекти с отворен код, хоствани на GitHub, които можете лесно да разклоните и приспособите към вашите нужди.

  2. Мобилност на данните . Да приемем, че не сте доволни от Cloudant. Лесно е да репликирате и мигрирате данните си в друг back-end. Гарантирате, че данните остава твоя .

Както при много възможности за избор, и този се свежда до личните предпочитания и познаване. Вижте този Google+ конец за повече дискусия относно различните налични алтернативи, за да направите приложението си по-надеждно.

В заключение

ACRA е изключително здрава и изключително адаптивни библиотека, която може да се използва заедно с Cloudant и acralyzer за постигане на безплатни, автоматизирани отчети за сривове и основни анализи за вашето приложение, всичко това за минимални усилия за внедряване.

Писането на надежден Android код изисква много опит и предвидливост, но никой от нас не е наистина всезнаещ. Бъдете подготвени за неочакваните сривове и грешки и бъдете готови да го направите поправяне неочакваното възможно най-скоро. Това е вид работа, която се влага в страхотни продукти и страхотно потребителско изживяване.

Свързани: Направете приложението си печелившо - Използвайте мобилния анализ

ICO, екзотика и платформи - перспектива на вътрешния човек за бъдещето на рисков капитал

Финансови Процеси

ICO, екзотика и платформи - перспектива на вътрешния човек за бъдещето на рисков капитал
Оценка на разходите за софтуер в гъвкаво управление на проекти

Оценка на разходите за софтуер в гъвкаво управление на проекти

Технология

Популярни Публикации
Широки срещу тесни набори от умения: Демистифицирани умения за софтуерно инженерство
Широки срещу тесни набори от умения: Демистифицирани умения за софтуерно инженерство
Талантът не е стока
Талантът не е стока
iOS 9 Betas и WatchOS 2 за разработчици
iOS 9 Betas и WatchOS 2 за разработчици
Ръководство за многообработващи мрежови сървърни модели
Ръководство за многообработващи мрежови сървърни модели
Как да създадете персонализирани шрифтове: 7 стъпки и 3 казуса
Как да създадете персонализирани шрифтове: 7 стъпки и 3 казуса
 
Настройка на производителността на базата данни на SQL за разработчици
Настройка на производителността на базата данни на SQL за разработчици
Събуждане на спяща индустрия: Нарушаване на индустрията на матраците
Събуждане на спяща индустрия: Нарушаване на индустрията на матраците
Figma срещу Sketch срещу Axure - Преглед, основан на задачи
Figma срещу Sketch срещу Axure - Преглед, основан на задачи
Разбиране на нюансите на класификацията на шрифтовете
Разбиране на нюансите на класификацията на шрифтовете
Възраст преди красотата - Ръководство за дизайн на интерфейси за възрастни възрастни
Възраст преди красотата - Ръководство за дизайн на интерфейси за възрастни възрастни
Популярни Публикации
  • е корпорация, считана за еднолично дружество
  • какво е функционално програмиране javascript
  • настройка на производителността в sql server 2008 стъпка по стъпка
  • s corp или c corp разлика
  • как да получите информация за нечия кредитна карта
  • изучаване на C++ програмиране
Категории
  • Agile Talent
  • Дизайнерски Живот
  • Възходът На Дистанционното
  • Рентабилност И Ефективност
  • © 2022 | Всички Права Запазени

    portaldacalheta.pt