2016-04-20 12 views
-1

Soll strings.xml nicht als Textspeicher verwendet werden, um die Übersetzung von Text in der App in andere Sprachen zu vereinfachen?Warum App-IDs in strings.xml in Android gespeichert werden?

Zum Beispiel - Facebook-App-ID nach Facebook-Handbüchern wird empfohlen, in strings.xml gespeichert werden.

Es bedeutet, dass, wenn ich diese Datei mit 3. Parteien für die Übersetzung teilen möchte - muss ich manuell alle IDs selbst entfernen, oder teilen Sie diese IDs mit Dritten Parteien.

Antwort

0

erstellen Sie können mehr als eine strings.xml Sie es appids.xml und speichern Sie alle Ihre IDs in dieser Datei benennen konnte. Es ist gängige Software-Design-Pardigm, Daten aus dem Code zu trennen, so dass Sie nicht nur eine String-Konstante für Ihre ID verwenden.

Für Android Best Practices, ist Google die Quelle zum Beispiel zu gehen, sie die Verwendung einer appids.xml Datei schlägt hier: Getting started with Play Games

Facebook könnte diese einfachere Form der Speicherung Ihre ID verwendet das Tutorial leichter zu Folgen.

+0

Aber Facebook schlägt strings.xml für ihre IDs zu verwenden: https://developers.facebook.com/docs/android/getting-started Warum sollten sie das tun? –

+0

Google wird in einigen seiner Handbücher eine ids.xml-Datei verwenden. Facebook könnte strings.xml verwenden, um das Tutorial weniger Schritte und einfacher für Anfänger zu machen. –

+0

'ids.xml' ist zum Erstellen einer' R.id' Ressource. Ich glaube, OP bezieht sich auf API-Schlüssel, die Strings sind und daher in 'strings.xml' platziert werden. –

1

Soll strings.xml nicht als Textspeicher verwendet werden, um die Übersetzung von Text in die App in andere Sprachen zu erleichtern?

Nein. Es ist String-Speicher für jede Art von Saiten. Die Mehrheit der Benutzung ist lokalisationsbezogen, aber es ist vollkommen in Ordnung, etwas zu haben, das eine Zeichenkette wie API-Schlüssel oder Tokens ist.

Bitte beachten Sie, dass Sie nicht nur auf strings.xml Datei beschränkt sind. Sie können so viele *.xml Dateien haben, die String-Ressourcen enthalten, wie Sie möchten (daher ist es üblich, die Lokalisierung nach Klasse/Funktionsmodul aufzuteilen und in separater xml Datei zu speichern).

0

Grundsätzlich kann es vorkommen, dass die IDs, die Sie in Ihrer Anwendung verwenden werden in mehreren java class files auftreten können. Aus Versehen besteht also die Möglichkeit, dass Sie die ID oder den geheimen Schlüssel falsch eingeben, was zu einem Fehlschlag des von Ihnen erwarteten Ergebnisses führt. Als eine gute Praxis sollten Sie solche Dinge in strings.xml speichern, die Ihnen helfen werden, die Möglichkeit von Fehlern in Ihrem Ergebnis zu minimieren. Auch wenn Sie Ihre ID oder Ihren Schlüssel aus irgendeinem Grund ändern, müssen Sie das möglicherweise in jeder Datei ändern, in der Sie es erwähnt haben. Wenn Sie es stattdessen einfach in strings.xml ändern, wird es automatisch in jeder Instanz reflektiert, in der Sie es verwendet haben. Gehen Sie weiter, Android ist Open Source. Somit kann jede App, die Sie erstellen, reverse engineered sein und der gesamte Code kann gelesen werden. Dies führt zum Auslaufen Ihrer IDs und kann einige geheime Schlüssel für jede API sein, die Sie in Ihrer App verwendet haben.