के निर्माण के दौरान स्ट्रिंग्स.एक्सएमएल की सामग्री बदलें, मैं अपने सीएमएस (या कुछ डीबी) से res/values / strings.xml से उपयोगकर्ता-दृश्य स्ट्रिंग्स का मूल्य लोड करने में सक्षम होना चाहता हूं। धीरे-धीरे निर्माण।एंड्रॉइड ग्रेडल बिल्ड में,
उदा।
<string name="button_label">OK, do it</string>
<string name="button_label">OK, do it now!</string>
... या जो कुछ भी बदला जा सकता है।
यह विचार यह है कि नया मूल्य हमारे सीएमएस से निर्मित समय पर पढ़ा जाएगा, और फिर एपीके फ़ाइल में बेक्ड हो जाएगा। (प्रेरणा ऐप तारों में परिवर्तन स्वचालित करने के लिए है, ताकि ऐप से कोई भी पाठ मौजूदा सीएमएस से पढ़ा जा सके)।
इसे प्राप्त करने का सबसे अच्छा तरीका क्या है? एंड्रॉइड बिल्ड सिस्टम द्वारा उपयोग किए जाने से ठीक पहले, निर्माण फ़ाइलों के दौरान संसाधन फ़ाइलों (उदा। स्ट्रिंग्स.एक्सएमएल) को उत्पन्न/संशोधित करना संभव है?
जोड़ा जा रहा है कुछ और आवश्यकताओं:
- समाधान, "वैकल्पिक संसाधन" का समर्थन करने के अन्य भाषाओं के लिए तार अधिभावी उर्फ जरूरत है। (http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources)
- समाधान मूल (डिफ़ॉल्ट) strings.xml फ़ाइल में मौजूद मानों को ओवरराइड करने में सक्षम होना चाहिए।
आसान तरीका: http://tools.android.com/tech-docs/new-build-system variant.resValue ... अन्य: खुद का ग्रेडल प्लगइन बनाएं ... – Selvin
धन्यवाद सेल्विन, जो आशाजनक दिखता है। हालांकि इसके बारे में एक सवाल: मैं अलग-अलग भाषाओं के लिए फ़ॉलबैक मूल्य प्रदान करने के बारे में कैसे जाऊं? क्या यह इस समारोह के साथ संभव है? – treesAreEverywhere
'applicationVariants.all {variant -> variant.resValue" string "," button_xxx "," यहां टेक्स्ट जाता है "} '... निश्चित रूप से आपको कुछ ग्रोवी मूल बातें सीखने की आवश्यकता है (उदाहरण के लिए उन मानों को ऑनलाइन या उससे प्राप्त करने के लिए आपकी विशिष्ट xml/json फ़ाइल) ... fx https://gist.github.com/SelvinPL/f89476b6585690cb252b ... मैं इसे fx 'colorPrimaryAX' उत्पन्न करने के लिए उपयोग करता हूं जो x% अल्फा https: //gist.github के साथ रंग है .com/सेल्विनपीएल/8e673e38c5fed8e2132b – Selvin