प्रोफ़ाइल इंस्टॉलर

  
इससे लाइब्रेरी, ART के पढ़ने के लिए कंपाइलेशन ट्रेस को पहले से भर सकती हैं.
नया अपडेट रिलीज़ किया गया जांचा और परखा हुआ वर्शन रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
2 अक्टूबर, 2024 1.4.1 - - -

डिपेंडेंसी तय करना

Profileइंस्टॉलर पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़ना होगा. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

Groovy

dependencies {
    implementation "androidx.profileinstaller:profileinstaller:1.4.1"
}

Kotlin

dependencies {
    implementation("androidx.profileinstaller:profileinstaller:1.4.1")
}

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव

आपके सुझाव, शिकायत या राय से हमें Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. कोई नई लाइब्रेरी बनाने से पहले, कृपया इस लाइब्रेरी में मौजूद मौजूदा समस्याओं पर एक नज़र डालें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए अपना वोट जोड़ा जा सकता है.

नई समस्या बनाना

ज़्यादा जानकारी के लिए, समस्या ट्रैकर का दस्तावेज़ देखें.

वर्शन 1.4

वर्शन 1.4.1

2 अक्टूबर, 2024

androidx.profileinstaller:profileinstaller:1.4.1 रिलीज़ हो गया है. वर्शन 1.4.1 में ये बातें शामिल हैं.

गड़बड़ियां ठीक की गईं

  • एक से ज़्यादा प्रोसेस को क्रम से सिग्नल भेजकर, एक से ज़्यादा प्रोसेस वाली बेसलाइन प्रोफ़ाइल रिकॉर्डिंग की सुविधा को ठीक किया गया. इस समस्या को ठीक करने के लिए, आपको अपने मैक्रोबेंचमार्क/बेसलाइन प्रोफ़ाइल मॉड्यूल में androidx.benchmark:benchmark-macro:1.4.0-alpha02 और ऐप्लिकेशन में androidx.profileinstaller:profileinstaller:1.4.1, दोनों को अपडेट करना होगा. (I0f519, b/366231469)

वर्शन 1.4.0

18 सितंबर, 2024

androidx.profileinstaller:profileinstaller:1.4.0 रिलीज़ हो गया है. वर्शन 1.4.0 में ये कमिट शामिल हैं.

1.3.0 के बाद से हुए अहम बदलाव

  • ProfileInstaller अब एपीआई 35 और उसके बाद के वर्शन पर प्रोफ़ाइलें कैप्चर/इंस्टॉल करने की सुविधा देता है. प्लैटफ़ॉर्म के वर्शन के अपडेट के लिए, अब ProfileInstaller को अपडेट करने की ज़रूरत नहीं होगी. (6f9f6fa)
  • Android U (एपीआई 34) और एमुलेटर पर शेडर छोड़ते समय क्रैश होने की समस्या ठीक की गई. (I031ca, b/274314544)
  • V_015S प्रोफ़ाइल फ़ॉर्मैट में, ट्रांसकोडिंग के तरीके के फ़्लैग को ठीक करें. (aosp/2906631, aosp/2847740)

वर्शन 1.4.0-rc01

4 सितंबर, 2024

androidx.profileinstaller:profileinstaller:1.4.0-rc01 को बिना किसी बदलाव के रिलीज़ किया गया है. वर्शन 1.4.0-rc01 में ये कमिट शामिल हैं.

वर्शन 1.4.0-beta01

21 अगस्त, 2024

androidx.profileinstaller:profileinstaller:1.4.0-beta01 को पिछले अल्फा वर्शन में किए गए बदलावों के बिना रिलीज़ किया गया है. वर्शन 1.4.0-beta01 में ये कमिट शामिल हैं.

वर्शन 1.4.0-alpha02

7 अगस्त, 2024

androidx.profileinstaller:profileinstaller:1.4.0-alpha02 रिलीज़ हो गया है. वर्शन 1.4.0-alpha02 में ये कमिट मौजूद हैं.

नई सुविधाएं

  • प्रोफ़ाइल इंस्टॉलर में एपीआई 35 के लिए सहायता जोड़ी गई. (6f9f6fa)

