Aceasta aplicatie urmareste modificarile pe targetSDK din aplicatiile dvs. Incepand cu 1 noiembrie 2018, Google cere ca toate actualizarile aplicatiei sa vizeze cel putin 26 (28 este cea mai recenta).
Ideea din spatele acestui proiect a fost de a facilita vizualizarea aplicatiilor care sunt „voluntare” actualizate periodic si a celor care rezista pana in ultima secunda. Personal sunt un fan al Inspectorului de aplicatii, cu descarcari de peste 100.000 de kilograme, interfata simpla si informatii excelente. Cu toate acestea, am avut 3 probleme:
- Timp foarte lung de incarcat cand aplicatia este deschisa;
- Nici o cautare sau mod de a gasi ceea ce doriti;
- Fara design material.
Pe baza acestui fapt, am creat o aplicatie imbunatatita, cu tot ce are Inspectorul de aplicatii si multe altele. SDK Monitor memoreaza in cache totul folosind Room, astfel incat timpul de incarcare este REAL . De asemenea, foloseste emisiunile implicite (acolo unde sunt disponibile) pentru a tine evidenta automata a instalarilor, actualizarilor si stergerilor aplicatiei. Android Oreo le-a eliminat (cu exceptia stergerii), astfel incat aplicatia are optiunea de a utiliza WorkManager pentru a prelua periodic periodic in fundal pentru aceste modificari. De fiecare data cand valoarea tinta SDK pentru o aplicatie este modificata, aplicatia va afisa o notificare push.
Aceasta aplicatie prezinta, de asemenea, urmatoarele biblioteci Jetpack care lucreaza impreuna: Room, ViewModel, WorkManager, DataBinding si Navigation.
Aplicatia este in prezent in versiune beta, puteti descarca apk-ul aici:
DESCARCARE APK
Capturi de ecran
Introducere
Caracteristici
Aceasta aplicatie contine urmatoarele ecrane:
- O lista a tuturor aplicatiilor instalate care au fost descarcate din Magazin Play.
- O vizualizare a setarilor, care permite utilizatorului sa activeze / dezactiveze sincronizarea automata si sa configureze ceea ce este necesar pentru a avea loc o sincronizare.
- [Eventual] Planul este de a avea un ecran de filtrare (sortare dupa nume / ultima actualizare / valoare targetSDK) si un ecran despre.
Stratul de prezentare
Aceasta aplicatie este o aplicatie cu o singura activitate, cu urmatoarele componente:
- O activitate principala care se ocupa de navigare.
- Un fragment pentru a afisa lista aplicatiilor urmarite in prezent. Acest fragment foloseste arhitectura MvRx si a fost o incantare integrarea cautarii cu baza de date pe modelul de vizualizare.
Aplicatia utilizeaza o arhitectura Model-View-ViewModel (MVVM) pentru stratul de prezentare. Fiecare dintre fragmente corespunde unei vizualizari MVVM. View si ViewModel comunica utilizand RxJava2 si principiile generale generale.
Stratul de date
Baza de date este creata folosind Room si are doua entitati: o aplicatie si o versiune care genereaza tabele SQLite corespunzatoare in timpul rularii. Exista o relatie una cu multe intre ele. PackageName din App este o cheie straina in Versiune. Aplicatia contine eticheta aplicatiei, numele pachetului si culoarea (care va fi afisata in aplicatie, pe baza pictogramei). Versiunea contine versiunea targetSDK, versionName si versionCode.
danna paola desnuda porno gay españoles
gays haciendo el amor inciesto español
sexo muy duro gorditas tetonas
anal maduras españolas rebeca linares masaje
gay se la chupa a hetero corridas a chorro
jovencitos follando con maduras corriendose dentro
porno argumento peliculas porno gay en español
videos pornos de abuelas concursos nudistas
orgias rusas videos porno subtitulados
lesbianas incesto ariana grande porno
mujeres peludas follando trio con mi esposa
comic maduras incesto real xxx
chochitos jovenes incestos lesbicos
folladas en la cocina follada real
rusas desnudas www.sex
porno online corridas en el culo
videos travestis travestis maduras
maduras insaciables pornovideo
madres xxxx asiatica forzada
videos pornos caseros reales muy jovencitas porno
Aplicatia adauga o noua versiune doar cand se modifica targetSDK.
Pentru a informa alte componente cand datele s-au terminat de completat, ViewModel expune un obiect Flowable. Aplicatia foloseste, de asemenea, Koutlin’s Coroutines pentru a face fata unor apeluri de apel.
Cum au fost utilizate componentele
-
MvRx si Epoxy: utilizate pe ecranul principal pentru a prelua si filtra (daca este necesar) lista de aplicatii. Deoarece Epoxy nu a fost creat pentru elementele care se schimba, vizualizarea Setari foloseste Groupie.
-
ViewModel: A Observables.combineLatest va imbina rezultatele din baza de date (care va fi preluata daca este goala) si cautare (care va fi goala atunci cand aplicatia este deschisa pentru prima data). Dupa aceasta, executarea de la MvRx va copia starea pe EpoxyController corect.
-
WorkManager: responsabil pentru sincronizarea automata atunci cand aplicatia este in fundal. Exista doua constrangeri: bateria nu este descarcata si incarcarea dispozitivului .
Biblioteci terte utilizate
- Android-Iconics se ocupa de icoane fara suferinta.
- Componente de arhitectura mentionate mai sus.
- Epoxidic pentru a face RecyclerViews statice cat mai eficiente si mai frumoase posibil.
- Groupie pentru a face RecyclerViews cat mai simplu posibil. Din pacate, este cam depreciat, asa ca s-a facut multa munca folosind Epoxy.
- Coroutine pentru lucrari simple de fundal.
- Jurnalele jurnal care sunt utile si care pot fi dezactivate la lansare.
- material-about-library [in cele din urma] creeaza o pagina despre fara suferinta.
- Dialogurile materiale afiseaza dialogurile intr-un mod simplu si usor.
- Notificati crearea notificarilor fara efort.
- MvRx pe fragmentul principal.
- Stetho depaneaza cu usurinta baza de date.
- timeago faciliteaza afisarea datelor relative (adica acum o zi).
- RxJava se ocupa de MvRx si coordoneaza cea mai mare parte a lucrului pe aplicatie.
- Injectia de dependenta Dagger 2 pentru sharedPreferences cu contextul aplicatiei, ofera instante de baza de date singleton.
Multumiri speciale
O multime de structuri si idei din aceasta aplicatie au venit de la Modificari, care este, de asemenea, open source.
Probleme de raportare
Problemele si cererile de tragere sunt binevenite. Puteti raporta aici.
Licenta
Copyright 2018 Bernardo Ferrari.
Licentiat la Apache Software Foundation (ASF) in conformitate cu unul sau mai multe contracte de licenta pentru colaboratori. Consultati fisierul NOTICE distribuit impreuna cu aceasta lucrare pentru informatii suplimentare cu privire la dreptul de autor. ASF va licentiaza acest fisier sub licenta Apache, versiunea 2.0 („Licenta”); nu puteti utiliza acest fisier decat in conformitate cu licenta. Puteti obtine o copie a Licentei la adresa
http://www.apache.org/licenses/LICENSE-2.0
Cu exceptia cazului in care legislatia aplicabila o impune sau se aproba in scris, software-ul distribuit in baza Licentei este distribuit pe „CA ATARE”, FARA GARANTII SAU CONDITII DE ORICE TIP, fie expres, fie implicit. Consultati licenta pentru limbajul specific care reglementeaza permisiunile si limitarile din licenta.








