Po co nam usługi Google Play?

Paweł Dedio Programowanie 2019-02-16

Witajcie w kolejnym odcinku. Jakiś czas temu Adam napisał artykuł rozjaśniający nieco temat usług Google Play. Temat Was bardzo zainteresował i w komentarzach wywiązała się ciekawa dyskusja na ten temat. Ja chciałbym opisać sprawę od nieco innej strony. Dowiecie się, jak wygląda kontakt z Usługami Google z perspektywy programisty i po co one nam potrzebne.

Usługi Google Play — kilka formalności

Jeśli ktoś jest zainteresowany szerszym opisem co to takiego, to odsyłam do przytoczonego już przeze mnie artykułu AdamaTutaj chciałbym przytoczyć tylko najważniejsze informacje. Google Play Services jest aplikacją Google umożliwiającą korzystanie z ich usług takich jak na przykład mapy, powiadomienia push i tak dalej. W przeciwieństwie do systemu Android, aplikacja ta nie jest otwartoźródłowa, dlatego nie wiemy o jej wszystkich funkcjonalnościach. Jest to również bardzo specyficzny rodzaj programu, ponieważ bardzo często jest on zainstalowany domyślnie oraz posiada wiele uprawnień, również tych mocno ingerujących w naszą prywatność.

Dlaczego niektóre aplikacje wymagają instalacji Usług Google Play?

Nieraz natrafiłem na podobne pytania, przeważnie w formie zarzutu, że programiści robią to celowo, aby szpiegować użytkowników. Jest w tym ziarenko prawdy, bo Usługi Google Play są wymagane do implementacji narzędzi analitycznych Google. Jednak jak mogliście się przekonać w odcinku o śledzeniu użytkowników, programiści nie mają dostępu do naszych prywatnych danych. Co więcej, jeśli chodziłoby tylko o szpiegowanie, to programiści mogliby użyć narzędzia jakiejś innej firmy, bez potrzeby wymuszania posiadania usług Google Play. No dobrze, więc jeśli nie do śledzenia, to po co niektóre programy wymuszają instalację tej aplikacji?

Odpowiedź przewinęła się już w poprzednim akapicie. Aplikacja ta jest czymś w rodzaju pośrednika pomiędzy serwisami Google. Tak więc, jeśli chcecie zintegrować w swojej aplikacji mapy, powiadomienia push czy Captche, to musicie skorzystać do tego z Usług Google Play, lub wybrać konkurencyjne rozwiązania od innych dostawców.

Jak wygląda wykorzystanie Usług Google Play przez programistów?

Jak powszechnie wiadomo Google to nie tylko Android. Firma ta jest znana z wielu swoich świetnych serwisów, takich jak YouTube, Mapy, Google Analytics i multum innych. Programiści w swoich aplikacjach bardzo często korzystają z tych usług. W niektórych przypadkach mogliby integrować się ręcznie z API Google (zobacz odcinek: W jaki sposób aplikacje pobierają dane z zewnętrznych serwisów i czym jest API?)jednak jest to mocno upierdliwe rozwiązanie. Zamiast tego możemy wykorzystać biblioteki przygotowane przez Google, które upraszczają całą komunikację i zostawiają programiście absolutne minimum pracy.

Jak to wygląda w praktyce? Zamiast łączyć się bezpośrednio z serwerami Google, my przekazujemy niezbędne informacje bibliotekom Google i one same zajmują się autentykacją, zarządzaniem sesją, wykonywaniem niezbędnych zapytań i tak dalej. My możemy skupić się na ważniejszych sprawach. Takie podejście eliminuje również liczbę możliwych błędów do popełnienia. Nic więc dziwnego, że programiści w większości przypadków wybierają wygodę i korzustają z bilbiotek Google.

Usługi Google Play — dlaczego budzą takie kontrowersje?

Wspomniane kontrowersje występują nie tylko w środowisku użytkowników Androida, ale także wśród programistów. Użytkownicy krytykują nie do końca jasne wykorzystanie tej aplikacji. Google niezbyt dokładnie informuje użytkowników, co ta aplikacja tak właściwie robi. Sam to doskonale rozumiem. Nic dziwnego, że aplikacja zużywająca sporo baterii, transferu danych i wymagająca ogromną liczbę uprawnień budzi niepokój wśród użytkowników. 

Z drugiej strony są programiści, którzy znają odpowiedzi na większość pytań zadanych powyżej, mimo to też krytykują Google za tę aplikację — dlaczego? Chodzi o nierówną konkurencję. Ta aplikacja jest zainstalowana na większości smartfonów z Androidem, a dodatkowo większość z nich przydziela jej wszystkie pozwolenia. To już na starcie daje Google niesamowitą przewagę. W swoich aplikacjach mogą korzystać praktycznie z nielimitowanej władzy za pośrednictwem Usług Google Play.

Drugim zarzutem jest nierówny dostęp do zasobów systemowych. Zwykły programista, tworząc swoją aplikację, musi liczyć się z licznymi ograniczeniami dotyczącymi wykonywania zadań w tle lub dostępu do lokalizacji. Tymczasem aplikacja Usługi Google Play działa cały czas.

Jak odzyskać nieco prywatności?

Mało kto wie, ale Usługi Google Play można pozbawić pozwoleń lub całkowicie wyłączyć. Możecie to zrobić, wchodząc w Ustawienia > Aplikacje, następnie odszukać Usługi Google Play i w sekcji Zezwolenia wyłączyć co tylko chcecie. Ostrzegam jednak, że Google będzie Was męczył powiadomieniami za każdym razem, gdy uruchomicie jakąś ich aplikację. Sprawa jest bardzo dziwna, bo tekst powiadomienia informuje nas o tym, że bez odpowiednich uprawnień aplikacje Google nie będą działać poprawnie, jednak okazuje się, że nic takiego się nie dzieje.

Ja u siebie mam włączoną jedynie lokalizacje oraz dostęp do kontaktów i nie zauważyłem problemów z działaniem żadnej z aplikacji Google, a używam ich naprawdę sporo. Polecam również blokowanie grupy powiadomień, które informują nas o braku pozwoleń. Dzięki temu unikniecie irytujących próśb o przydzielenie dodatkowych uprawnień.

Czy mamy się czego obawiać?

Jak powszechnie wiadomo, system Android jest projektem otwartoźródłowym. Każdy może podejrzeć jego kod, dzięki czemu jest mało prawdopodobne, że znajdą się w nim jakieś niebezpieczne porcje kodu. Przeciwieństwem są właśnie Usługi Google Play, ponieważ ich kod nie jest nigdzie publikowany. Ten artykuł nie ma na celu oczernianie tej aplikacji, ponieważ nie ma żadnych dowodów na jej niebezpieczne działanie. Chcę jednak uświadomić użytkowników, że na ich urządzeniach działa aplikacja mająca domyślnie dostęp praktycznie do wszystkiego, tak więc warto przemyśleć odebranie jej kilku pozwoleń w celu lepszej ochrony prywatności.

Może dzięki zwiększeniu świadomości użytkowników Google w końcu zacznie lepiej wyjaśniać użytkowników, dlaczego potrzebują tej aplikacji. Ponieważ opis w sklepie Play jest dość skromny i pomija sporo ważnych aspektów.

Czy da się żyć bez Usług Google Play?

Istnieje wiele ROMów, które nie posiadają w ogóle aplikacji od Google w tym także Usług Google Play. Jednak należy sobie odpowiedzieć na pytanie, czy jesteśmy w stanie bez nich żyć? Załóżmy jednak, że jesteś gotowy zrezygnować ze wszystkich aplikacji Google po to, by nie marnować niepotrzebnie zasobów swojego telefonu na zbędne procesy. Musisz być jednak świadomy, że oprócz aplikacji Google, możesz stracić też dostęp do wielu innych, całkowicie niezależnych aplikacji.

Tak jak wspomniałem wyżej, aplikacje korzystające z usług Google takich jak mapy, powiadomienia push itp. łączą się z nimi za pomocą Usług Google Play. Jeśli nie znajdują się one na Twoim urządzeniu, będziesz zdany na łaskę programistów. Jeśli nie założyli oni takiego scenariusza, w ogóle nie będziesz w stanie uruchomić aplikacji, w przeciwnym wypadku zostaniesz pozbawiony niektórych funkcjonalności aplikacji.