गड़बड़ियां ठीक की गईं

  • नए प्लैटफ़ॉर्म एपीआई के ऐक्सेस की मैन्युअल आउटलाइन हटाई गई. ऐसा इसलिए, क्योंकि AGP 7.3 या उसके बाद के वर्शन (जैसे कि R8 वर्शन 3.3) के साथ R8 का इस्तेमाल करने पर और एजीपी 8.1 या उसके बाद के वर्शन (जैसे कि D8 वर्शन 8.1) के साथ, R8 का इस्तेमाल करने पर ऐसा अपने-आप होता है. जिन क्लाइंट ने AGP का इस्तेमाल नहीं किया है उन्हें D8 के 8.1 या उसके बाद के वर्शन पर अपडेट करने का सुझाव दिया जाता है. ज़्यादा जानकारी के लिए यह लेख देखें. (If6b4c, b/345472586)

वर्शन 1.4.0-alpha01

7 फ़रवरी, 2024

androidx.profileinstaller:profileinstaller:1.4.0-alpha01 रिलीज़ हो गया है. 1.4.0-alpha01 वर्शन में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • प्रोफ़ाइल की पुष्टि करने वाले टूल में, कोई प्रोफ़ाइल एम्बेड न होने की वजह से गड़बड़ी का कोड जोड़ा गया. (Ifb109, b/313928520)
  • Android U (एपीआई 34) और एमुलेटर पर शेडर छोड़ते समय क्रैश होने की समस्या ठीक की गई. (I031ca, b/274314544)
  • प्रोफ़ाइल इंस्टॉलर में, Android U के लिए सहायता चालू की गई. (Iaf177)
  • Android U पर प्रोफ़ाइल इंस्टॉलर की गड़बड़ी को ठीक किया गया. यह गड़बड़ी इसलिए होती थी, क्योंकि प्रोसेस शुरू होने पर मौजूदा प्रोफ़ाइल खाली नहीं बनती थी. (Ie3899)
  • V_015S प्रोफ़ाइल फ़ॉर्मैट में, बिटमैप को ट्रांसकोड करने के तरीके से जुड़ी समस्या को ठीक करें. (aosp/2906631) और (aosp/2847740)

वर्शन 1.3

वर्शन 1.3.1

3 मई, 2023

androidx.profileinstaller:profileinstaller:1.3.1 रिलीज़ हो गया है. 1.3.1 वर्शन में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • प्रोफ़ाइल इंस्टॉलर (Iaf177) में, Android U के लिए सहायता चालू की गई
  • प्रोसेस शुरू होने पर मौजूदा प्रोफ़ाइल खाली न होने की वजह से, Android U पर प्रोफ़ाइल इंस्टॉलर को चालू करने के दौरान मिली गड़बड़ी ठीक कर दी गई है. (Ie3899)

वर्शन 1.3.0

22 मार्च, 2023

androidx.profileinstaller:profileinstaller:1.3.0 रिलीज़ हो गया है. 1.3.0 वर्शन में ये बदलाव शामिल हैं.

1.2.0 के बाद किए गए अहम बदलाव

  • ProfileInstallReceiver में NullPointerException को ठीक किया गया. (b/243851384)
  • ऐप्लिकेशन में जाकर यह देखने के लिए ProfileVerifier एपीआई जोड़ा गया है कि कोई बेसलाइन प्रोफ़ाइल कंपाइल की गई है, शेड्यूल की गई है या मौजूद नहीं है (I263a4, b/246653809)
  • एक नया शेल ब्रॉडकास्ट जोड़ा जाता है, जो मैक्रोबेंचमार्क को इन-मेमोरी प्रोफ़ाइल डेटा को डिस्क में पूरी तरह से फ़्लश करने में मदद करता है. ऐसा इसलिए, ताकि बेसलाइन प्रोफ़ाइल जनरेशन में इसे शामिल किया जा सके. BaselineProfileRule की मदद से बेसलाइन प्रोफ़ाइलें कैप्चर करने और CompilationMode.Partial(warmupIterations) का इस्तेमाल करके प्रोफ़ाइल की परफ़ॉर्मेंस का आकलन करने के लिए, मैक्रोबेंचमार्क लाइब्रेरी का इस्तेमाल करना ज़रूरी है.
  • कंप्रेस की गई बेसलाइन प्रोफ़ाइलों का पता लगाने के लिए, गड़बड़ी का पता लगाने वाला कोड जोड़ा गया. मैक्रोबेंचमार्क में या सीपीयू ओवरहेड की वजह से, प्रोफ़ाइल इंस्टॉलर के ज़रिए कंप्रेस की गई बेसलाइन प्रोफ़ाइल इंस्टॉल नहीं की जा सकतीं. साथ ही, ऐप्लिकेशन बनाते समय इससे बचना चाहिए. इसके लिए, Studio/AGP Electric Eel या bundletool वर्शन 1.13.1(I86413, b/261998144) में से किसी एक को अपडेट करें
  • प्रोफ़ाइलें कैप्चर करने और शेडर कैश को ड्रॉप करने के लिए, मैक्रोबेंचमार्क के लिए हुक जोड़े गए. ये हुक, बिना रूट किए गए डिवाइसों पर बेसलाइन प्रोफ़ाइलें जनरेट करने या मैक्रोबेंचमार्किंग के लिए ज़रूरी हैं (Ie0a7d, b/250083467, b/253094958) (Ia5171, b/231455742)

