Was sind Metadaten? Und was nützt es in Android

Lesezeit: 6 Minuten

Was sind Metadaten Und was nutzt es in Android
FaisalAhmed

Ich bin neu bei Android und habe noch nie etwas über Metadaten gesehen oder gehört. Ich google es jedoch und suche auf YouTube danach, dass es sich im Grunde um eine Information Ihres Objekts handelt. Korrigiere mich, wenn ich falsch liege. Kann mir jemand helfen, es besser zu verstehen.

1) Was sind Metadaten?

2) Warum wird es in Android verwendet?

Es ist gut, wenn anhand eines Beispiels erklärt wird, warum Metadaten in Android verwendet werden. Ich habe sie im Aktivitäts-Metadaten-Tag des Manifests gesehen.

  • Sie werden nur zum Speichern der Daten im Schlüssel-Wert-Paar verwendet, das von der übergeordneten Komponente aufgerufen werden kann. So viel Wissen ist Ruhe genug, der Erkundung sind keine Grenzen gesetzt.

    – cammando

    15. Dezember 2016 um 14:53 Uhr

Was sind Metadaten Und was nutzt es in Android
W0rmH0le

In Android können Sie definieren meta-data Informationen in Ihrem AndroidManifest.xml

HIER IST DER DOCK-LINK

Sehr einfache Verwendung

Es ist im Grunde eine zusätzliche Möglichkeit, Informationen zu speichern, auf die über das gesamte Projekt hinweg zugegriffen werden kann. In diesem Fall, <meta-data> ist außen definiert <activity> Etikett und innen <application> Schild.

Definition:

<manifest>
    <application 
        android:icon="@drawable/icon" 
        android:label="@string/app_name">

        <meta-data android:name="my_test_metagadata" android:value="testValue" />

        <activity 
            android:name=".MainActivity" 
            android:label="@string/app_name">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>

    </application>
<manifest>

Lektüre:

ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
Bundle bundle = ai.metaData;
String myApiKey = bundle.getString("my_test_metagadata");

Sie können eine speichern booleanein int, String oder schweben.

Es ist nützlich für Bibliotheken oder APIs

Angenommen, Sie haben eine API/LIB erstellt, die von allen verwendet werden kann. Für ein bestimmtes Verfahren benötigen Sie jedoch eine KEY und das KEY muss von dem Entwickler definiert werden, der Ihre API verwenden wird. Auf diese Weise können Sie nicht vorhersagen, welchen Schlüssel der Entwickler freigeben wird.

Verwenden <meta-data>kann ein Entwickler, der Ihre API/LIB verwenden möchte, die teilen KEY mit dir. Auf diese Weise lassen Sie Ihre API so konfiguriert, dass sie diesen SCHLÜSSEL liest und eine Ausnahme auslöst, wenn der Benutzer dies nicht definiert hat.

try {
    ApplicationInfo ai = getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
    Bundle bundle = ai.metaData;
    String myApiKey = bundle.getString("my_test_metagadata");
} catch (Exception e) {
    Log.e(TAG, "Dear developer. Don't forget to configure <meta-data android:name=\"my_test_metagadata\" android:value=\"testValue\"/> in your AndroidManifest.xml file.");
}

Ein klassisches Beispiel ist Google Ads (Admob).

Sie müssen folgende Zeile zu Ihrer hinzufügen AndroidManifest:

<!--This meta-data tag is required to use Google Play Services.  (adMob)-->
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

Dies wird geladen com.google.android.gms.version mit Wert dargestellt durch @integer/google_play_services_version. Dann wird dies wahrscheinlich von Google Play Services (Admob) gelesen Metadaten und es kann die Version des Google Play-Dienstes ermitteln, die Sie beim Erstellen Ihrer App verwendet haben.

Ein anderes Beispiel

Eine andere Verwendung für <meta-data> ist, wann sie zum Konfigurieren einer Aktivität verwendet werden. Auf diese Weise können Sie wertvolle Informationen über Ihre Aktivität an Android weitergeben, und Android kann Ihre Aktivität dann ordnungsgemäß verarbeiten. In diesem Fall ist die <meta-data> -Tag wird innerhalb der hinzugefügt <activity> Schild.

Das erste Beispiel, das ich sehe, ist, wenn Sie eine Suchaktivität definieren.

<manifest>
    <application 
        android:icon="@drawable/icon" 
        android:label="@string/app_name">
        <activity 
            android:name=".MainActivity" 
            android:label="@string/app_name">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>

        <activity android:name=".SearchableActivity" >
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>
            <meta-data android:name="android.app.searchable"
                       android:resource="@xml/searchable"/>
        </activity>
    </application>
