Miesięczne archiwum: Grudzień 2014

Czy instalować task killery?

Task killer to aplikacja, która umożliwia zamykanie aplikacji działających w systemie. Przyzwyczajeni z komputerów stacjonarnych chcemy, aby w naszym systemie było jak najmniej aplikacji. Dążymy do tego, abyśmy mieli jak najwięcej dostępnej pamięci. Pojawiło się też dużo aplikacji mających na celu zabijanie wybranych przez użytkownika aplikacji, procesów.

Moim zdaniem nie warto w ten sposób usuwać aplikacji. Dlaczego?

  • zabijając w ten sposób aplikacje zaburzamy ich naturalny cykl. Gra, w którą graliśmy najpewniej nie zapisze stanu rozgrywki, możemy akurat trafić w momencie zapisu danych do pamięci itp. Oczywiście są cykle życia aplikacji, które powinny być przez programistę obsłużone – jednak w przypadku brutalnego zamykania aplikacji po prostu aplikacja jest zamykana…
  • współczesne systemy SAME zarządzają aplikacjami i pamięcią. Jak braknie pamięci, system sam zamknie (w sposób kontrolowany) wybraną aplikację. Naprawdę nie musimy mu pomagać.
  • im więcej aplikacji, tym większa zajętość pamięci, a więc system wtedy częściej zamyka nieaktywne aplikacje. A task killery często zajmują sporo pamięci nie wspominając o tym, że spowalniają działanie całego systemu!
  • poprawnie napisana aplikacja przechodząc w tło powinna zapisać dane tymczasowe, zakończyć wszystkie wątki i zwolnić (o ile to możliwe) wykorzystywaną pamięć (np. usunąć z pamięci bufory, duże obrazki itp). W większości przypadków nie jest ona obciążeniem dla systemu! A to, że jest ona widoczna w systemie jest ZALETĄ, a nie wadą. Po jej ponownym wywołaniu szybciej startuje, jest spora szansa, że wrócimy do tego miejsca, gdzie zakończyliśmy pracę.

Nieetyczne reklamy?

Nieetyczne reklamy

Nieetyczne reklamy mogą nas sporo kosztować

Ostatnio zauważyliśmy znaczną aktywność firm, które zamieszczają reklamy sugerujące, że coś nie tak z naszym telefonem: albo mamy wymaganą aktualizację, albo ileś wirusów z informacją o konieczności przeskanowania telefonu. Pamiętajmy, aktualizacje dokonywane są z poziomu sklepu, a żaden program antywirusowy nie wyświetla swoich komunikatów w miejscu reklam!

A co się stanie jak klikniemy w taką reklamę? Na razie najpewniej nic, po prostu programiści zarobią na kliknięciu w reklamę. My zostaniemy poproszeni o podanie numeru telefonu lub wysłanie SMSa pod określony numer, aby uzyskać aktualizację, odebrać nagrodę lub coś podobnego. Tak naprawdę zapiszemy się do newslettera i będziemy dostawać płatne wiadomości premium! Nasza ciekawość może nas kosztować bardzo dużo.

Czym jest freemium?

Freemium to nowy model biznesowy, w którym aplikacja (bądź gra) jest dostępna bezpłatnie, natomiast dostępne są w niej tzw. mikropłatności, czyli możliwość zakupu pewnych funkcji w danym produkcie. Przykładowo, w grze strategicznej możemy dokupić sobie wirtualnych pieniędzy, oczywiście płacąc naszymi prawdziwymi pieniędzmi.

Na szczęście nowe regulacje w krajach UE wymagają, aby pojawiła się informacja o zakresie kwot, jakie możemy wydać w aplikacji. Informacja ta jest widoczna w sklepie Google Play. Zwracajmy na to szczególną uwagę, ponieważ termin „mikropłatności” często jest mylący, a zakres podawany w sklepie sięga często nawet kilkuset złotych! A do zakupu często wystarczy kilka kliknięć, szczególnie jak mamy wprowadzone dane karty….

Czy reklamy w aplikacjach są konieczne?

Dlaczego reklamy są w aplikacjach? Taki model jest bardzo wygodny dla wszystkich. Twórcy aplikacji zarabiają drobne kwoty za każde kliknięcie w reklamę. Kwota ta zależna jest od kraju, zainteresowań użytkownika, pory dnia, pory roku… Jak komuś przeszkadzają reklamy zawsze, najczęściej za kilka złotych, może sobie kupić wersję pełną – bez reklam.

