Pytanie:
Czy istnieje sposób, aby zmusić aplikacje do korzystania tylko z pamięci wewnętrznej?
user32844
2013-04-25 03:57:28 UTC
view on stackexchange narkive permalink

Mam Sony Xperię U, a moje 8 GB pamięci jest podzielone na trzy części: 2 GB pamięci telefonu, 4 GB pamięci wewnętrznej (zastępującej gniazdo MicroSD) i 2 GB, o których tak naprawdę nie wiedziałem.

Nie chcę majstrować przy ponownym podziale. Chcę po prostu używać każdego z nich, ponieważ muszą być używane.

Problem polega na tym: wiele aplikacji jest zoptymalizowanych pod kątem zapisywania wielu rzeczy w SD, ale w przypadku tego telefonu nie jest to zbyt przydatne, ponieważ ma wiele miejsce w pamięci telefonu! Co mogę zrobić, aby automatycznie tworzone dane aplikacji korzystały z pamięci wewnętrznej tylko , pozostawiając SD (wewnętrzną, w przypadku Xperia U) wolne do własnego użytku?

Edycja: Dziękuję za Twoje odpowiedzi! John, moje urządzenie jest zrootowane, więc czy mógłbyś wyjaśnić więcej na temat tych uprawnień? Z góry dziękuję!

(Twój angielski jest w porządku. Nawet lepszy niż niektórzy native speakerzy).
Jeśli masz zrootowane urządzenie, możesz ustawić uprawnienia do folderów na karcie SD na tylko root.
Jeśli programista zakodował to w swojej aplikacji, niewiele możesz zrobić. Jeśli zakodował "ścieżkę" (np. `/ Sdcard / funnyapp` lub używając [` getExternalStorageDirectory () `] (http://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory ()) (co tak powinno być zrobione) i dołącza `/ funnyapp` (lub jakikolwiek inny katalog), * możesz * bawić się dowiązaniami symbolicznymi (łącząc tę ​​lokalizację z pamięcią wewnętrzną) - ale nawet to najprawdopodobniej się nie powiedzie, ponieważ dowiązania symboliczne będą „nieobsługiwane” przez system plików „sdcard”.
Dodając do powyższego komentarza Izzy, nie masz szczęścia, jeśli programista wyraźnie chce, aby aplikacja została gdzieś zainstalowana. Więcej informacji na ten temat można znaleźć w [dokumentach pomocy Androida] (https://support.google.com/android/answer/168609?hl=pl#1186376). @Izzy, Twój komentarz * jest * odpowiedzią na to pytanie, prawda?
Trzy odpowiedzi:
keen
2014-05-09 23:04:39 UTC
view on stackexchange narkive permalink

Mówisz, że Twój telefon jest zrootowany, możesz wtedy zmienić domyślną lokalizację instalacji, której menedżer pakietu używa do instalowania aplikacji. będzie to działać tylko z aplikacjami, które na to zezwalają, jak inni już zauważyli, aplikacje mogą zignorować zalecenia menedżerów pakietów i mimo to zainstalować na wewnętrznym / zewnętrznym, nawet jeśli wybierzesz odwrotnie. ponadto, duże pliki gier w katalogu obb są przechowywane tam, gdzie faktycznie znajduje się katalog obb; zależy to od używanego telefonu.

aby zmienić domyślny katalog instalacyjny:

1) użyj emulatora terminala z Google Play (lub, alternatywnie, włącz debugowanie USB i użyj adb)

2) w emulatorze terminala wpisz:

  su  

zaakceptuj żądanie administratora, a następnie spróbuj:

  pm setInstallLocation X  

lub:

  pm set-install-location X  

gdzie X może być

0 = niech packagamanager zdecyduje

1 = domyślnie instaluj na wewnętrznym

2 = instaluj domyślnie na zewnętrznym

Izzy
2013-06-27 11:15:11 UTC
view on stackexchange narkive permalink

Zgodnie z zachętą Sid, zamienię swój komentarz na odpowiedź - łącząc szczegóły z innych komentarzy:

Istnieją głównie dwa sposoby adresowania karty SD z poziomu aplikacji:

  1. ścieżka zakodowana na stałe (np. /sdcard/funnyapp)
  2. przy użyciu interfejsu API systemu Android, tj. getExternalStorageDirectory ( )

Chociaż 1. może się nie powieść, jeśli karta SDCard zostanie zamontowana w innym miejscu, 2. spowoduje, że aplikacja zapisze rzeczy na „pierwszej” karcie SD (na urządzeniach z wewnętrzną kartą SD, czyli wewnętrzną SDCard, na innych zewnętrznych). Ale oba przypadki są zgodne z faktem: jeśli aplikacja nie oferuje opcji konfiguracji, nic nie możesz zrobić, aby to zmienić. Android nie oferuje odpowiedniego ustawienia, a łącza symboliczne nie działają na kartach SDCARD (z powodu ograniczeń systemu plików).

To samo dotyczy pamięci używanej przez samą aplikację, ponieważ Sid napisał, że wskazuje dokumenty pomocy dla Androida (zobacz także dokumentację dla programistów na temat lokalizacji instalacji aplikacji). Chociaż w większości przypadków można przenieść aplikację za pomocą funkcji App2SD wbudowanej w Androida, programista może to zmienić, aby nie można było przenieść jego aplikacji.

Jeśli chodzi o komentarz Jana, to nie naprawdę działa. Wciąż małe wyjaśnienie, co najprawdopodobniej miał na myśli: używając „uprawnień roota”, możesz zmienić prawo własności do wszystkich plików i katalogów. Więc prawdopodobnie jego pomysł polegał na tym, aby wszystkie rzeczy na karcie SDCard należały do ​​roota i były czytelne tylko dla innych. To nie zadziała z wielu powodów:

  • To skomplikowałoby sprawę jeszcze bardziej (ponieważ nie można by pisać żadnego z nich bez wcześniejszego uzyskiwania uprawnień roota za każdym razem).
  • Nie mogłeś tego zrobić na poziomie katalogu (np. robiąc to dla każdego katalogu z wyjątkiem katalogu o "wymyślnej nazwie" jak np. "MyOwnDocs", gdzie możesz przechowywać swoje rzeczy bez kłopotów z poprzedniego argumentu), ponieważ system plików na karcie (FAT) tego nie obsługuje.
  • To mogłoby w jakiś sposób, gdybyś użył skryptu do ponownego zamontowania karty do odczytu i zapisu za każdym razem, gdy chcesz na niej pisać, i uczynił ją ponownie tylko do odczytu, gdy skończysz. Ale znowu, ta komplikacja najprawdopodobniej nie jest tego warta. Ponadto niektóre aplikacje mogą ulec awarii z kartą SD tylko do odczytu, ponieważ (z ważnych powodów) nie oczekują obecności karty SD, ale nie można jej zapisać.

TL; DR

Krótko mówiąc: jeśli aplikacji nie można skonfigurować w taki sposób, nie ma sposobu, aby tego dokonać (z wyjątkiem ponownego napisania tych aplikacji).

dowiązania symboliczne nie działają na fat, ale może zamontować powiązanie folderu takiego jak: mount -o bind / internal / dir / sdcard / dir
user101262
2015-04-06 23:06:09 UTC
view on stackexchange narkive permalink

Spróbuj użyć Lucky Patchera i zainstalować apk aplikacji jako aplikację systemową.

Czy możesz podać link do Lucky Patchera? Czy faktycznie zmieni się to, gdzie aplikacja zapisuje rzeczy?


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...