Wie kann ich eine 338-KB-App nicht installieren, wenn ich 474 MB frei habe?

Ich habe ein Motorola-Telefon mit 8 GB internem Speicher.

Zu meiner Überraschung hatte ich in ein paar Tagen 474 MB freien Speicherplatz, konnte aber keine 338-KB-App installieren!! Die in einigen Kommentaren ( hier und hier ) genannte Grenze von ~ 25 MB ist also eindeutig nicht immer der Fall. Ein User hat mir gerade folgendes gesagt:

Eigentlich sind es "25 MB oder 10 % des Speichers", je nachdem, was zuerst getroffen wird. Bei zB 10 GB internem Speicher würde es Sie also treffen, sobald Sie unter 1 GB frei fallen. Verrückt, aber so ist es.

Eigentlich ist das nicht korrekt, weil ich nicht 1 GB internen Speicher freigeben musste. Aber wie auch immer, ein halbes Gigabyte reicht aus, um ein voll funktionsfähiges System zu betreiben. Ich habe ähnliche Beschwerden über Hunderte von MB gesehen, die nicht ausreichen, um Apps zu installieren ~ 1 MB oder ähnliche kleine Operationen ( hier und hier ).

Was ist hier falsch?

Ich hasse es, dass es einige Leute gibt, die immer das Image der Mächtigen schützen wollen, egal wie schlimm es ist. Könntest du bitte aufhören, so unterwürfig zu sein?
All das Gejammer, auf das Sie anscheinend bestehen, um es auf die Baustelle zu schaufeln, ist völlig irrelevanter Lärm. Es gibt zig Millionen Stellen im Internet, an denen Sie sich über Ihre persönlichen Ärgernisse beschweren können. Dies ist keiner dieser Orte. Uns interessiert nicht, wie Sie wahrnehmen, dass jemand (oder ein Unternehmen) Sie persönlich beleidigt hat, wir möchten nur die Informationen, die für die Beantwortung Ihrer Frage relevant sind.
ok Mister schlechter Service Verteidiger.

Antworten (1)

Hinweis: Der zitierte Benutzer war ich. Und hier ist die Referenz . Um zu erklären, warum es in Ihrem Fall nicht 10% waren, hier eine Ausnahme hinter dem Link: "Solange der Gerätehersteller die Standardeinstellungen nicht ändert". Diese 10% sind also die Standardeinstellung, können aber offensichtlich vom "ROM-Bäcker" geändert werden. Wie oft das gemacht wird, kann ich nicht sagen; Da dieser Beitrag aus dem Jahr 2011 stammt, könnte sich die Regel inzwischen sogar geändert haben (obwohl ich davon auch nichts gehört habe).

Also habe ich mal ein bisschen "Google-Fu" angewendet: Android 4.1.1 hat noch den Kommentar

Wenn der freie Speicherplatz auf dem Gerät kleiner als ein einstellbarer Schwellenwert ist (ein sicherer Einstellungsparameter; Standard 10 %), wird eine Benachrichtigung über wenig Speicherplatz angezeigt, um den Benutzer zu warnen."

(Hervorhebung von mir). Beachten Sie den Begriff "abstimmbarer Schwellenwert", der deutlich macht, dass dieser Schwellenwert modifiziert/eingestellt werden kann. Für Android 4.1.1 finden Sie es in Zeile 67:

private static final int DEFAULT_THRESHOLD_PERCENTAGE = 10;

Dies ist eine Klassenvariable; Da ich selbst kein Android-Entwickler bin, kann ich nicht sagen, wie es überschrieben werden kann. Es erfordert sicherlich Systemberechtigungen (oder nur eine App mit der WRITE_SECURE_SETTINGSBerechtigung? ). Zitat des neusten Codes :

 * This class implements a service to monitor the amount of disk
 * storage space on the device.  If the free storage on device is less
 * than a tunable threshold value (a secure settings parameter;
 * default 10%) a low memory notification is displayed to alert the
 * user. If the user clicks on the low memory notification the
 * Application Manager application gets launched to let the user free
 * storage space.