Warto zwrócić jednak uwagę na agresywność reklam, która najczęściej przekłada się na liczbę uprawnień jaką wymaga dana aplikacja. Im więcej uprawnień w aplikacji, która, na logikę, nie powinna ich wymagać, tym bardziej agresywne będą reklamy (oczywiście są one lepiej płatne dla autorów aplikacji).  Zatem unikajmy programów, które bez przerwy atakują nas reklamami, nawet wtedy, gdy nasza aplikacja jest wyłączona! Mogą to być powiadomienia tzw. wypychane (push), albo skróty na ekranie głównym do instalacji innych programów.

Pamiętajmy: czytajmy dokładnie wymagania aplikacji podczas jej instalowania. Prosta gra nie potrzebuje dostępu do wiadomości, kontaktów, możliwości wykonywania połączeń telefonicznych…

Dlaczego warto komentować i zgłaszać błędy w aplikacjach mobilnych?

Stare powiedzenie mówi, że nie myli się ten, kto nic nie robi. Ta prawda również przekłada się na programistów i czasem się zdarza, że aplikacja zachowuje się nie tak jak powinna. Pamiętajmy, że mamy wiele telefonów różniących się szybkością, rozdzielczością ekranu, wersją systemu. Ponadto użytkownicy mają zainstalowane różne programy, widgety…

Nie sposób przetestować aplikacji na każdym modelu telefonu. Co zrobić zatem, jeśli zależy nam na aplikacji, a ona akurat zachowuje się inaczej, niż się spodziewamy? Przede wszystkim postarajmy się poinformować programistę o błędzie:

  • jeśli aplikacja się „zawiesza”, pozwólmy systemowi wysłać raport z błędem. Trafia on do programisty, który może zlokalizować jego przyczynę. Dodatkowy komentarz, który możemy wpisać również nie zaszkodzi: np. aplikacja zawiesiła się po tym, jak ktoś do mnie zadzwonił. My, programiści, dostajemy informację, w której linii naszego programu pojawił się błąd – wtedy najczęściej kilka minut wystarczy na jego poprawę.
  • w przypadku błędu, który nie powoduje zawieszenia aplikacji (np. niewidoczny w całości komunikat) warto napisać e-mail do programisty, można również załączyć zrzut ekranu albo zwyczajne zdjęcie telefonu z uruchomioną aplikacją.

Pamiętajmy także o komentarzach. W niemal każdym sklepie mamy możliwość zamieszczenia komentarza do programu. Wystarczy najczęściej wejść na stronę aplikacji w sklepie i tam można zamieścić komentarz i ocenę. Kliknijmy również na Google+. Jest to sygnał dla innych użytkowników i programisty, ze aplikacja jest wykorzystywana i że warto ją rozwijać, poprawiać, udoskonalać. Warto również napisać kilka słów uzasadniających ocenę. Zdarzają się niestety komentarze „good game” i ocena 1/5… Pamiętajmy również, że istnieje możliwość poprawienia, uzupełnienia komentarza – np. wtedy, gdy programista wprowadzi poprawki. Dobre komentarze powodują, że aplikacja wędruje w wynikach wyszukiwania w górę, staje się bardziej popularna. Jednak najlepszą pomocą dla programisty jest pokazanie aplikacji innym i zachęcenie ich do jej pobrania i zainstalowania.

Czym są widgety?

Widżet (ang. widget) to miniaturowa aplikacja, która może zostać umieszczona na ekranie głównym w systemie Android (czyli na tzw. Home Screen). Aplikacje te są co jakiś czas aktualizowane (odświeżane), mogą zawierać informacje o pogodzie, o stanie naładowania baterii (może to być np. taki kotek jak widzimy po lewo) itp. Przykładowy widżet o nazwie Battery Diary Widget widzimy na Rysunku.

Widżet Battery Diary. W zależności od stanu naładowania baterii kotek zmienia swoją pozycję:) Możemy wybrać jedną z 4 postaci, która będzie reprezentowała nam stan naładowania baterii.

Widżet Battery Diary. W zależności od stanu naładowania baterii kotek zmienia swoją pozycję:) Możemy wybrać jedną z 4 postaci, która będzie reprezentowała nam stan naładowania baterii.

Czytaj dalej

Podstawy obsługi telefonu z systemem Android – klawisze

Od pewnego czasu wśród producentów telefonów pojawiła się tendencja do redukowania liczby klawiszy w naszych telefonach. Pierwsze urządzenia z Androidem miały pełne klawiatury, potem liczba klawiszy stopniowo malała.

