Perus-Android-sovelluksen tekeminen on helppoa. Luotettavan, skaalautuvan ja vankan Android-sovelluksen tekeminen toisaalta voi olla melko haastava .
Kanssa tuhansia käytettävissä olevista laitteista, jotka pumpataan tonnilta eri valmistajilta, olettaen, että yksi koodi toimii luotettavasti puhelimissa, on parhaimmillaan naiivi.
Segmentointi on suurin kompromissi avoimen alustan käytöstä, ja maksamme hinnan koodin ylläpitovaluutassa, joka jatkuu kauan sen jälkeen, kun sovellus on läpäissyt tuotantovaiheen.
Joten mitä tapahtuu, kun Android-sovellus kaatuu tai siitä tulee ei reagoi ? No, Pakota sulje -valintaikkuna avautuu ja kertoo käyttäjälle, että jokin on mennyt pieleen. Jos sovellus ladattiin Google Playn kautta, käyttäjää pyydetään ilmoittamaan kaatumisesta lähettämällä yksityiskohtainen Android-kaatumisraportti (mukaan lukien aika, puhelimen malli, Android-versio, pinon jäljitys jne.), Jota sinä (kehittäjä) voit tarkastella kehittäjäkonsolista, jonka avulla voit korjata syyllisen virheen.
Kaikki tämä kuulostaa hyvältä - mutta Androidin oletusvirheraportoinnissa on suuri ongelma: käyttäjät eivät yleensä käytä sitä, jättäen kehittäjät tuntemattomiksi sovellustensa tilasta.Kaikki tämä kuulostaa erittäin hyvältä - mutta Androidin oletusvirheraportoinnissa on suuri ongelma: käyttäjät yleensä ei ryhtyä toimiin, kun heidän sovelluksensa kaatuu; itse asiassa suurin osa valitsee olla lähettämättä Android-virheraporteissa. Kuinka sitten, voitko a tunnollinen kehittäjä , saada luotettavaa tietoa sovelluksesi kaatumisista ja epäonnistumisista?
ACRA tarkoittaa 'Automaattinen kaatumisraportointi Androidille'. Se on ilmainen kirjasto, jonka avulla voit ratkaista manuaalisen virheilmoituksen ongelman muutamalla rivillä koodia. Kun olet ottanut kirjaston käyttöön ja kaikki on alustettu oikein, voit purkaa samat Android-virhelokit kuin Google-oletusarvo (ja joukko lisättyjä mukautusvaihtoehtoja) automaattisesti ja ilman käyttäjän toimia.
Tämän lisäksi ACRA antaa sinun valita, miten haluat ilmoittaa käyttäjälle Android-kaatumisesta, oletusarvoisesti hiljainen taustaraportti ja vaihtoehdot, mukaan lukien räätälöidyt valintaikkunat.
Viime aikoihin asti ACRA: ta tuki Google Spreadsheet, mikä tarkoitti sitä, että pystyit saamaan kaikki raporttisi yhtenä tiedostona, jota isännöitiin ilmaiseksi Google Drive -tililläsi. Valitettavasti Google pyysi, ettemme käytä tätä vaihtoehtoa tulevaisuudessa, joten meillä on jäljellä pari vaihtoehtoa kaatumisraporttitietojen lähettämiseen, joista joitain käsittelemme tässä opetusohjelmassa:
Tässä artikkelissa analysoimme yhtä näistä ratkaisuista: ACRA-raporttien isännöinti a Pilvistä taustaa ja tietojen visualisointi kanssa akralysaattori .
Ensimmäinen asia, joka meidän on tehtävä, on rekisteröidy Cloudant-tili. Tietysti on saalis: Cloudantin palvelut eivät ole täysin ilmaisia, mutta niiden mukaan hinnoittelusivu on erittäin epätodennäköistä, että ylität kuukausittaisen 5 dollarin rajan (ellei sinulla ole valtavaa käyttäjäkantaa ja paljon virheitä koodissasi).
Kun olemme rekisteröityneet, meidän on ymmärrettävä, miten asiat toimivat. Korkealla tasolla taustamme koostuu kahdesta osasta:
Jotta taustamme toimisi oikein, meidän on määritettävä nämä kaksi komponenttia. Teoriassa voisimme rakentaa tietokannan ja sovelluksen lähteestä ja käytä sitten työkalua niiden sijoittamiseen taustapohjaamme - mutta ACRA: n hyvät ihmiset ovat jo tehneet sen meille. Joten helpoin tapa on kopioida etätietokanta ja etäsovellus.
Mennään eteenpäin ja kopioidaan tyhjä ACRA CouchDB:
Siksi olemme onnistuneesti kopioineet tietokannan raporttien tallentamista varten. Seuraavaksi meidän on kopioitava acralyzer CouchApp, jotta voimme visualisoida tiedot:
Huomautus : acralyzer-sovelluksen kopiointi on valinnaista. Et tarvitse sitä, jos olet vain kiinnostunut tallentamaan Android-kaatumisraportin tietojen visualisoinnin sijaan (tarkastelemme tarkemmin akralysaattoria tämän Android-opetusohjelman seuraavassa osassa). Jos sinusta tuntuu tarpeeksi luottavaiselta JavaScript-taidoillasi, voit jopa kirjoittaa oman analyysisovelluksesi! Mutta se ei kuulu tämän blogikirjoituksen piiriin.
Alkuasetusten viimeinen vaihe on lisätä suojausoikeudet. Cloudant tarjoaa oman suojaustasonsa CouchDB: n kautta tarkemmin yksilöllisten oikeuksien hallinnassa, joten jotta voimme kirjoittaa raportin tietokantaan, meidän on luotava käyttäjätili, jolla on kirjoitusoikeudet:
Kun kopiointi on tehty, acralyzer-kojelautaan pääsee helposti seuraamalla https://{myapp}.cloudant.com/acralyzer/_design/acralyzer/index.html#/dashboard
. Myönnän: se ei ole kaunein analyysityökalu, mutta se palvelee tarkoitustaan.
Ylävalikosta voit valita minkä tietokannan haluat visualisoida (on mahdollista isännöidä useita tietokantoja eri sovelluksille yhdessä projektissa; tämä vaikuttaa käyttökiintiöösi) ja esikatsella pääkojelaudan tietoja. Voit esimerkiksi:
Huomaa, että visualisoitavissa olevat Android-kaatumismittarit riippuvat raporteista, jotka päätämme lähettää sovelluksestamme. ACRA tarjoaa erilaisia raporttikentät , joista jotkut voivat olla kooltaan melko suuria tai joilla ei ole mitään merkitystä virheenkorjauksen kannalta. Useimmissa projekteissa vaaditut raporttikentät ovat riittävät. Nämä sisältävät:
Kuten aiemmin mainittiin tässä opetusohjelmassa, ACRA: n käyttöönotto on erittäin helppoa ja vaatii vain muutaman nopean vaiheen.
Ensinnäkin meidän on sisällytettävä kirjasto riippuvuudeksi jollakin seuraavista tavoista:
Maven-riippuvuutena:
ch.acra acra X.Y.Z
Gradle-riippuvuutena:
compile 'ch.acra:acra:X.Y.Z'
Seuraavaksi meidän on lisättävä projektiimme Android-sovellusluokka (tai päivitettävä olemassa oleva luokka, koska ilmentymiä voi olla vain yksi) ja ilmoitettava se AndroidManifest.xml-tiedostossa:
...
Ja aseta ACRA siellä:
@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); } }
Se siitä! Tietenkin sinun on korvattava kaikki {myapp} -paikkamerkit todellisilla arvoilla sekä formUriBasicAuthLogin
ja formUriBasicAuthPassword
.
Kuten yllä olevasta koodinpätkästä näet, käytämme vain vaadittuja raporttikenttiä. Lisää vapaasti muita kenttiä, jotka voivat olla merkityksellisiä sovelluksellesi.
Voit myös käyttää PUT: n sijaan PUT: ta. Tällöin REPORT_ID
lisätään former
: n loppuun parametrina.
Lopuksi voit myös valita, miten käyttäjälle ilmoitetaan Android-sovelluksen kaatumisesta oletusarvoisesti hiljainen taustaraportti. Meidän tapauksessamme päätämme näyttää Toast-viestin, joka kertoo käyttäjälle, että kaatumisesta on ilmoitettu ja virhekorjauksen pitäisi olla saatavilla pian.
Jos haluat nähdä ACRA: n toiminnassa, olen määrittänyt acra_example repo GitHubissa. Siinä on yksinkertainen sovellus, joka alustaa ACRA: n käynnistyksen yhteydessä, ja kaatetaan se painamalla painiketta (joka laukaisee sitten tyhjän osoittimen poikkeuksen). Kaatumistiedot lähetetään esimerkkiin Cloudant-tietokannasta, joka voidaan visualisoida tässä .
Voit tarkastella tietoja kirjautumalla sisään seuraavilla tunnistetiedoilla:
ACRA ei ole ainoa vaihtoehto automaattiseen Android-virheraportointiin. Koska kaatumiset tapahtuvat varmasti, siellä on iso yritys-kehittäjä (B2D) -markkinat, jotka yrittävät ansaita rahaa ratkaisuistaan.
Kriittisyys Esimerkiksi on erittäin kypsä foorumi kaatumisraportointiin. Se näyttää hyvältä, tarjoaa joukon vaihtoehtoja tietojen analysointiin ja on erittäin helppo integroida. Ainoa haittapuoli: hinta , ja ilmainen kokeilu on melko rajoitettu aktiivisten käyttäjien määrän, päivien tietojen säilyttämisen ja tuen suhteen). BugSense on samanlainen palvelu.
Mielestäni kuitenkin Crashlytics on erinomainen ratkaisu. Viime aikoihin asti Crashlyticsilla oli freemium-malli (maksetulla palkkatasolla); mutta nyt (heidän jälkeen Twitterin hankinta ), kaikki aikaisemmin premium-ominaisuudet ovat saatavilla verkkotunnukselle vapaa . Käyttökustannuksia, maksuja tai rajoituksia ei ole. Tämä on suositeltava tapa virheraportointiin monille korkean profiilin ja korkean tason yrityksille ja kehittäjille, koska se on erittäin helppo käyttää ja tarjoaa tehokkaita analytiikka- ja visualisointityökaluja. Se integroituu jopa suosituimpien IDE-tiedostojen kanssa laajennuksena (esim. Eclipse, Android Studio), joten Crashlyticsin lisääminen sovellukseesi on yhtä helppoa kuin projektin valitseminen ja painikkeen painaminen. Näiden laajennusten avulla voit myös seurata IDE: n kaatumisraportteja avaamatta selainta.
Joten miksi käyttää ACRAa, kun siellä on muita vaihtoehtoja, jotka näyttävät paremmilta ja tarjoavat enemmän ominaisuuksia samalle toteuttamiselle? Annan sinulle kaksi syytä.
Kaikki nämä muut vaihtoehdot ovat Suljettu lähdekoodi, oma ohjelmisto . Vaikka kori olisi täynnä EULA-sopimuksia, et voi olla varma siitä Miten tietosi kerätään ja käsitellään. Toisaalta ACRA ja acralyzer ovat GitHubissa isännöityjä avoimen lähdekoodin projekteja, joita voit helposti haarautua ja räätälöidä tarpeisiisi.
Datan liikkuvuus . Oletetaan, että et ole tyytyväinen Cloudantiin. On helppoa kopioida ja siirtää tietosi toiseen käyttöjärjestelmään. Voit taata, että tiedot pysyy sinun .
Kuten monien valintojen kohdalla, tämäkin johtuu henkilökohtaisista mieltymyksistä ja perehtyneisyydestä. Katso tämä Google+ lanka lisää keskustelua erilaisista vaihtoehdoista sovelluksen luotettavuuden parantamiseksi.
ACRA on erittäin kestävä ja erittäin muokattavissa kirjasto, jota voidaan käyttää Cloudantin ja acralyzerin rinnalla maksuttoman, automatisoidun kaatumisraportoinnin ja sovelluksen perusanalytiikan saavuttamiseksi.
Luotettavan Android-koodin kirjoittaminen vaatii paljon kokemusta ja ennakointia, mutta kukaan meistä ei ole todella kaikkitietävä. Ole valmis odottamattomiin kaatumiin ja virheisiin ja ole valmis siihen korjata odottamaton mahdollisimman pian. Se on sellainen työ, joka menee upeisiin tuotteisiin ja upeisiin käyttökokemuksiin.
Liittyvät: Tee sovelluksestasi kannattava - Hyödynnä mobiilianalytiikkaa