Potrzebuję przechowywać poufne informacje w aplikacji na Androida. Jeśli umieściłem go w pliku zasobów, wydaje się, że jest to trywialne, że inna aplikacja może przeglądać i czytać ten plik po prostu za pomocą PackageManager.getResourcesForApplication().Gdzie przechowywać poufne informacje globalne, takie jak klucze API w aplikacji na Androida?
Gdzie jest właściwe miejsce do umieszczania takich informacji, że nie chcemy, aby ludzie mogli łatwo snoopować?
Czy powinien znajdować się w skompilowanym pliku Java? Czy też pliki klas są również łatwe do odczytania? Ponadto, jeśli są one w plikach Java, czy można odwoływać się do nich z plików XML, które ich potrzebują (np. Dla klucza map Google google)?
Wszystko, co rozpowszechniasz w swoim apk jest czytelne. Po prostu umieść go w plikach resources/java pod warunkiem, że jest to bezwartościowe narzędzie, takie jak klucze APi. Jeśli jest to numer Twojej karty kredytowej, nie umieszczaj go wcale. Klucz API api działa tylko w XML IIRC – zapl
Na stronie ProGuard wymienia się [DexGuard] (http://www.saikoa.com/dexguard), który pozwala na lepsze zaciemnianie np. Ciągów Strings (kluczy API). Jeśli wyrzucenie pieniędzy nie jest problemem, sprawdzenie, co mają do zaoferowania, może być warte kłopotów. – harism