Mój pierwszy, androidowy telefon HTC Magic miał 6 klawiszy, joystick w postaci trackballa i jeszcze dodatkowo klawisze głośności. W pewnym momencie standardem stały się 3 klawisze: Home, Back oraz Menu. Przycisk Back służy to przycisk powrotu, Home wyświetla nam ekran główny a menu pokazuje dodatkowe opcje. Tak było do czasu, aż pojawił się Android w wersji 3.0, wtedy zrezygnowano z przycisku Menu, a ściślej producenci nie mają obowiązku go umieszczać w telefonie. Przyciski mogą być zarówno umieszczone w telefonie jak i narysowane na ekranie. Przykład przycisków ekranowych (zrzut z tabletu wyposażonego w system Android 4.0) widzimy na rysunku 1.

Klawisze ekranowe Back, Home, lista otwartych aplikacji oraz menu

Rys. 1 Klawisze ekranowe Back, Home, lista otwartych aplikacji oraz menu

Omówmy po kolei każdy z klawiszy, zdradzając jednocześnie pewne sekrety systemu Android znane właściwie tylko programistom:

  • klawisz Back – teoretycznie służy, jak sama nazwa wskazuje, do powrotu do poprzedniego okna, programu. Służy także do ukrycia klawiatury ekranowej czy tez okna dialogowego. Często ma też tę samą funkcję co przycisk Anuluj. Jednak, w odróżnieniu od klawisza Home, programiści mogą zmienić jego funkcję. To dlatego cześć aplikacji przy ich opuszczaniu pyta, czy na pewno chcemy wyjść, a inne nie… Podobnie jest z oknami dialogowymi (przykład okna dialogowego pochodzącego z aplikacji Cat Diaries pokazano na rysunku 2) domyślnie klawisz Back pozwala je zamknąć, jednak możliwość tę można wyłączyć…
Okno dialogowe umożliwiające wybór daty zdarzenia

Rys. 2 Okno dialogowe umożliwiające wybór daty zdarzenia

Menu pozwalające na zarządzanie podkategoriami w aplikacji Cat Diaries Lite.

Rys. 3 Menu pozwalające na zarządzanie podkategoriami w aplikacji Cat Diaries Lite.

 

  • klawisz Home – jego wciśnięcie powoduje, że wracamy do ekranu głównego w telefonie. Warto tutaj napisać, co się tak naprawdę dzieje z aktywną aplikacją, po jego wciśnięciu. Otóż aplikacja nie jest zamykana, jest zatrzymywana i przechodzi w tło. Jednak nie musimy się martwić tym, że będziemy mieli za dużo otwartych aplikacji. Jeśli braknie pamięci dla nowo otwartej aplikacji, to system sam zamknie nieaktywne aplikacje (niekoniecznie wszystkie). To właśnie dlatego czasem da się wrócić do otwartej aplikacji, a czasem uruchamia się od początku. Jako ciekawostkę można napisać, że programista jest informowany o tym, że system ma zamiar zamknąć jego aplikację (wtedy może zapisać odpowiednie dane, tak żeby po jej ponownym uruchomieniu mógł odtworzyć stan sprzed zamknięcia). Dłuższe przytrzymanie przycisku Home pozwala na wyświetlenie listy ostatnio uruchomionych aplikacji (jeśli nie ma dedykowanego klawisza).
  • klawisz Menu – wciśnięcie klawisza Menu powoduje wyświetlenie na ekranie menu, z którego można wybrać odpowiednie zadania i polecenia (Rys. 3). Oczywiście nie w każdej aplikacji takie menu jest dostępne. Często bywa też tak, że dla każdego z ekranów menu może być inne. Wcześniej napisałem, że klawisz ten nie musi występować w urządzeniu. Na szczęście (pod warunkiem, że aplikacja jest napisana poprawnie) w przypadku, kiedy urządzenie nie posiada dedykowanego klawisza menu, jest on rysowany na ekranie (Rys. 1)
  • klawisz wygaszenia ekranu/wyłączenia telefonu – najczęściej jest to klawisz fizyczny, naciśnięcie powoduje wygaszenie ekranu, dłuższe przytrzymanie pozwala na wyłączenie telefonu. Najczęściej jednak przy dłuższym przytrzymaniu pojawia się menu, pozwalające na zmianę profilu, włączenie trybu samolotowego lub wyłączenie telefonu.
  • klawisze głośności – służą do regulacji głośności, najczęściej … dzwonka. Ściszenie do końca często też włącza tryb „milczy” lub wibracje. Napisałem najczęściej, ponieważ w przypadku uruchomionej aplikacji może być inaczej. Wszystko dlatego, że programista również w tym przypadku może zmienić funkcję tych klawiszy. Domyślnie, jeśli nie jest odtwarzany żaden dźwięk, ściszany i podgłaszany jest dźwięk dzwonka, jeśli natomiast uruchomioną mamy grę i akurat odtwarzany jest dźwięk to mamy możliwość regulowania głośności tych dźwięków. Prawidłowo zaprojektowana aplikacja powinna pozwalać na regulowanie dźwięków gry nawet wtedy, gdy nie są one odtwarzane.