<manifest>

Verwenden Sie dann Folgendes, um die Metadaten aus dem Aktivitäts-Tag abzurufen:

try {
        ActivityInfo ai = getPackageManager().getActivityInfo(this.getComponentName(), PackageManager.GET_META_DATA);
        Bundle bundle = ai.metaData;
        if (bundle != null) {
            String apiKey = bundle.getString("apikey");
            Log.d(this.getClass().getSimpleName(), "apiKey = " + apiKey);
            }
        }
    } catch (PackageManager.NameNotFoundException e) {
        Utilities.log(this.getClass().getSimpleName(), "Failed to load meta-data, NameNotFound: " + e.getMessage());
    } catch (NullPointerException e) {
        Log.e(this.getClass().getSimpleName(), "Failed to load meta-data, NullPointer: " + e.getMessage());
    }

  • Hi wir können den Key auch in der deklarieren string Ressource dann das Besondere an der meta-data? wie du oben erwähnst <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> Ich kann dasselbe mit der String-Ressource deklarieren <string name="com.google.android.gms.version">3.4</string> so ist dann was besonderes an der meta-data?

    – Asif Mushtaq

    14. April 2018 um 20:13 Uhr

  • @AsifMushtaq Stellen Sie sich vor, Sie hätten einmal eine Android-Bibliothek geschrieben, die von vielen Entwicklern verwendet wird. Und Ihre Bibliothek braucht einen Schlüssel, um Daten zu verarbeiten. In diesem Fall fügen Entwickler, die Ihre Bibliothek verwenden, diesen Schlüssel einfach als Metadaten in das App-Manifest ein. Und dieser Schlüssel wird von Ihrer Bibliothek verwendet. Ich hoffe, es macht Sinn

    – FaisalAhmed

    14. Dezember 2018 um 12:45 Uhr


  • Darüber hinaus können Metadaten von anderen Anwendungen nur mit dem Paketnamen gelesen werden.

    – Hadi

    5. März 2020 um 16:30 Uhr

  • Mai ein meta-data Tag programmgesteuert aktiviert/deaktiviert werden? Zum Beispiel die Implementierung einer Webbrowser-App WebView das bietet Benutzern die Möglichkeit Opt-in/out der Erfassung von Google-Metriken.

    – Adam Hurwitz

    6. Dezember 2020 um 18:35 Uhr


  • @W0rmH0le, können wir Metadaten für Aktivitäten dynamisch anwenden (nicht im Manifest deklarieren)?

    – Hardik Paranjape

    14. Januar 2021 um 21:28 Uhr

1647153188 253 Was sind Metadaten Und was nutzt es in Android
Fred Grott

Lassen Sie mich ein einfaches Beispiel geben. Es hilft beim Auffinden zusätzlicher Informationen – ist die grundlegende Erklärung von Metadaten.

317-745-4618

Wenn ich die Metadaten hinzufüge, dass es sich um eine Telefonnummer handelt, wissen Sie oder können daraus das geografische Gebiet ermitteln. Wenn ich nicht angegeben habe, dass es sich um eine Telefonnummer handelt, verfügen Sie nicht über genügend Metadaten, um zu wissen, um welches Objekt es sich handelt. Es könnte eine US-SSN oder etwas anderes sein.

Es wird in Android verwendet, um Objekte zum Manifest hinzuzufügen. Wenn Sie beispielsweise Google Service verwenden, würde man es hinzufügen, um die Google Services-Version anzugeben, an die die App gebunden ist.

1647153188 935 Was sind Metadaten Und was nutzt es in Android
Nir Duan

Metadaten sind Daten, die andere Daten beschreiben, um andere Anwendungen darüber zu informieren, wie die Daten selbst zu verwenden sind.

Android-Nutzung:

Absichten sind ein gutes Beispiel dafür – Wenn Sie Daten in Absichten übergeben möchten, müssen diese primitiv sein, da Android nur vorgefertigte Metadaten über diese Art von Objekten hat. (String und Integer haben unterschiedliche Binärstrukturen, mit denen das System arbeiten kann).

Absichten ermöglichen es Ihnen auch, Ihre eigenen Metadaten zu Ihren benutzerdefinierten Objekten über die zu erstellen Paket class (dieser Prozess zum manuellen Erstellen eigener Metadaten wird als Rangieren)

996250cookie-checkWas sind Metadaten? Und was nützt es in Android

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

Privacy policy