वर्शन 1.3.0-rc01

8 मार्च, 2023

androidx.profileinstaller:profileinstaller:1.3.0-rc01 को पिछले बीटा वर्शन के बाद से कोई बदलाव किए बिना रिलीज़ किया गया है. 1.3.0-rc01 वर्शन में ये बदलाव शामिल हैं.

वर्शन 1.3.0-beta01

8 फ़रवरी, 2023

androidx.profileinstaller:profileinstaller:1.3.0-beta01 रिलीज़ हो गया है. वर्शन 1.3.0-beta01 में ये कमिट हैं.

एपीआई में हुए बदलाव

  • संपीड़ित प्रोफ़ाइलों को मैनेज करने की सुविधा हटा दी गई है - खोलने और डिकंप्रेस करने से, स्टार्टअप के दौरान सीपीयू के इस्तेमाल में 10 सेकंड का रेग्रेसन होता है. इसलिए, गलत तरीके से संपीड़ित की गई बेसलाइन प्रोफ़ाइलों का पता लगाने के लिए, डाइग्नोस्टिक्स जोड़ा गया है. (I86413, b/261998144)

वर्शन 1.3.0-alpha03

11 जनवरी, 2023

androidx.profileinstaller:profileinstaller:1.3.0-alpha03 रिलीज़ हो गया है. 1.3.0-alpha03 वर्शन में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • कंप्रेस की गई या बिना कंप्रेस की गई बेसलाइन प्रोफ़ाइल को हैंडल करने की सुविधा चालू करता है (Ic61a0)
  • profileinstaller मेनिफ़ेस्ट में ब्रॉडकास्ट रजिस्ट्री को ठीक करके, MacrobenchmarkScope.dropShaderCache() को क्रैश होने से रोकें (I5c728, b/258619948)

वर्शन 1.3.0-alpha02

9 नवंबर, 2022

androidx.profileinstaller:profileinstaller:1.3.0-alpha02 रिलीज़ हो गया है. 1.3.0-alpha02 वर्शन में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • शेडर कैश को छोड़ने के लिए, बेंचमार्क के लिए एक हुक जोड़ा गया है. इससे, कोल्ड स्टार्टअप के लिए लगातार परफ़ॉर्मेंस बनी रहती है. खास तौर पर, जब वॉर्मअप के दौरान जनरेट की गई प्रोफ़ाइलों के साथ कंपाइल किया जा रहा हो. benchmark-macro-junit4:1.2.0-alpha05 या इसके बाद के वर्शन का इस्तेमाल करके, कोल्ड स्टार्टअप को मेज़र करने के लिए, यह अपडेट ज़रूरी है. बेंचमार्क लाइब्रेरी के एपीआई में हुए बदलावों के बारे में जानने के लिए, कृपया बेंचमार्क 1.2.0-alpha07 पेज पर जाएं. (Ia5171, b/231455742)

वर्शन 1.3.0-alpha01

24 अक्टूबर, 2022