Odpowiadając na zadane pytanie, da się pozbyć całkowicie aplikacje Google, jednak korzystanie z systemu Android będzie wtedy mocno utrudnione. W Internecie wiele razy natrafiałem na ludzi zadających podobne pytanie. Bardzo często pojawiała się tam odpowiedź mówiąca, że jeśli nie chcesz mieć aplikacji Google, to powinieneś wybrać inny system operacyjny. Muszę przyznać, że jest w tym sporo prawdy, ponieważ ekosystem Google jest mocno związany z Androidem i ciężko się go pozbyć bez większych kompromisów. Z drugiej strony rozumiem też motywacje Google — tworzą oni otwarty system i nic dziwnego, że chcą w nim zarabiać za pośrednictwem swoich aplikacji.

To już koniec na dzisiaj, dzięki za dotrwanie do końca! Zachęcam do pisania komentarzy z propozycjami kolejnych tematów. Widzimy się za tydzień, gdzie opiszę, jak działa aplikacja Shazam. Do zobaczenia!

Zapraszam również na największe w Polsce forum dla programistów Android. Jeśli macie pytania odnośnie do kariery programisty — zapraszam do działu Kariera programowanie. Zachęcam również do przejrzenia działu Praca oraz zlecenia dla programistów — być może to właśnie tam znajdziesz swoją pierwszą pracę.