Sie sehen, die 10%-Regel gilt immer noch. Aber die DEFAULT_THRESHOLD_PERCENTAGEVariable ist weg (und ersetzt durch mMemLowThreshold, die jetzt in einer anderen Klasse gesetzt zu sein scheint – siehe Zeile 361 ).


TL;DR: Es gilt immer noch die gleiche 10%-Schwelle, aber der "ROM-Bäcker" (der das ROM erstellt) könnte das anpassen. Ein Entwickler mit etwas mehr Einblick kann möglicherweise feststellen, ob es auf andere Weise angepasst werden kann, z. B. eine spezielle App mit der WRITE_SECURE_SETTINGSBerechtigung , oder sogar einfach über ADB.

Anscheinend verfehlen Sie den Punkt hier völlig: Das Problem ist nicht, dass ich eine Meldung über wenig Speicher erhalten habe, sondern dass ich eine absurd kleine App NICHT INSTALLIEREN KONNTE.
Ich habe einmal einen Flugsimulator von Silicon Graphics gespielt, der in eine 1,44-MB-Diskette passte. Nur um eine Vorstellung davon zu geben, wie GROSS 474 MB sind. Wenn dies kein Beispiel für geplante Obsoleszenz ist, weiß ich nicht, was es ist.
Sie konnten das nicht installieren, weil das System entschieden hat, dass Ihnen der Speicherplatz ausgeht – weshalb es Ihnen diese Nachricht gesendet hat. Selbst wenn die APK 1k gewesen wäre, ist Nein gleich Nein. Damit dem System mit seinem „Tagesgeschäft“ der Speicherplatz nicht komplett ausgeht, bleibt der verbleibende Speicherplatz erhalten. Eine neue Überprüfung wird normalerweise zweimal am Tag durchgeführt oder wenn verfügbarer Speicher um mindestens 2 MB geändert, wenn ich mich an den Code erinnere. Tut mir leid, ich bin es nicht, der hier den Punkt verfehlt. Ich bin mir bewusst, dass dies unbefriedigend klingen mag – aber Sie wollten die Gründe, und ich habe sie gegeben (und sogar auf einen möglichen Ausweg hingewiesen).
Sie könnten eine Meldung angezeigt haben: „Die Installation dieser App kann Ihr System verlangsamen und sogar einige Vorgänge und Updates nicht verfügbar machen. Möchten Sie wirklich fortfahren? PS: Sie haben die Möglichkeit, sie später zu deinstallieren und das System wieder voll funktionsfähig zu machen ." Oder sind vielleicht 474 MB notwendig, nur um eine App zu deinstallieren? Oder wäre diese Nachricht für den üblichen „Homer Simpson“-Benutzer vielleicht zu komplex? (Aber wenn der Schwellenwert vom Benutzer geändert werden kann, ist es nicht SO komplex. Warum nicht einen Link dafür in die Nachricht einfügen?) Oder vielleicht ist es nur "weich geplante Obsoleszenz", wer tut es heutzutage nicht?
"Oder wäre diese Nachricht vielleicht zu komplex für den üblichen "Homer Simpson"-Benutzer?" Vielleicht wollten sie es einfach halten, ja. "Aber wenn der Schwellenwert vom Benutzer geändert werden kann" Wer hat das gesagt? Wenn das der Fall ist, hat jemand vergessen, darauf hinzuweisen, wo und wie :) Wie ich geschrieben habe, scheint es gemäß den Kommentaren im Code (den kein "durchschnittlicher Benutzer" jemals liest) eine Möglichkeit zu geben. Obwohl ich noch nie gelesen habe, wie das von einem Benutzer angegangen werden könnte . Und sorry, all die "Warums", auf die ich keine Antwort weiß. Hätte Ihnen gerne eine klarere "Lösung" angeboten.
Hinweis: Ich habe ein „Follow-up“ gepostet, das Sie sich vielleicht ansehen möchten: Wie passt man den Schwellenwert für das Ereignis „Speicherstand niedrig“ an? Ich habe darauf keine Antwort (oder ich hatte sie hier in meine Antwort aufgenommen) – aber hoffentlich so formuliert, dass eines unserer Mitglieder mit "tieferen Einblicken" sie beantworten kann.