androidx.profileinstaller:profileinstaller:1.3.0-alpha01 रिलीज़ हो गया है. 1.3.0-alpha01 वर्शन में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • ऐप्लिकेशन में जाकर यह देखने के लिए ProfileVerifier एपीआई जोड़ा गया है कि कोई बेसलाइन प्रोफ़ाइल कंपाइल की गई है, शेड्यूल की गई है या मौजूद नहीं है (I263a4, b/246653809)
  • एक नया शेल ब्रॉडकास्ट जोड़ा गया है, जो Macrobenchmark को डिस्क पर, मेमोरी में मौजूद प्रोफ़ाइल डेटा को पूरी तरह से फ़्लश करने की सुविधा देता है, ताकि उसे बेसलाइन प्रोफ़ाइल जनरेशन में शामिल किया जा सके. BaselineProfileRule की मदद से बेसलाइन प्रोफ़ाइलें कैप्चर करने और CompilationMode.Partial(warmupIterations) का इस्तेमाल करके प्रोफ़ाइल की परफ़ॉर्मेंस का आकलन करने के लिए, मैक्रोबेंचमार्क लाइब्रेरी का इस्तेमाल करना ज़रूरी है. (Ie0a7d, b/250083467, b/253094958)

वर्शन 1.2.2

वर्शन 1.2.2

11 जनवरी, 2023

androidx.profileinstaller:profileinstaller:1.2.2 रिलीज़ हो गया है. वर्शन 1.2.2 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • कंप्रेस की गई या कंप्रेस न की गई बेसलाइन प्रोफ़ाइलों (Ic61a0) को मैनेज करने की सुविधा चालू करता है

वर्शन 1.2.1

वर्शन 1.2.1

7 दिसंबर, 2022

androidx.profileinstaller:profileinstaller:1.2.1 रिलीज़ हो गया है. वर्शन 1.2.1 में ये कमियां शामिल हैं.

नई सुविधाएं

  • S_V2 (एपीआई 32) और TIRAMISU (एपीआई 33) (b/254900303) के लिए प्रोफ़ाइलइंस्टॉलर चालू करें.

वर्शन 1.2.0

वर्शन 1.2.0

27 जुलाई, 2022

androidx.profileinstaller:profileinstaller:1.2.0 रिलीज़ हो गया है. वर्शन 1.2.0 में ये कमियां शामिल हैं.

1.1.0 के बाद किए गए अहम बदलाव

  • Android 12 और इसके बाद के वर्शन पर इस्तेमाल किए जाने वाले ART प्रोफ़ाइल फ़ॉर्मैट के लिए सहायता जोड़ी गई.
  • बेसलाइन प्रोफ़ाइलों का इस्तेमाल करते समय, Macrobenchmarks के साथ ज़्यादा बेहतर नतीजे पाने के लिए, ProfileInstallReceiver में नए एपीआई जोड़ें.

वर्शन 1.2.0-rc01

15 जून, 2022

androidx.profileinstaller:profileinstaller:1.2.0-rc01 रिलीज़ हो गया है. 1.2.0-rc01 वर्शन में ये बदलाव शामिल हैं.

  • यह वर्शन, androidx.profileinstaller:profileinstaller:1.2.0-beta03 के जैसा है.

वर्शन 1.2.0-beta03

1 जून, 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta03 रिलीज़ हो गया है. 1.2.0-beta03 वर्शन में ये बदलाव शामिल हैं.

वर्शन 1.2.0-beta02

18 मई, 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta02 रिलीज़ हो गया है. 1.2.0-beta02 वर्शन में ये बदलाव शामिल हैं.

  • Compose 1.2.0-beta02 वर्शन के साथ काम करने के लिए किसी भी बदलाव की ज़रूरत नहीं है.

वर्शन 1.2.0-beta01

11 मई, 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta01 रिलीज़ हो गया है. 1.2.0-beta01 वर्शन में ये बदलाव शामिल हैं.

एपीआई में बदलाव

  • बेसलाइन प्रोफ़ाइल का इस्तेमाल करते समय, Macrobenchmarks से ज़्यादा मिलते-जुलते नतीजे पाने के लिए, ProfileInstallReceiver में नए एपीआई जोड़ें. (If2ae5, b/215740637)

गड़बड़ियां ठीक की गईं

  • Android 12 और उसके बाद के वर्शन पर, मेटाडेटा V_001 फ़ॉर्मैट का इस्तेमाल करने पर, प्रोफ़ाइल इंस्टॉलर एक मददगार मैसेज दिखाता है. (aosp/1978526, b/217502387)
  • प्रोफ़ाइल इंस्टॉलर अब androidx.startup के 1.1.1 वर्शन का इस्तेमाल करता है. (aosp/2077099, b/229828376)

