/ / Jak przechowywać prywatnie duży wolumen danych w systemie Android? - Android, pamięć masowa, prywatność, pamięć zewnętrzna z Androidem, pamięć wewnętrzna

Jak przechowywać prywatnie duży wolumen danych w systemie Android? - Android, pamięć masowa, prywatność, pamięć zewnętrzna z Androidem, pamięć wewnętrzna

Pytanie brzmi: jak mogę przechowywać dużą ilość danych (kilkaset Mb i więcej) i jednocześnie utrzymywać ją dostępną tylko dla mojej aplikacji?

Pamięć wewnętrzna, jak się dowiedziałem, jest ograniczona, a jej rozmiar zależy od modelu urządzenia. Czy może to być wystarczające do przechowywania dużych ilości danych? Czy mogę przechowywać 500Mb i więcej w pamięci wewnętrznej?

Alternatywą jest użycie pamięci zewnętrznej. Jak wiem, pamięć zewnętrzna nie ogranicza aplikacji i może wykorzystywać całą pamięć zewnętrzną, jednak dane stają się dostępne dla użytkownika i innych aplikacji i jest niedopuszczalne w moim przypadku. Czy istnieje sposób na zrobienie danych, które przechowują w pamięci? pamięć zewnętrzna, prywatna, tak jakby była przechowywana w pamięci wewnętrznej?

Odpowiedzi:

1 dla odpowiedzi № 1

Pamięć wewnętrzna, jak się dowiedziałem, jest ograniczona, a jej rozmiar zależy od modelu urządzenia

Tylko na Androidzie 1.x / 2.x. Na ogromny większość urządzeń z Androidem 3.0+, pamięć wewnętrzna i zewnętrzna znajdują się na tej samej partycji i dlatego mają taką samą ilość wolnego miejsca.

Czy mogę przechowywać 500Mb i więcej w pamięci wewnętrznej?

Prawdopodobnie na Androida 3.0+. Użytkownik może nie mieć 500 MB wolnego miejsca, ale to nie jest ograniczenie pamięci wewnętrznej, ale ogólnie ograniczenie "pamięci".

Czy istnieje sposób na to, aby dane, które magazyny w pamięci zewnętrznej były prywatne, tak jakby były przechowywane w pamięci wewnętrznej?

Nie całkiem. Nie można na przykład zapobiec usunięciu tych plików przez użytkownika lub inne aplikacje. Możesz użyć biblioteki Conceal Facebooka do szyfrowania plików w pamięci zewnętrznej przy użyciu wygenerowanego klucza szyfrowania przechowywanego w pamięci wewnętrznej, aby uniemożliwić użytkownikom lub innym aplikacjom zmianę zawartości plików (innych niż po prostu ich uszkodzeniu). Ponownie, będzie to istotne tylko wtedy, gdy nadal będziesz obsługiwać Androida 1.x / 2.x, w systemie Android 3.0+, po prostu użyj pamięci wewnętrznej.


0 dla odpowiedzi nr 2

biorąc pod uwagę twoje ograniczenia, naprawdę możesz podejść do dwóch możliwych podejść.

  • korzystaj z pamięci wewnętrznej, ale pamiętaj, aby sprawdzać wolną pamięć, a gdy urządzenie nie może jej obsługiwać, jest to kwestia poinformowania użytkowników, że urządzenie nie może uruchomić aplikacji.
  • użyj zewnętrznej pamięci i zbuduj na niej ładne szyfrowanie, więc nawet jeśli ktoś inny dostanie pliki, rzeczywiste dane na nich będą bez znaczenia bez odpowiedniego mechanizmu odszyfrowywania.

która opcja do wyboru to decyzja o produkcie.


0 dla odpowiedzi № 3

Możesz użyć getExternalFilesDir() ograniczyć dostawcę treści sklepu multimedialnego przed odczytaniem plików aplikacji z pamięci zewnętrznej. Ale myślę, że każda inna aplikacja z tym samym pozwoleniem READ_EXTERNAL_STORAGE może uzyskać dostęp do plików. Jedynym sposobem jest użycie pamięci wewnętrznej.

Nie jestem pewien, jaki typ plików chcesz przechowywać. Jeśli pliki są mniejszej liczby, możesz pomyśleć o korzystaniu z bazy danych, chociaż będzie to naruszać zasadę ACID. Alternatywnie możesz myśleć o ograniczaniu za pomocą dostawców treści.