2016-04-20 2 views
-1

Est-ce que strings.xml n'est pas censé être utilisé comme stockage de texte pour faciliter la traduction du texte dans l'application vers d'autres langues? Par exemple, il est conseillé de stocker l'identifiant de l'application Facebook selon les manuels facebook dans le fichier string.xml.Pourquoi les ID d'application sont-ils stockés dans strings.xml sous Android?

Cela signifie que si je veux partager ce fichier avec des tierces parties pour la traduction, je devrai supprimer manuellement tous les identifiants par moi-même, ou partager ces identifiants avec des tierces parties.

Répondre

0

Vous pouvez créer plus d'un strings.xml, vous pouvez le nommer appids.xml et stocker tous vos identifiants dans ce fichier. Il est courant de pardigm de conception de logiciel pour séparer les données du code, ainsi vous n'utiliserez pas simplement une constante de chaîne pour votre identification.

pour Android meilleures pratiques, Google est la source pour aller, par exemple, ils proposent l'utilisation d'un fichier appids.xml ici: Getting started with Play Games

Facebook pourrait être en utilisant cette forme plus simple de stocker votre identifiant pour rendre le tutoriel plus facile à suivre.

+0

Mais facebook suggère d'utiliser strings.xml pour leurs ids: https://developers.facebook.com/docs/android/getting-started Pourquoi feraient-ils cela? –

+0

Google inclura l'utilisation d'un fichier ids.xml dans certains de ses guides. Facebook pourrait utiliser strings.xml pour rendre le tutoriel moins d'étapes et plus facile à suivre pour les débutants. –

+0

'ids.xml' sert à créer une ressource' R.id'. Je crois que OP fait référence aux clés API, qui sont des chaînes, et donc placé dans 'strings.xml' –

1

Est-ce que strings.xml n'est pas censé être utilisé comme stockage de texte pour faciliter la traduction du texte de l'application vers d'autres langues?

Non. Il s'agit du stockage de chaînes pour tout type de chaînes. La majorité de l'utilisation est liée à la localisation mais il est tout à fait correct d'avoir tout ce qui s'y trouve comme des clés API, des jetons, peu importe. Veuillez noter que vous n'êtes pas limité au seul fichier strings.xml. Vous pouvez avoir autant de fichiers *.xml contenant des ressources de chaîne que vous le souhaitez (il est donc assez fréquent de fractionner la localisation par module classe/fonctionnel et de le conserver dans un fichier séparé xml).

0

Fondamentalement, il peut arriver que les identifiants que vous allez utiliser dans votre application peuvent apparaître dans plusieurs java class files. Donc, par erreur, il peut y avoir une chance que vous tapotez l'ID ou la clé secrète qui entraînera l'échec du résultat que vous attendez. Comme une bonne pratique, vous devriez stocker ces choses dans strings.xml qui vous aidera à minimiser la possibilité d'erreur dans votre résultat. Aussi, si vous changez votre identifiant ou votre clé pour une raison quelconque, vous devrez peut-être changer cela dans chaque fichier où vous l'avez mentionné. Au lieu de cela, si vous le changez simplement en strings.xml, il reflétera automatiquement à chaque fois que vous l'avez utilisé. En allant plus loin, Android est open source. Ainsi, toute application que vous créez peut être rétrocontrôlée et tout le code peut être lu. Cela conduit à la fuite de vos identifiants et peut-être des clés secrètes pour toute API que vous avez utilisé dans votre application.