वर्शन 1.2.0-alpha02

26 जनवरी, 2022

androidx.profileinstaller:profileinstaller:1.2.0-alpha02 रिलीज़ हो गया है. 1.2.0-alpha02 वर्शन में ये बदलाव शामिल हैं.

यह वर्शन 1.2.0-alpha01 जैसा ही है.

वर्शन 1.2.0-alpha01

12 जनवरी, 2022

androidx.profileinstaller:profileinstaller:1.2.0-alpha01 रिलीज़ हो गया है. 1.2.0-alpha01 वर्शन में ये बदलाव शामिल हैं.

नई सुविधाएं

  • Android 12 और उसके बाद के वर्शन पर इस्तेमाल किए जाने वाले ART प्रोफ़ाइल फ़ॉर्मैट के लिए सहायता जोड़ी गई.

वर्शन 1.1.0

वर्शन 1.1.0

9 फ़रवरी, 2022

androidx.profileinstaller:profileinstaller:1.1.0 रिलीज़ हो गया है. 1.1.0 वर्शन में ये बदलाव शामिल हैं.

वर्शन 1.1.0-rc01

15 दिसंबर, 2021

androidx.profileinstaller:profileinstaller:1.1.0-rc01 को 1.1.0-beta04 के बाद से बिना किसी अपडेट के रिलीज़ किया गया है. 1.1.0-rc01 वर्शन में ये कमिट शामिल हैं.

वर्शन 1.1.0-beta04

1 दिसंबर, 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta04 रिलीज़ हो गया है. वर्शन 1.1.0-beta04 में ये कमिट हैं.

वर्शन 1.1.0-beta03

17 नवंबर, 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta03 रिलीज़ हो गया है. 1.1.0-beta03 वर्शन में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • Compose 1.1.0-beta03 के साथ काम करने के लिए अपडेट किया गया

वर्शन 1.1.0-beta02

3 नवंबर, 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta02 रिलीज़ हो गया है. 1.1.0-beta02 वर्शन में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • Compose 1.1.0-beta02 के साथ काम करने के लिए अपडेट किया गया

वर्शन 1.1.0-beta01

27 अक्टूबर, 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta01 रिलीज़ हो गया है. 1.1.0-beta01 वर्शन में ये बदलाव शामिल हैं.

  • 1.1.0-alpha07 के बाद से कोई बदलाव नहीं हुआ.

वर्शन 1.1.0-alpha07

13 अक्टूबर, 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha07 रिलीज़ हो गया है. 1.1.0-alpha07 वर्शन में ये बदलाव शामिल हैं.

नई सुविधाएं

  • Android N पर, profm के लिए सहायता जोड़ी गई

वर्शन 1.1.0-alpha06

29 सितंबर, 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha06 रिलीज़ हो गया है. 1.1.0-alpha06 वर्शन में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • N, O, और O_MR1 पर, प्रोफ़ाइल इंस्टॉलर की ट्रांसकोडिंग से जुड़ी समस्याएं ठीक करना. (I12d75)

वर्शन 1.1.0-alpha05

15 सितंबर, 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha05 रिलीज़ हो गया है. 1.1.0-alpha05 वर्शन में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • मल्टीडेक्स APK के लिए, Android Nougat और Android Oreo प्रोफ़ाइल को ट्रांसकोड करने की समस्या को ठीक किया गया.

वर्शन 1.1.0-alpha04

1 सितंबर, 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha04 रिलीज़ हो गया है. 1.1.0-alpha04 वर्शन में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • ProfileInstaller को ठीक करें, ताकि बेसलाइन प्रोफ़ाइल का इस्तेमाल करने वाले ऐप्लिकेशन, CompilationMode.BaselineProfile का इस्तेमाल करके मैक्रो बेंचमार्क आसानी से चला सकें. (I42657, b/196074999)

वर्शन 1.1.0-alpha03

