Nützliche Android-Systemressourcen

Lesezeit: 4 Minuten

Benutzer-Avatar
hpique

Android kommt mit vielen Systemressourcen (android.R), mit denen Sie Zeit sparen und Ihre Bewerbung leichter machen können.

Zum Beispiel habe ich kürzlich entdeckt, dass Android lokalisierte Zeichenfolgen für Ja (android.R.string.yes), Nein (android.R.string.no), Absagen (android.R.string.cancel) und Okay (android.R.string.ok), neben anderen Saiten.

Welche anderen Systemressourcen empfehlen Sie zu verwenden? Oder gibt es einen Grund, die Verwendung von Systemressourcen zu vermeiden?

Bearbeiten: Wie von Tomas angemerkt, führen einige dieser Ressourcen möglicherweise nicht zu den erwarteten Ergebnissen (insbesondere android.R.string.yes/no kehrt zurück OK/Cancel Anstatt von Yes/Nowie berichtet hier). Zur besseren Kontrolle können Sie Systemressourcen aus dem Android-Quellcode kopieren.

  • Wie greifen Sie über XML auf diese zu?

    – Thomas Ahle

    19. Dezember 2010 um 19:19 Uhr

  • “Oder gibt es einen Grund, die Verwendung von Systemressourcen zu vermeiden?” – Falls Sie Systemressourcen wie Symbole verwenden, ist nicht garantiert, dass dasselbe Symbol in allen Android-Versionen verfügbar ist, was dazu führen kann, dass Ihre App inkonsistent ist.

    – codeMan

    3. Juli 2014 um 10:06 Uhr

  • Abstimmung zum Schließen als zu breit / meinungsbasiert.

    – Ciro Santilli Путлер Капут 六四事

    8. Februar 2016 um 20:25 Uhr

Benutzer-Avatar
Dan Lew

Eine vollständige Auflistung aller Systemressourcen finden Sie in der Android-Paket.

Jedes Mal, wenn ich etwas auf Android tun möchte, überprüfe ich, ob es eine Systemressource gibt, die das abdeckt, was ich tun möchte. Es ist hilfreich, den Android-Quellcode (insbesondere ihren /res/-Ordner) bei der Suche nach bereits implementierten Ressourcen, die Sie möglicherweise benötigen, damit Sie deren spezifische Implementierung sehen können.

Persönlich verwende ich am häufigsten:

  • Integrierte Android-Layouts für Standardaufgaben wie Spinner-Dropdowns.
  • Android-IDs (android.R.id), da Sie diese häufig verwenden müssen, wenn Sie einige der Android-Widgets verwenden möchten (z. B. TabHost/TabWidget erfordert, dass Sie “android:id/tabhost“, “android:id/tabs” und “android:id/tabcontent” wenn Sie ein XML-Layout implementieren möchten).
  • Eingebaute Farben, besonders android.R.color.transparent.
  • Die integrierten Ein- und Ausblendanimationen von Android in android.R.anim.

  • Beachten Sie, dass diese Ressourcen mit Ihrem SDK geliefert werden. Schau in den data/res/ Verzeichnis unterhalb eines bestimmten Plattformverzeichnisses. Ich würde vorsichtig sein, Dinge wiederzuverwenden, die von OEMs geändert werden könnten – Drawable-Ressourcen wären ein Beispiel für einen Problembereich.

    – CommonsWare

    13. April 2010 um 18:26 Uhr

  • @CommonsWare Woher werden die Ressourcen geladen, wenn sie auf einem tatsächlichen Gerät ausgeführt werden?

    – ThomasW

    18. Oktober 2017 um 6:41 Uhr

  • @ThomasW: Über “irgendwo in der Gerätefirmware” hinaus kann ich das nicht sagen, da ich nie nach Einzelheiten gesucht habe. Es tut uns leid!

    – CommonsWare

    18. Oktober 2017 um 11:38 Uhr

  • Wow. Es gibt Orte, an die sich selbst @CommonsWare noch nicht gewagt hat.

    – ThomasW

    15. Januar 2018 um 2:23 Uhr

  • @ThomasW-Ressourcen werden geladen resources.arsc Datei. Beim Erstellen Ihrer apk aapt kompiliert Ihre Ressourcen und generiert resources.arsc Datei, die innerhalb von apk ausgeliefert wurde.

    – Bek

    2. Juli 2019 um 8:58 Uhr

Du kannst Zugriff auf Systemressourcen aus XML, indem Sie sie mit dem Android-Paketnamen qualifizieren, dh "@android:string/ok"

Wie von CommonsWare erwähnt, müssen Sie das Android-Quellrepository nicht herunterladen, um die Ressourcen zu inspizieren; geh einfach zu <android-sdk-dir>/platforms/android-X.X/data/res/. Wenn Sie jedoch anfangen, diese zu verwenden, werden Sie schnell enttäuscht sein, wenn Sie feststellen, dass die meisten von ihnen dies sind nicht erhältlich über die android.R Klasse. Meistens muss ich sie sowieso in meinen Eclipse-Workspace importieren. 🙁

Meine Lieblingsressourcen sind Drawables, die je nach fokussiertem/gedrücktem/deaktiviertem Status eines Steuerelements unterschiedlich angezeigt werden (wie android.R.drawable.btn_default). Ich verwende diese oder optimiere sie, um benutzerdefinierte Schaltflächen für meine Apps zu erstellen. Wie Sie sehen können, wenn Sie sich ansehen /data/res/drawable/btn_default.xmlsie sind definiert als a <selector> XML-Element, das zu einem aufgeblasen wird StateListDrawable zur Laufzeit. Sie können auch Ihre eigenen StateListDrawables erstellen, und sie sind super nützlich, sowohl als Hintergrund für die Ansicht als auch als “zusammengesetztes Drawable” einer Schaltfläche (siehe TextView.setCompoundDrawables()).

  • Ich frage mich, woher die Ressourcen geladen werden, wenn sie auf einem tatsächlichen Gerät ausgeführt werden?

    – ThomasW

    18. Oktober 2017 um 6:41 Uhr

Bitte beachten Sie, dass die Übersetzungen wirklich schlecht sind.

Zum Beispiel ist das deutsche „Nein“ in Android-25 „Abbrechen“, was eigentlich „Abbrechen“ bedeutet. “Ja” wird mit “OK” übersetzt…

Ich bin mir nicht sicher, wie gut die anderen Sprachen sind, also würde ich eine eigene Übersetzung verwenden.

1133980cookie-checkNützliche Android-Systemressourcen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy