2011-02-10 10 views
5

Proszę, powiedz mi, jak chronić nasz zasób w pakiecie APK. Z prostym procesem zmiany nazwy, każdy może kopiować i złowić zasoby aplikacji do rysowania, takie jak obrazy lub pliki soundFX. Moje pytanie brzmi, czy istnieje jakiś sposób ochrony zasobów do rysowania w aplikacji na Androida?Jak chronić zasób kreślarski w aplikacji Android

Odpowiedz

2

Rozkładany musi być dostępny dla systemu operacyjnego, więc musi być czytelny.

Jeśli naprawdę chcesz go zabezpieczyć, możesz rozważyć przechowywanie go zaszyfrowanego jako surowiec, następnie załadować go, odszyfrować do ByteStream i przekazać go do BitmapFactory. To, oczywiście, ma niewielkie konsekwencje wydajnościowe i zmusi cię do ręcznego zakodowania wielu rzeczy, które możesz w łatwy sposób zrobić w XML.

To wszystko na bok, istnieje wiele sposobów na kradzież danych - jeśli jest to losowanie, ludzie mogą po prostu zrobić zrzut ekranu.

1

Moje pytanie brzmi, czy istnieje jakiś sposób ochrony zasobów do rysowania w aplikacji na Androida?

Nie. Zasoby są czytelne z punktu widzenia projektu. Nawet jeśli nie chcesz pakować "obrazów lub plików SoundFX" jako zasobów, ale pobierasz je przy pierwszym uruchomieniu, użytkownicy z uprawnieniami administratora mogą nadal uzyskiwać dostęp do plików.

Ponieważ nie różni się znacząco od innych popularnych systemów operacyjnych, jakie rozwinęły się w ludzkości, nie jest jasne, dlaczego uważasz, że jest to problem z Androidem. Wystarczająco zainteresowani użytkownicy mogą uzyskać dostęp do plików "images lub soundFX" na iOS, Windows, OS X, Linux i tak dalej. Nawet aplikacje internetowe nie są odporne.

0

Myślę, że można chronić zasoby. W rzeczywistości istnieje klasa/rutyna niskiego poziomu do odczytu zasobów: AssetManager - zwykła klasa Resources znajduje się na szczycie tych AssetManager. Aby zabezpieczyć zasoby, można przetrząsać zasoby i odczytać/rozszyfrować je za pomocą metod niskiego poziomu AssetManager: look here