18 अगस्त, 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha03 रिलीज़ हो गया है. 1.1.0-alpha03 वर्शन में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • प्रोफ़ाइल इंस्टॉलर को स्किप करने का तरीका बदलें, ताकि ऐप्लिकेशन की फ़ाइल डायरेक्ट्री में मौजूद फ़ाइल में PackageInfo.lastUpdatedTime को लॉग किया जा सके. साथ ही, अगली बार प्रोफ़ाइल इंस्टॉल करने से पहले, इसकी तुलना की जा सके. (Ib93d1)
  • ART की ज़रूरी शर्तों को पूरा करने के लिए, P, Q, R डिवाइसों पर प्रोफ़ाइल फ़ॉर्मैट में बदलाव करें (I84e89)

वर्शन 1.1.0-alpha02

4 अगस्त, 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha02 रिलीज़ हो गया है. वर्शन 1.1.0-alpha02 में ये कमियां हैं.

Compose 1.1.0-alpha01 के साथ काम करने के लिए अपडेट किया गया.

वर्शन 1.1.0-alpha01

21 जुलाई, 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha01 रिलीज़ हो गया है. 1.1.0-alpha01 वर्शन में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • एक गड़बड़ी को ठीक किया गया है, जिसकी वजह से कुछ मामलों में 'सख्त मोड' चालू हो जाता था.

संस्करण 1.0

वर्शन 1.0.4

13 अक्टूबर, 2021

androidx.profileinstaller:profileinstaller:1.0.4 रिलीज़ हो गया है. 1.0.4 वर्शन में ये बदलाव शामिल हैं.

  • Compose 1.0.4 के साथ काम करने के लिए अपडेट किया गया

वर्शन 1.0.3

29 सितंबर, 2021

androidx.profileinstaller:profileinstaller:1.0.3 रिलीज़ हो गया है. 1.0.3 वर्शन में ये बदलाव शामिल हैं.

  • Compose 1.0.3 के साथ काम करने के लिए अपडेट किया गया

वर्शन 1.0.2

1 सितंबर, 2021

androidx.profileinstaller:profileinstaller:1.0.2 रिलीज़ हो गया है. 1.0.2 वर्शन में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • P, Q, R डिवाइसों के लिए प्रोफ़ाइल ट्रांसकोडिंग जोड़ी गई. इस बदलाव का मतलब है कि ये डिवाइस, प्रोफ़ाइल को ट्रांसकोड करेंगे. इससे यह पक्का किया जा सकेगा कि लिखी गई प्रोफ़ाइल का इस्तेमाल, ART हमेशा कर सके. पहले इन प्लैटफ़ॉर्म पर ट्रांसकोडिंग को स्किप कर दिया जाता था. इस वजह से, कभी-कभी ART, सोर्स प्रोफ़ाइल को प्रोसेस नहीं कर पाता था. डेवलपर एपीआई में कोई बदलाव नहीं किया गया है.

वर्शन 1.0.1

4 अगस्त, 2021

androidx.profileinstaller:profileinstaller:1.0.1 रिलीज़ हो गया है. 1.0.1 वर्शन में ये बदलाव शामिल हैं.

Compose के वर्शन 1.0.1 के साथ काम करने के लिए अपडेट किया गया.

वर्शन 1.0.0

28 जुलाई, 2021

androidx.profileinstaller:profileinstaller:1.0.0 रिलीज़ हो गया है. वर्शन 1.0.0 में ये कमियां शामिल हैं.

1.0.0 के मुख्य फ़ीचर

प्रोफ़ाइल इंस्टॉलर एक नई लाइब्रेरी है. इसकी मदद से, लाइब्रेरी और ऐप्लिकेशन, “प्रोफ़ाइल के नियम” तय कर सकते हैं. साथ ही, ART प्रोफ़ाइल की जानकारी को APK के साथ बंडल कर सकते हैं. ऐप्लिकेशन लॉन्च होने के बाद, यह लाइब्रेरी उन प्रोफ़ाइलों को इंस्टॉल करेगी. इसका इस्तेमाल, ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाने के लिए किया जा सकता है.

प्रोफ़ाइल के इन नियमों के बारे में ज़्यादा जानकारी पाने और यह जानने के लिए कि ये कैसे काम करते हैं, कृपया 1.0.0-beta01 पर जाकर रिलीज़ नोट देखें.

वर्शन 1.0.0-rc02

14 जुलाई, 2021