Android i bezpieczeństwo danych

Współczesne telefony komórkowe praktycznie są bezużyteczne bez dostępu do Internetu. I dobrze! Jednak czy kiedykolwiek zastanawialiście się, czy Wasze dane są bezpieczne? Jak sprawdzić, który program może wysłać listę Waszych SMSów albo e-maili gdzieś, do bliżej nieokreślonej grupy osób? Może pozornie prosta gra przesyła informację o miejscu, gdzie się znajdujecie?

Nie każdy zapewne wie, że system Android posiada specjalny mechanizm pozwalający na kontrolę, jakie uprawnienia posiada aplikacja. Większość uprawnień może być przydzielona aplikacji przez programistów, dane o nich zapisywane są w specjalnym pliki znajdującym się w archiwum instalacyjnym – w tzw. manifeście.

Jakie czynności wymagają uprawnień?

Najprościej można napisać, że wszystkie, które mogą narazić użytkownika na dodatkowe koszty lub utratę prywatnych danych. Przykładem takich uprawnień może być umożliwienie dostępu do Internetu, możliwość wykonania połączenia, dostęp do listy kontaktów, dostęp do usług lokalizacyjnych. Informacje, z jakich uprawnień korzysta aplikacja można sprawdzić w sklepie, z którego ją pobieramy. Przykładowo, przeanalizujmy aplikację Data Guard Lite, dostępną w sklepie Google Play. Lista uprawnień jest widoczna w zakładce Uprawnienia. Jak możemy zobaczyć, aplikacja wymaga sporo uprawnień. Omówmy je po kolei:

  • bezpośrednie wybieranie numerów telefonu – brzmi groźnie, jednak w przypadku tej aplikacji ta możliwość jest bardzo przydatna. Ponieważ aplikacja pozwala w bezpieczny sposób na przechowywanie prywatnych, zabezpieczonych hasłem danych, jej autorzy zapewnili możliwość zatelefonowania pod numer przechowywany wewnątrz aplikacji (patrz zrzut ekranu sekcji Kontakt poniżej).
  • modyfikowanie lub usuwanie zawartości pamięci USB lub karty SD – w tym przypadku uprawnienie to jest wymagane do wykonania kopii bezpieczeństwa danych przechowywanych w aplikacji. Użytkownik ma możliwość chwilowego zgrania danych do pamięci telefonu (oczywiście w sposób zaszyfrowany) dostępnej po podłączeniu do komputera. Funkcja ta jest szczególnie przydatna w przypadku zmiany telefonu. Oczywiście domyślnie dane są zaszyfrowane i przechowywane w pamięci niedostępnej dla innych aplikacji i użytkowników.
  • wyświetlanie połączeń sieciowych oraz pełny dostęp do sieci – te uprawnienia najczęściej są związane ze sposobem finansowania aplikacji darmowych i wymagane są w celu zapewnienia możliwości wyświetlania reklam. Możemy sprawdzić, że w pełnej, płatnej wersji te uprawnienia nie są wymagane.

Ktoś mógłby zapytać, skoro aplikacja pozwala na wysłanie zaszyfrowanej kopii bezpieczeństwa za pomocą wiadomości e-mail, dlaczego zatem pełna wersja nie wymaga dostępu do Internetu? Otóż musimy rozróżnić dwie sprawy: pierwsza to bezpośredni dostęp do Internetu, np. w celu skomunikowania się ze zdalnym serwerem; druga – możliwość pośredniego skorzystania z usług internetowych z wykorzystaniem innego programu, takiego jak przeglądarka lub klient e-mail. W opisywanym przypadku dane są wysyłane właśnie dzięki wbudowanemu programowi do obsługi poczty, który posiada odpowiednie uprawnienia. Jednak program ten nie wysyła wiadomości automatyczne, musimy ręcznie zaakceptować wstępnie przygotowaną przez program Data Guard wiadomość.

Pamiętajmy zatem, sprawdzajmy uprawnienia i porównujmy je z funkcjami aplikacji deklarowanymi przez producenta. Pamiętajmy także, że np. otworzenie przeglądarki internetowej nie wymaga uprawnień dostępu do Internetu. W przypadku opisywanych, przykładowych aplikacji wszystkie wymagane uprawnienia są uzasadnione funkcjami aplikacji, jednak nie zawsze tak musi być…