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

  
इससे लाइब्रेरी को एआरटी के ज़रिए पढ़े जाने के लिए, कंपाइलेशन ट्रेस से पहले अपने-आप जानकारी भरने की सुविधा मिलती है.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
7 अगस्त, 2024 1.3.1 - - 1.4.0-ऐल्फ़ा02

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

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

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

ग्रूवी

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

Kotlin

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

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

सुझाव

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

नई समस्या जोड़ें

समस्या को ट्रैक करने वाले टूल से जुड़ा दस्तावेज़ देखें हमारा वीडियो देखें.

वर्शन 1.4

वर्शन 1.4.0-alpha02

7 अगस्त, 2024

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

नई सुविधाएं

  • प्रोफ़ाइल इंस्टॉलर में api 35 समर्थन जोड़ा गया. (6f9f6fa)

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

  • नए प्लैटफ़ॉर्म एपीआई के ऐक्सेस की मैन्युअल आउटलाइन हटाई गई. ऐसा इसलिए, क्योंकि AGP 7.3 या उसके बाद के वर्शन (जैसे कि R8 वर्शन 3.3) के साथ R8 का इस्तेमाल करने पर और एजीपी 8.1 या उसके बाद के वर्शन (जैसे कि D8 वर्शन 8.1) के साथ, R8 का इस्तेमाल करने पर ऐसा अपने-आप होता है. जो क्लाइंट एजीपी का इस्तेमाल नहीं कर रहे हैं उन्हें 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 में ये कमियां शामिल हैं.

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

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

वर्शन 1.3.0

22 मार्च, 2023

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

01.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/2314574)

वर्शन 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)
  • प्रोफ़ाइल इंस्टॉलर मेनिफ़ेस्ट (I5c728, b/258619948) में ब्रॉडकास्ट रजिस्ट्री को ठीक करके, MacrobenchmarkScope.dropShaderCache() के क्रैश होने की समस्या को ठीक करें

वर्शन 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)
  • एक नया शेल ब्रॉडकास्ट जोड़ा जाता है, जो मैक्रोबेंचमार्क को इन-मेमोरी प्रोफ़ाइल डेटा को डिस्क में पूरी तरह से फ़्लश करने में मदद करता है. ऐसा इसलिए, ताकि बेसलाइन प्रोफ़ाइल जनरेशन में इसे शामिल किया जा सके. 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 में ये कमियां हैं.

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

  • बेसलाइन प्रोफ़ाइल का इस्तेमाल करने वाले ऐप्लिकेशन के लिए, CompilationMode.BaselineProfile का इस्तेमाल करके मैक्रो बेंचमार्किंग का काम आसान बनाने के लिए, ProfileInstaller को ठीक करें. (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 डिवाइसों के लिए प्रोफ़ाइल ट्रांसकोडिंग जोड़ी गई. इस बदलाव का मतलब है कि ये डिवाइस प्रोफ़ाइल को ट्रांसकोड कर देंगे, ताकि यह पक्का किया जा सके कि लिखित प्रोफ़ाइल हमेशा एआरटी से इस्तेमाल की जा सकती हो. पहले इन प्लैटफ़ॉर्म पर ट्रांसकोडिंग नहीं की जाती थी, जिसकी वजह से कभी-कभी एआरटी, सोर्स प्रोफ़ाइल को प्रोसेस नहीं कर पाता था. डेवलपर एपीआई में कोई बदलाव नहीं किया गया है.

वर्शन 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 में तय किए जाते हैं. फ़ाइल हर लाइन में एक नियम तय करती है, जहां इस मामले में नियम, लाइब्रेरी में मौजूद तरीकों या क्लास से मिलान करने के लिए एक पैटर्न है. इन नियमों का सिंटैक्स, 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 फ़्लैग होता है वह बताता है कि यह एक तरीका है जिसे स्टार्टअप के बाद कॉल किया जाता है.

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

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

  • लाइब्रेरी ये नियम तय कर सकती हैं, जिन्हें एएआर आर्टफ़ैक्ट में पैकेज किया जाएगा. जब इन आर्टफ़ैक्ट वाले APK बनाए जाते हैं, तो इन नियमों को एक साथ मर्ज कर दिया जाता है. इसके बाद, इन नियमों का इस्तेमाल एक ऐसी कॉम्पैक्ट बाइनरी ART प्रोफ़ाइल बनाने के लिए किया जाता है जो खास तौर पर APK के लिए होती है. इसके बाद, डिवाइसों पर 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
    

प्रोफ़ाइलों के लिए बैलेंस ज़रूरी है

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