androidx.profileinstaller:profileinstaller:1.0.0-rc02 रिलीज़ हो गया है. 1.0.0-rc02 वर्शन में ये कमिट शामिल हैं.

वर्शन 1.0.0-rc01

1 जुलाई, 2021

androidx.profileinstaller:profileinstaller:1.0.0-rc01 रिलीज़ हो गया है. 1.0.0-rc01 वर्शन में ये कमिट शामिल हैं.

यह आरसी रिलीज़ है, जिसमें बीटा से कोई बदलाव नहीं किया गया है.

वर्शन 1.0.0-beta01

16 जून, 2021

androidx.profileinstaller:profileinstaller:1.0.0-beta01 रिलीज़ हो गया है. 1.0.0-beta01 वर्शन में ये बदलाव शामिल हैं.

लाइब्रेरी का मकसद

प्रोफ़ाइल इंस्टॉलर एक नई लाइब्रेरी है. इसकी मदद से, लाइब्रेरी और ऐप्लिकेशन, “प्रोफ़ाइल के नियम” तय कर सकते हैं. साथ ही, ART प्रोफ़ाइल की जानकारी को APK के साथ बंडल कर सकते हैं. ऐप्लिकेशन लॉन्च होने के बाद, यह लाइब्रेरी उन प्रोफ़ाइलों को इंस्टॉल करेगी. इसका इस्तेमाल, ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाने के लिए किया जा सकता है.

प्रोफ़ाइल को इंस्टॉल करने के लिए, androidx.startup लाइब्रेरी का इस्तेमाल करें. अगर किसी वजह से प्रोफ़ाइल को इंस्टॉल करने की सुविधा बंद करनी है, तो ऐप्लिकेशन के मेनिफ़ेस्ट में बदलाव करके उसे हटाया जा सकता है:


       <provider
           android:name="androidx.startup.InitializationProvider"
           android:authorities="${applicationId}.androidx-startup"
           android:exported="false"
           tools:node="merge">
           <meta-data android:name="androidx.profileinstaller.ProfileInstallerInitializer"
                     tools:node="remove" />
       </provider>

यह सुविधा तब खास तौर पर काम की होती है, जब आपके ऐप्लिकेशन को शुरू करने के लिए ज़रूरी शर्तें आसान न हों और आपको ProfileInstaller.writeProfile एपीआई का इस्तेमाल करके, प्रोफ़ाइल इंस्टॉल करने की प्रोसेस को मैन्युअल तरीके से ट्रिगर करना हो.

प्रोफ़ाइल के नियम क्या हैं?

  • किसी लाइब्रेरी के लिए प्रोफ़ाइल के नियम, src/main या मिलती-जुलती डायरेक्ट्री में मौजूद टेक्स्ट फ़ाइल baseline-prof.txt में बताए जाते हैं. फ़ाइल में हर लाइन के लिए एक नियम तय किया जाता है. इस मामले में, नियम लाइब्रेरी में मौजूद तरीकों या क्लास से मैच करने के लिए एक पैटर्न होता है. इन नियमों का सिंटैक्स, ART प्रोफ़ाइल के ऐसे फ़ॉर्मैट का सुपरसेट है जिसे कोई भी व्यक्ति पढ़ सकता है. इसका इस्तेमाल adb shell profman --dump-classes-and-methods ... का इस्तेमाल करते समय किया जाता है. ये नियम, किसी भी तरीके या क्लास को टारगेट करने के लिए, इनमें से किसी एक फ़ॉर्म में होते हैं.

  • किसी तरीके के नियम का पैटर्न इस तरह का होगा:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • क्लास के लिए बने नियम का पैटर्न इस तरह का होगा:

    <CLASS_DESCRIPTOR>
    
  • यहां <FLAGS>, H, S, और P में से एक या उससे ज़्यादा वर्ण हैं. इनसे यह पता चलता है कि इस तरीके को "हॉट", "स्टार्टअप" या "स्टार्टअप के बाद" के तौर पर फ़्लैग किया जाना चाहिए या नहीं.

  • <CLASS_DESCRIPTOR>, उस क्लास का डिस्क्रिप्टर होता है जिससे टारगेट किया गया तरीका जुड़ा है. उदाहरण के लिए, क्लास androidx.compose.runtime.SlotTable का डिस्क्रिप्टर Landroidx/compose/runtime/SlotTable; होगा.

  • <METHOD_SIGNATURE>, तरीके का हस्ताक्षर है. इसमें नाम, पैरामीटर के टाइप, और तरीके के रिटर्न टाइप शामिल होते हैं. उदाहरण के लिए, LayoutNode पर मौजूद fun isPlaced(): Boolean तरीके का हस्ताक्षर isPlaced()Z है.

  • इन पैटर्न में वाइल्डकार्ड (**, *, और ?) हो सकते हैं, ताकि एक नियम में कई तरीके या क्लास शामिल हो सकें.