Poprzednie odcinki:

  1. Typowy dzień pracy programisty
  2. Wady pracy programisty
  3. Zalety pracy programisty
  4. [FAQ] Wszystko, co powinieneś wiedzieć, jeśli interesuje Cię praca programisty
  5. Co mnie zdziwiło w programowaniu?
  6. Motywacje – w jaki sposób nie stracić zapału do programowania?
  7. Jaką firmę wybrać na początku kariery programisty?
  8. Jak wygląda rozmowa o pracę na stanowisko programisty?
  9. Jak zacząć programować?
  10. Skąd czerpać wiedzę o programowaniu?
  11. Początki programowania — jaką technologię wybrać?
  12. Cykl życia aplikacji na Androida — co to takiego?
  13. Jak tworzymy interfejs użytkownika w aplikacjach na Androida?
  14. Jak system Android oszczędza energię?
  15. Jak działają i czym są powiadomienia push w Androidzie?
  16. W jaki sposób aplikacje pobierają dane z zewnętrznych serwisów i czym jest API?
  17. Jak działają pozwolenia w systemie Android?
  18. Śledzenie użytkowników — co wiedzą o nas aplikacje?
  19. Dlaczego aplikacje na Androida zajmują coraz więcej miejsca?
  20. Frameworki crossplatform – jak stworzyć aplikację na iOS i Androida jednocześnie?
  21. Jak obsłużyć kilka języków w aplikacji na Androida?
  22. Dodatkowe funkcjonalności Androida, których nikt nie wspiera
  23. Co się dzieje podczas kompilacji aplikacji na Androida?
  24. AppBundle — jak Google rewolucjonizuje Androida?
  25. W jaki sposób testujemy aplikacje na Androida?
  26. Jak zabezpieczamy aplikacje na Androida?
  27. Początki programowania na Androida — Java czy Kotlin?
  28. Główne zasady programowania — o tym musisz pamiętać!


  • No wygląda na to, że autor nie zna się zbytnio na rzeczy, o której próbował pisać. Jest coś takiego jak MIcroG. Jeden z moich telefonów działa na czystym LOS bez appek gógla, w tym tych Google Services. Problemy z GPS i ogólnie usługami lokalizacyjnymi załatwia wspominany MicroG, który jest otwartą alternatywą dla tych usług od gógla. Mając to powyższe na uwadze, mam zainstalowany Youtube Vanced jak moduł Magisk’a, który bez problemu działa mimo braku usług gógla. Podobnie mam z Google Translate i Google Street View. Mapy od Gógla również działają bez Google Services, choć tutaj akurat używam OSMand+ . Także jak widać, nawet te appki od gógla mogą się obejść bez Google Services. Cześć aplikacji, np. Signal chce się rejestrować w Google Cloud Messaging, i MicroG bez problemu im to umożliwia, przez co i powiadomienia PUSH działają.

  • Flaqs

    Pawle, często prosisz o sugestie tematow na przyszłe artykuły. Wczoraj siedząc w Android Studio i przerabiając kolejną lekcję kursu przyszło mi do głowy pytanie. Tworzyłem jakis layout i pomyślałem „czy programiści tworzą cokolwiek z oprawy graficznej aplikacji czy dostają gotowe layouty, które muszą zaprogramować według specyfikacji danego projektu?” Jak wygląda podział obowiązków przy realizacji danego projektu jeśli chodzi o programistów i innych czlonków zespołu? Mógłbyś napisać coś na ten temat? Coś w stylu: za co odpowiada programista? Trochę zaczepiłeś ten temat w pierwszym artykule z serii, ale może da się to jeszcze rozszerzyć? 🙂

    • Paweł Dedio

      Wybacz za późną odpowiedź. Miałem w planie odcinek pokazujący proces powstawania aplikacji mobilnej dla zewnętrznego klienta. Myślę, że to świetna okazja, aby odpowiedzieć na zaproponowane przez Ciebie pytania.

  • Oczywiście Google Play service to jeszcze bramka dla Googla gdzie mogą dodawać nowe opcje dla systemu bez jego aktualizacji

  • maxprzemo83

    Bez Usług Google Play nie zrobimy kopi zapasowej kontaktów, smsów, historii połączeń. Nie wykona się też kopia zapasowa zdjęć. Nie zapiszą się hasła. Nie będzie działać logowanie dwuskładnikowe. Nie będzie działać funkcja „Znajdź moje urządzenie”. Nie zadziała asystent google. Nie będzie działał sklep Google Play. Nie zadziałają kupione aplikacje bo nie będą mogły zweryfikować licencji. I nie zadziała jeszcze dużo, dużo więcej funkcji telefonu. Usługi Google Play właśnie po to potrzebują tyle uprawnień. Więc nie ma co narzekać na tą aplikację bo jest ona dla naszej wygody bardzo potrzebna.

    • Poza sklepem niewielka strata, zresztą można robić bakapy na kartę pamięci albo do innej chmury.

      • maxprzemo83

        Poza sklepem niewielka strata

        Zależy dla kogo. Dla mnie brak płatności NFC było by dużą stratą.

        zresztą można robić bakapy na kartę pamięci

        No przydatne, jak zgubisz telefon albo ci go ukradną 😉

        albo do innej chmury.

        Chmury nie działają tak kompleksowo i na zasadzie „Raz ustaw i zapomnij”.

    • „Jak to nie zrobisz kopi zapasowej kontaktów? Wchodzisz w dialer’a i tam jest eksport kontaktów.

      Backup SMS’ów? Każda appka od sms’ów to umożliwia. Jeśli korzystasz z Signal, to jeszcze masz w prezencie szyfrowaną kopię.

      Historią połączeń nigdy sobie głowy nie zawracałem, to nawet nie wiem czy się da to wyeksportować.

      Kopię zdjęć sobie możesz rozwiązać zgrywając je na dysk kompa albo zaprzęgając do tego usługę mega, która monitoruje poszczególne katalogi i wysyła ich zawartość do tego serwisu automatycznie jak tylko się pojawi nowy plik, niekoniecznie fotka.

      Zapisywać hasła online? To proszenie się o kłopoty — używaj keepass’a… Logowanie dwuskładnikowe nie będzie działać? Zainteresuj się andOTP.

      Problemy z usługą „Znajdź moje urządzenie”? Ile razy z niej korzystałeś? Ja ani razu odkąd mam smartfona. A gdy faktycznie będziesz chciał zlokalizować to urządzenie, to zwykle nie będzie to możliwe, zakładając, że ktoś to urządzenie znalazł i odciął mu kontakt z siecią. Późniejszy reset tego urządzenia sprawia, że ta usługa już go nie namierzy nigdy. Więc jeśli stracisz ten telefon, to nie licz na wiele…

      Asystent google? Nie wiem co to.

      Sklep Google Play? Jeśli ktoś potrafi używać F-droid/Yalp Store, to żadna strata.

      „Nie zadziałają kupione aplikacje bo nie będą mogły zweryfikować licencji” — no w końcu jakiś rozsądny argument, choć ja tam nigdy jeszcze żadnej appki w sklepie Google nie kupiłem…

      „I nie zadziała jeszcze dużo, dużo więcej funkcji telefonu” — polemizowałbym.

      „Więc nie ma co narzekać na tą aplikację bo jest ona dla naszej wygody bardzo potrzebna.” — jak wyżej. 😀

      • maxprzemo83

        Jedna aplikacja do kontaktów (login, hasło).
        Druga do sms (lagin, hasło).
        Trzecia aplikacja do haseł (login, hasło).
        Itd itp.
        Ile szans na wyciek danych? Moim zdaniem bezpieczniej trzymać te dane kompleksowo w jednym miejscu u zaufanego partnera. Google nie miało nigdy jakiś wielkich wycieków danych (chociaż nigdy nie mów nigdy) dlatego wierzę że w połączeniu z weryfikacją dwuetapową to w miarę bezpieczne miejsce.
        Ps. Czytam twój blog Morfikov 😉 Pozdrawiam.

        • Backup robiony lokalnie, zostaje lokalnie, bez znaczenia z ilu aplikacji korzystasz i nie musisz się obawiać o wyciek danych. Jeśli ci przeszkadza fakt używania wielu aplikacji, to możesz zrzucić sobie wszystkie dane za pomocą trybu recovery. Czasami stock recovery to umożliwia. Dla pozostałych jest TWRP. Mając na uwadze powyższe, rozwiązanie tworzenia backupu lokalnie ma tę przewagę nad tym robionym zdalnie, że nie polegasz na podmiotach trzecich i nie zdajesz się na ich łaskę lub niełaskę. Ja bym nie nazwał Google zaufanym partnerem i staram się mu udostępniać najmniej danych jak tylko mogę i gdzie tylko mogę, zwłaszcza, gdy on przekazuje zebrane dane służbom mundurowym na ich życzenie i zbytnio się przed tym nie broni (pisali już o udostępnianiu skrzynek pocztowych na gmail). Jeśli teraz bym jeszcze przekazywał im całą aktywność telefonu, to nietrudno domyślić się czym tego typu podejście się skończy. Dlatego mój telefon nie ma ani tego całego zestawu aplikacji od gógla ani też żadnych Google services i działa bez zarzutu. Jeśli zaś chodzi o te pojedyncze appki, to moje główne konto google (na kompie) nie jest tym, które mam w telefonie. 😀 Do poczty mam K9-mail’a, który bez problemu obsługuje wiadomości PUSH, no i też wspiera szyfrowanie GPG/PGP.

  • Михаил Цокеман

    Czy można żyć bez usług Google? A można, jak najbardziej, jeszcze jak!
    Polecam zapoznać się z ideą nogaaps i poradnikiem jak ogarnąć microG https://shadow53.com/android/no-gapps/setup-guide/microg/

    P.S Autentykacja – piękne staropolskie słowo spotykane już u Wincentego Kadłubka oraz Koronie Królów 🙂

    • Paweł Dedio

      Ehh wpadłem z ta autentykacją, zboczenie programisty. Chociaż to słowo jest na tyle powszechne, że pewnie niedługo znajdzie się w słowniku języka polskiego.

    • maxprzemo83

      Dla mnie to sztuka dla sztuki. Nic nie działa jak powinno. Google zmienia co chwilę API usług więc aplikacja chwilę działa a potem się sypie.

  • Rataj23

    Temat ten jest przerabiany od kilku lat, co jakiś czas nie wiem dlaczego wraca on na ten portal co jest kompletnie bez sensu, Google tak stworzył swój system że usługi Google Play to integralna jego część, co prawda może androida używać bez tych usług ale dla większości użytkowników było by to bardzo frustrujące i nie wygodne

    • Paweł Dedio

      Faktycznie temat wałkowany wielokrotnie, lecz cały czas wywołuje dyskusje. W tym artykule chciałem pokazac, dlaczego niektore aplikacje wymagają Uslug Google Play, ponieważ sporo ludzi o to pyta.
      Co do integralności UGP z Androidem to w pełni się z tobą zgadzam!



x