Pokazywanie postów oznaczonych etykietą tips. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą tips. Pokaż wszystkie posty

wtorek, 16 listopada 2010

Logowanie zdarzeń w Androidzie - tips & tricks.

System logowania zdarzeń udostępniany przez Androida za pomocą klasy android.util.Log oraz DDMS'a to bardzo wygodne narzędzie niezbędne każdemu, kto programuje dla tej platformy mobilnej.

Ostatnio na grupie dyskusyjnej PLAG padły pytania:

1) jak całkowicie wyłączyć lub chociaż ograniczyć poziom wyświetlanych logów, gdy publikujemy aplikację w Android Market lub innym sklepie z aplikacjami?

2) czy można w jakiś sposób pominąć komentowanie wywołania funkcji Log.x() w kodzie?

3) czy jest możliwość wyłączenia tego w AndroidManifest.xml?

Sam framework Android'a nie udostępnia mechanizmu selektywnego używania logów. Zapewnia jedynie automatyczne filtrowanie logów typu d (debug) podczas działania programu. Logi  typu e, w, i, v są wyświetlane zawsze.

Można jednak bardzo prostym sposobem osiągnąć pożądane działanie.

Z pomocą przychodzi napisanie własnej klasy (wrappera) na oryginalną klasę Log, której fragment jest poniżej. Wówczas można w metodzie onCreate() głównej Activity naszej aplikacji, lub jeśli mamy własną klasę dziedziczącą po Application to w metodzie onCreate() tej klasy, wywołać jedną z dwóch funkcji allowAll() i cieszyć się filtrowanymi logami.

public class Log {
   public static boolean sAllowDebug = false;
   public static boolean sAllowError = false;
   public static boolean sAllowWarn = false;
   public static boolean sAllowInfo = false;
   public static boolean sAllowVerbose = false;


   public static void allowAll(boolean d, boolean e, boolean i,       
      boolean w, boolean v) {
      
      sAllowDebug = d;
      sAllowError = e;
      sAllowInfo = i;
      sAllowVerbose = v;
      sAllowWarn = w;
   }
    
   public static void allowAll(boolean allow) {
      sAllowDebug = allow;
      sAllowError = allow;
      sAllowInfo = allow;
      sAllowVerbose = allow;
      sAllowWarn = allow;
   }
    
   public static int d(String tag, String msg) {
      int result = 0;
    
      if (sAllowDebug) {
         result = android.util.Log.d(tag, msg); 
      }
    
      return result;
   }
   ...
}

poniedziałek, 19 lipca 2010

Sposób na odpowiadanie na komentarze do własnych aplikacji w Android Markecie

Jak dobrze wiedzą wszyscy właściciele aplikacji w Android Markecie, nasze programy dostają czasem (a nawet często) niesłusznie bardzo niskie oceny i niezbyt pochlebne komentarze.

Ostatnio całkiem przez przypadek udało mi się znaleźć fajny sposób na to, aby odpowiedzieć na komentarze na AM. Rozwiązaniem jest napisanie własnego komentarza (tak, tak możemy komentować własne aplikacje :) ).

Algorytm postępowania:
  1. Wpisujemy komentarz i pojawia się on na liście komentarzy na pierwszej pozycji (załóżmy że odpowiadaliśmy na wcześniejszy wpis). 
  2. Następnie pojawia się jakiś nowy (np. nieprzychylny) komentarz i aby na niego odpowiedzieć zmieniamy nasz komentarz i pojawia się on znowu na pierwszej pozycji. 
Zatem w większości przypadków, użytkownik który "zastanawia" się nad zainstalowaniem naszej aplikacji, widzi zarówno ten nieprzychylny komentarz jak i naszą odpowiedź na niego (jest to jakaś metoda obrony).

Sposób trochę ułomny ale póki co nic lepszego nie udało się chyba wymyśleć :)