नियमों का क्या काम है?

  • जिस तरीके पर H फ़्लैग लगा होता है वह "हॉट" तरीका होता है. इसे समय से पहले कंपाइल किया जाना चाहिए.

  • जिस तरीके पर S फ़्लैग लगा होता है उससे पता चलता है कि यह स्टार्टअप के समय कॉल किया जाने वाला तरीका है. साथ ही, स्टार्टअप के समय तरीके को कंपाइल करने और उसका विश्लेषण करने में लगने वाले समय को बचाने के लिए, इसे पहले से कंपाइल किया जाना चाहिए.

  • जिस तरीके के साथ P फ़्लैग होता है उससे पता चलता है कि यह स्टार्टअप के बाद कॉल किया जाने वाला तरीका है.

  • इस फ़ाइल में मौजूद क्लास से पता चलता है कि इसका इस्तेमाल स्टार्टअप के दौरान किया जाता है. साथ ही, क्लास को लोड होने में आने वाले खर्च से बचने के लिए, इस क्लास को हीप में पहले से ही तय किया जाना चाहिए.

यह कैसे काम करता है?

  • लाइब्रेरी ये नियम तय कर सकती हैं, जिन्हें AAR आर्टफ़ैक्ट में पैकेज किया जाएगा. जब इन आर्टफ़ैक्ट को शामिल करके कोई APK बनाया जाता है, तो इन नियमों को आपस में मर्ज कर दिया जाता है. इसके बाद, मर्ज किए गए नियमों का इस्तेमाल करके, APK के हिसाब से एक कॉम्पैक्ट बाइनरी ART प्रोफ़ाइल बनाई जाती है. इसके बाद, जब APK डिवाइसों पर इंस्टॉल हो जाता है, तो ART इस प्रोफ़ाइल का फ़ायदा ले सकता है. इससे, ऐप्लिकेशन के किसी खास सबसेट को पहले से कंपाइल किया जा सकता है, ताकि ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाया जा सके. खास तौर पर, पहली बार चलाने पर. ध्यान दें कि डीबग करने लायक ऐप्लिकेशन पर इसका कोई असर नहीं होगा.

  • नियम फ़ाइलों का नाम baseline-prof.txt होना चाहिए और उन्हें आपके मुख्य सोर्स सेट की रूट डायरेक्ट्री में रखा जाना चाहिए. यह आपकी AndroidManifset.xml फ़ाइल की सिबलिंग फ़ाइल होनी चाहिए

  • फ़िलहाल, इन फ़ाइलों का इस्तेमाल सिर्फ़ तब किया जाएगा, जब Android Gradle प्लग इन 7.0+ का इस्तेमाल किया जा रहा हो और जो फ़िलहाल आपके gradle.properties में फ़्लैग के साथ ही चालू हों:

    # Enable adding baseline-prof.txt files to AAR artifacts, and binary profiles to APKs
    android.experimental.enableArtProfiles=true
    

प्रोफ़ाइलों में बैलेंस होना ज़रूरी है

  • सही तरीके से तैयार की गई प्रोफ़ाइलों से सबसे अच्छे नतीजे मिलते हैं. इनमें, स्टार्टअप पाथ और परफ़ॉर्मेंस के लिए ज़रूरी तरीकों और क्लास को प्राथमिकता दी जाती है. हालांकि, प्रोफ़ाइलों में बहुत ज़्यादा तरीकों या क्लास को शामिल करने से, मेमोरी खर्च और डिस्क इस्तेमाल पर बुरा असर पड़ सकता है. इसलिए, प्रोफ़ाइल के नियमों को तय करते समय, ज़रूरत के हिसाब से ही प्रोफ़ाइल बनाएं.