ساخت خود را با APK Analyzer آنالیز کنید، ساخت خود را با APK Analyzer آنالیز کنید

Android Studio شامل یک تحلیلگر APK است که پس از تکمیل فرآیند ساخت، بینش فوری درباره ترکیب APK یا Android App Bundle شما ارائه می‌کند. استفاده از تحلیلگر APK می تواند زمان صرف مشکلات اشکال زدایی فایل ها و منابع DEX در برنامه را کاهش دهد و به کاهش اندازه APK شما کمک کند. APK Analyzer نیز از طریق خط فرمان با apkanalyzer در دسترس است.


با APK Analyzer می توانید:

  • اندازه مطلق و نسبی فایل‌های موجود در برنامه، مانند فایل‌های منبع DEX و Android را مشاهده کنید.
  • ترکیب فایل های DEX را درک کنید.
  • به سرعت نسخه های نهایی فایل ها را در برنامه مشاهده کنید، مانند فایل AndroidManifest.xml .
  • مقایسه کنار هم بین دو APK یا دسته برنامه انجام دهید.

در صورت باز بودن پروژه، سه راه برای دسترسی به APK Analyzer وجود دارد:

  • یک APK یا بسته نرم افزاری را به پنجره ویرایشگر Android Studio بکشید.
  • در پنجره Project به نمای پروژه بروید، سپس روی APK در فهرست پیش‌فرض build/output/apks/ دوبار کلیک کنید.
  • Build > Analyze APK را در نوار منو انتخاب کنید، سپس APK یا بسته برنامه خود را انتخاب کنید.

مشاهده اطلاعات فایل و اندازه

APK ها فایل هایی هستند که از فرمت فایل ZIP پیروی می کنند. APK Analyzer هر فایل یا پوشه را به عنوان موجودی نمایش می دهد که می توانید آن را برای پیمایش در پوشه ها گسترش دهید. سلسله مراتب موجودیت ها ساختار فایل ها و پوشه ها را در فایل APK منعکس می کند.

تحلیلگر APK اندازه فایل فشرده (یا "اندازه فایل خام") و مقادیر اندازه فایل دانلودی را برای هر موجود نشان می دهد، همانطور که در شکل 1 نشان داده شده است. Raw File Size نشان دهنده سهم موجودیت در اندازه کل APK است. اندازه دانلود نشان دهنده اندازه فشرده تخمینی موجودیت است که توسط Google Play ارائه می شود. ٪ از حجم کل دانلود، درصدی از اندازه کل دانلود APK را نشان می دهد.

شکل 1. اندازه فایل در APK Analyzer.

AndroidManifest.xml را مشاهده کنید

اگر پروژه شما شامل چندین فایل AndroidManifest.xml باشد، مثلاً برای طعم‌های محصول، یا شامل کتابخانه‌هایی باشد که یک فایل مانیفست را نیز ارائه می‌دهند، آنها در یک فایل در برنامه شما ادغام می‌شوند. این فایل مانیفست معمولاً یک فایل باینری در APK یا بسته برنامه است، اما وقتی در APK Analyzer انتخاب می‌شود، فرم XML این موجودیت بازسازی و ارائه می‌شود.

این نمایشگر به شما کمک می کند تا تغییراتی را که ممکن است در طول ساخت در برنامه شما ایجاد شده است درک کنید. برای مثال، می‌توانید ببینید که چگونه فایل AndroidManifest.xml از کتابخانه‌ای که برنامه شما به آن وابسته است در فایل AndroidManifest.xml نهایی ادغام می‌شود.

علاوه بر این، این نمایشگر برخی از قابلیت های پرز را ارائه می دهد. هشدارها یا خطاها در گوشه سمت راست بالا ظاهر می شوند. شکل 2 خطای گزارش شده برای فایل مانیفست انتخابی را نشان می دهد.

شکل 2. یک نماد خطا در بالا سمت راست برای فایل مانیفست انتخاب شده ظاهر می شود.

مشاهده فایل های DEX

نمایشگر فایل DEX APK Analyzer به شما امکان دسترسی فوری به اطلاعات اساسی موجود در فایل(های) DEX در برنامه شما را می دهد. بیننده کلاس، بسته، کل مرجع و تعداد اعلان‌ها را ارائه می‌کند، که می‌تواند به تصمیم‌گیری در مورد استفاده از multidex یا نحوه حذف وابستگی‌ها برای رسیدن به زیر حد 64K DEX کمک کند.

شکل 3 یک برنامه با اندازه متوسط ​​را نشان می دهد که زیر حد 64K DEX است. هر بسته، کلاس و متد داخل فایل DEX دارای شمارش هایی است که در ستون های Defined Methods و Referenced Methods فهرست شده اند.

ستون Referenced Methods تمام روش هایی را که فایل DEX به آنها ارجاع می دهد، شمارش می کند. این معمولاً شامل روش‌های تعریف‌شده در کد، کتابخانه‌های وابستگی و روش‌های تعریف‌شده در بسته‌های استاندارد جاوا و اندروید است که کد استفاده می‌کند. اینها روشهایی هستند که برای محدودیت روش 64K در هر فایل DEX محاسبه می شوند.

ستون Defined Methods فقط متدهایی را می‌شمارد که در یکی از فایل‌های DEX شما تعریف شده‌اند، بنابراین این عدد زیرمجموعه‌ای از روش‌های مرجع است.

شکل 3. یک برنامه با اندازه متوسط.

نمای درختی فایل DEX را فیلتر کنید

درست بالای لیست کلاس ، APK Analyzer فیلترهایی را برای مشاهده محتویات فایل DEX انتخاب شده، همانطور که در شکل 4 نشان داده شده است، فراهم می کند.

شکل 4. فیلترهای DEX برای نمایش فیلدها و روش‌های BuildConfig تنظیم شده‌اند.

برای استفاده از فیلترها برای نمایش تمام متدها و فیلدهای داخل یک کلاس، به صورت زیر عمل کنید:

  1. در لیست File ، فایل classes.dex را انتخاب کنید.
  2. در لیست کلاس ، به یک کلاس بروید و آن را انتخاب کنید.
  3. کلاسی را که انتخاب کرده اید گسترش دهید.
  4. نمایش فیلدها را تغییر دهید برای نمایش یا پنهان کردن فیلدهای کلاس.
  5. نمایش روش‌ها را تغییر دهید برای نمایش یا پنهان کردن متدهای کلاس.
  6. نمایش همه روش‌ها یا فیلدهای ارجاع‌شده را تغییر دهید برای نمایش یا پنهان کردن بسته‌ها، کلاس‌ها، متدها و فیلدهای مرجع.

    در نمای درختی، گره های ایتالیک ارجاعی هستند که در فایل DEX انتخاب شده تعریفی ندارند. یک فایل DEX می تواند به روش ها و فیلدهایی که در فایل دیگری تعریف شده اند ارجاع دهد. برای مثال System.out.println() ارجاع به متد println() در چارچوب اندروید است.

بارگیری نقشه های ProGuard

در کنار آیکون های فیلتر، آیکون های نقشه برداری ProGuard قرار دارند. نمادهای ProGuard خاکستری می‌شوند تا زمانی که مجموعه‌ای از فایل‌های نقشه‌برداری ProGuard را بارگیری کنید که قابلیت‌هایی را به نمایشگر DEX اضافه می‌کنند، مانند حذف نام‌ها ( mapping.txt )، نشان دادن گره‌هایی که حذف شده‌اند ( usage.txt )، و نشان دادن گره‌هایی که می‌توانند. حذف شود ( seeds.txt ).

فایل نقشه‌برداری ProGuard که وارد می‌کنید باید از همان ساختاری باشد که فایل‌های DEX را با فعال کردن کوچک کردن کد تولید کرده است.

شکل 5. بارگذاری نقشه های Proguard...

برای بارگذاری فایل های نقشه برداری ProGuard، موارد زیر را انجام دهید:

  1. روی Load Proguard mappings... کلیک کنید.
  2. به پوشه پروژه که حاوی فایل‌های نقشه‌برداری است بروید و همه فایل‌ها، هر ترکیبی از فایل‌ها یا پوشه‌ای که حاوی فایل‌ها است را بارگیری کنید.

    فایل های نگاشت معمولاً در project / app /build/outputs/mappings/release/ هستند. انتخابگر فایل اگر این ساختار پروژه را شناسایی کند، به طور پیش فرض در پوشه انتشار قرار می گیرد.

    ابتدا، انتخابگر فایل نام فایل‌هایی را که دقیقاً مطابق با mapping.txt ، seeds.txt و usage.txt هستند را بررسی می‌کند. سپس، انتخابگر فایل، نام فایل‌هایی را که حاوی mapping متن، usage ، یا seeds در جایی هستند و با .txt ختم می‌شوند، بررسی می‌کند. به عنوان مثال release-seeds-1.10.15.txt یک مسابقه است.

لیست زیر فایل های نقشه برداری را شرح می دهد:

  • seeds.txt : گره هایی که پیکربندی ProGuard از حذف آنها در حین کوچک شدن جلوگیری می کند، به صورت پررنگ نشان داده شده اند.
  • mapping.txt : نام‌های Deobfuscate را فعال می‌کند بنابراین می توانید نام اصلی گره هایی را که توسط R8 مبهم شده اند بازیابی کنید. به عنوان مثال، می توانید نام گره های مبهم مانند a ، b ، c را به MyClass ، MainActivity و myMethod() بازیابی کنید.
  • usage.txt : نمایش گره های حذف شده را فعال می کند بنابراین می توانید کلاس ها، متدها و فیلدهایی را که توسط R8 در حین کوچک شدن حذف شده اند نشان دهید. گره های بازیابی شده به صورت خطی نشان داده شده اند.

    برای اطلاعات بیشتر در مورد استفاده از R8 برای مبهم کردن و کوچک کردن کد خود، به کوچک کردن، مبهم کردن و بهینه سازی برنامه خود مراجعه کنید.

نمایش بایت کد، یافتن موارد استفاده و ایجاد قانون Keep

گره‌ها در نمای فهرست کلاس دارای یک منوی زمینه با گزینه‌های زیر هستند که به شما امکان می‌دهد بایت کد را ببینید، موارد استفاده را بیابید، و گفتگویی را نشان می‌دهد که قوانین ProGuard را برای کپی و چسباندن برای گره انتخابی نشان می‌دهد. روی هر گره در نمای فهرست کلاس کلیک راست کنید تا منوی زمینه آن نمایش داده شود.

نمایش بایت کد : کلاس، متد یا فیلد انتخاب شده را از حالت کامپایل خارج می کند و نمایش بایت کد کوچک را در یک گفتگو به صورت زیر نمایش می دهد:

شکل 6. بایت کد DEX برای روش init .

یافتن کاربردها : همانطور که در شکل 7 نشان داده شده است، نشان می دهد که کدام قسمت های دیگر کد DEX به کلاس یا روش انتخاب شده ارجاع دارند. اگر seeds.txt بارگذاری شده است، گره هایی که به صورت پررنگ نمایش داده می شوند نشان می دهد که پیکربندی ProGuard از حذف آنها در حین کوچک شدن جلوگیری می کند. :

شکل 7. مراجع به MyClass .

ایجاد قانون Proguard Keep : قوانین ProGuard را نشان می‌دهد که می‌توانید آن‌ها را کپی و در فایل پیکربندی ProGuard پروژه خود جای‌گذاری کنید، همانطور که در شکل 8 نشان داده شده است. این باعث می‌شود بسته، کلاس، متد یا فیلد معینی در مرحله کوچک کردن کد حذف نشود. برای اطلاعات بیشتر، به سفارشی کردن کدی که باید نگه دارید مراجعه کنید.

شکل 8. قوانین ProGuard که می توانید آنها را از دیالوگ در فایل پیکربندی ProGuard خود کپی کنید.

کدها و منابع را مشاهده کنید

کارهای مختلف ساخت، موجودیت های نهایی یک برنامه را تغییر می دهند. به عنوان مثال، قوانین کوچک کردن ProGuard می تواند کد نهایی شما را تغییر دهد و منابع تصویر می توانند توسط منابع موجود در طعم محصول لغو شوند.

برای مشاهده نسخه نهایی فایل های خود با APK Analyzer، همانطور که در شکل 9 نشان داده شده است، برای پیش نمایش متن یا موجودیت تصویر، روی موجودیت کلیک کنید.

شکل 9. پیش نمایشی از منبع تصویر نهایی.

APK Analyzer همچنین می تواند متن و فایل های باینری مختلف را نمایش دهد. برای مثال، مشاهده‌گر موجودیت resources.arsc به شما امکان می‌دهد مقادیر خاص پیکربندی، مانند ترجمه‌های زبانی برای یک منبع رشته را ببینید. در شکل 10، می توانید ترجمه های هر منبع رشته را ببینید.

شکل 10. پیش نمایش منابع رشته ترجمه شده.

مقایسه فایل ها

APK Analyzer می تواند اندازه موجودیت ها را در دو فایل APK مختلف یا بسته برنامه مقایسه کند. این زمانی مفید است که باید بدانید چرا برنامه شما نسبت به نسخه قبلی حجمش افزایش یافته است.

قبل از انتشار یک برنامه به روز شده، موارد زیر را انجام دهید:

  1. نسخه برنامه ای را که می خواهید منتشر کنید در APK Analyzer بارگیری کنید.
  2. در گوشه سمت راست بالای APK Analyzer، روی مقایسه با APK قبلی کلیک کنید... .
  3. در کادر گفتگوی انتخاب، آرتیفکتی را که آخرین بار برای کاربران شما منتشر شده است پیدا کنید و روی OK کلیک کنید.

    به نظر می رسد گفتگوی مشابه با شکل 11 به شما کمک می کند تا تأثیری که ممکن است به روز رسانی بر روی کاربران داشته باشد را ارزیابی کنید.

شکل 11 تفاوت بین اشکال زدایی و نسخه انتشار یک برنامه خاص را نشان می دهد. گزینه های ساخت متفاوتی بین این انواع ساخت استفاده می شود که موجودیت های زیربنایی را به طور متفاوتی تغییر می دهند.

شکل 11. تفاوت بین اشکال زدایی و انتشار APK.
،

Android Studio شامل یک تحلیلگر APK است که پس از تکمیل فرآیند ساخت، بینش فوری درباره ترکیب APK یا Android App Bundle شما ارائه می‌کند. استفاده از تحلیلگر APK می تواند زمان صرف مشکلات اشکال زدایی فایل ها و منابع DEX در برنامه را کاهش دهد و به کاهش اندازه APK شما کمک کند. APK Analyzer نیز از طریق خط فرمان با apkanalyzer در دسترس است.


با APK Analyzer می توانید:

  • اندازه مطلق و نسبی فایل‌های موجود در برنامه، مانند فایل‌های منبع DEX و Android را مشاهده کنید.
  • ترکیب فایل های DEX را درک کنید.
  • به سرعت نسخه های نهایی فایل ها را در برنامه مشاهده کنید، مانند فایل AndroidManifest.xml .
  • مقایسه کنار هم بین دو APK یا دسته برنامه انجام دهید.

در صورت باز بودن پروژه، سه راه برای دسترسی به APK Analyzer وجود دارد:

  • یک APK یا بسته نرم افزاری را به پنجره ویرایشگر Android Studio بکشید.
  • در پنجره Project به نمای پروژه بروید، سپس روی APK در فهرست پیش‌فرض build/output/apks/ دوبار کلیک کنید.
  • Build > Analyze APK را در نوار منو انتخاب کنید، سپس APK یا بسته برنامه خود را انتخاب کنید.

مشاهده اطلاعات فایل و اندازه

APK ها فایل هایی هستند که از فرمت فایل ZIP پیروی می کنند. APK Analyzer هر فایل یا پوشه را به عنوان موجودی نمایش می دهد که می توانید آن را برای پیمایش در پوشه ها گسترش دهید. سلسله مراتب موجودیت ها ساختار فایل ها و پوشه ها را در فایل APK منعکس می کند.

تحلیلگر APK اندازه فایل فشرده (یا "اندازه فایل خام") و مقادیر اندازه فایل دانلودی را برای هر موجود نشان می دهد، همانطور که در شکل 1 نشان داده شده است. Raw File Size نشان دهنده سهم موجودیت در اندازه کل APK است. اندازه دانلود نشان دهنده اندازه فشرده تخمینی موجودیت است که توسط Google Play ارائه می شود. ٪ از حجم کل دانلود، درصدی از اندازه کل دانلود APK را نشان می دهد.

شکل 1. اندازه فایل در APK Analyzer.

AndroidManifest.xml را مشاهده کنید

اگر پروژه شما شامل چندین فایل AndroidManifest.xml باشد، مثلاً برای طعم‌های محصول، یا شامل کتابخانه‌هایی باشد که یک فایل مانیفست را نیز ارائه می‌دهند، آنها در یک فایل در برنامه شما ادغام می‌شوند. این فایل مانیفست معمولاً یک فایل باینری در APK یا بسته برنامه است، اما وقتی در APK Analyzer انتخاب می‌شود، فرم XML این موجودیت بازسازی و ارائه می‌شود.

این نمایشگر به شما کمک می کند تا تغییراتی را که ممکن است در طول ساخت در برنامه شما ایجاد شده است درک کنید. برای مثال، می‌توانید ببینید که چگونه فایل AndroidManifest.xml از کتابخانه‌ای که برنامه شما به آن وابسته است در فایل AndroidManifest.xml نهایی ادغام می‌شود.

علاوه بر این، این نمایشگر برخی از قابلیت های پرز را ارائه می دهد. هشدارها یا خطاها در گوشه سمت راست بالا ظاهر می شوند. شکل 2 خطای گزارش شده برای فایل مانیفست انتخابی را نشان می دهد.

شکل 2. یک نماد خطا در بالا سمت راست برای فایل مانیفست انتخاب شده ظاهر می شود.

مشاهده فایل های DEX

نمایشگر فایل DEX APK Analyzer به شما امکان دسترسی فوری به اطلاعات اساسی موجود در فایل(های) DEX در برنامه شما را می دهد. بیننده کلاس، بسته، کل مرجع و تعداد اعلان‌ها را ارائه می‌کند، که می‌تواند به تصمیم‌گیری در مورد استفاده از multidex یا نحوه حذف وابستگی‌ها برای رسیدن به زیر حد 64K DEX کمک کند.

شکل 3 یک برنامه با اندازه متوسط ​​را نشان می دهد که زیر حد 64K DEX است. هر بسته، کلاس و متد داخل فایل DEX دارای شمارش هایی است که در ستون های Defined Methods و Referenced Methods فهرست شده اند.

ستون Referenced Methods تمام روش هایی را که فایل DEX به آنها ارجاع می دهد، شمارش می کند. این معمولاً شامل روش‌های تعریف‌شده در کد، کتابخانه‌های وابستگی و روش‌های تعریف‌شده در بسته‌های استاندارد جاوا و اندروید است که کد استفاده می‌کند. اینها روشهایی هستند که برای محدودیت روش 64K در هر فایل DEX محاسبه می شوند.

ستون Defined Methods فقط متدهایی را می‌شمارد که در یکی از فایل‌های DEX شما تعریف شده‌اند، بنابراین این عدد زیرمجموعه‌ای از روش‌های مرجع است.

شکل 3. یک برنامه با اندازه متوسط.

نمای درختی فایل DEX را فیلتر کنید

درست بالای لیست کلاس ، APK Analyzer فیلترهایی را برای مشاهده محتویات فایل DEX انتخاب شده، همانطور که در شکل 4 نشان داده شده است، فراهم می کند.

شکل 4. فیلترهای DEX برای نمایش فیلدها و روش‌های BuildConfig تنظیم شده‌اند.

برای استفاده از فیلترها برای نمایش تمام متدها و فیلدهای داخل یک کلاس، به صورت زیر عمل کنید:

  1. در لیست File ، فایل classes.dex را انتخاب کنید.
  2. در لیست کلاس ، به یک کلاس بروید و آن را انتخاب کنید.
  3. کلاسی را که انتخاب کرده اید گسترش دهید.
  4. نمایش فیلدها را تغییر دهید برای نمایش یا پنهان کردن فیلدهای کلاس.
  5. نمایش روش‌ها را تغییر دهید برای نمایش یا پنهان کردن متدهای کلاس.
  6. نمایش همه روش‌ها یا فیلدهای ارجاع‌شده را تغییر دهید برای نمایش یا پنهان کردن بسته‌ها، کلاس‌ها، متدها و فیلدهای مرجع.

    در نمای درختی، گره های ایتالیک ارجاعی هستند که در فایل DEX انتخاب شده تعریفی ندارند. یک فایل DEX می تواند به روش ها و فیلدهایی که در فایل دیگری تعریف شده اند ارجاع دهد. برای مثال System.out.println() ارجاع به متد println() در چارچوب اندروید است.

بارگیری نقشه های ProGuard

در کنار آیکون های فیلتر، آیکون های نقشه برداری ProGuard قرار دارند. نمادهای ProGuard خاکستری می‌شوند تا زمانی که مجموعه‌ای از فایل‌های نقشه‌برداری ProGuard را بارگیری کنید که قابلیت‌هایی را به نمایشگر DEX اضافه می‌کنند، مانند حذف نام‌ها ( mapping.txt )، نشان دادن گره‌هایی که حذف شده‌اند ( usage.txt )، و نشان دادن گره‌هایی که می‌توانند. حذف شود ( seeds.txt ).

فایل نقشه‌برداری ProGuard که وارد می‌کنید باید از همان ساختاری باشد که فایل‌های DEX را با فعال کردن کوچک کردن کد تولید کرده است.

شکل 5. بارگذاری نقشه های Proguard...

برای بارگذاری فایل های نقشه برداری ProGuard، موارد زیر را انجام دهید:

  1. روی Load Proguard mappings... کلیک کنید.
  2. به پوشه پروژه که حاوی فایل‌های نقشه‌برداری است بروید و همه فایل‌ها، هر ترکیبی از فایل‌ها یا پوشه‌ای که حاوی فایل‌ها است را بارگیری کنید.

    فایل های نگاشت معمولاً در project / app /build/outputs/mappings/release/ هستند. انتخابگر فایل اگر این ساختار پروژه را شناسایی کند، به طور پیش فرض در پوشه انتشار قرار می گیرد.

    ابتدا، انتخابگر فایل نام فایل‌هایی را که دقیقاً مطابق با mapping.txt ، seeds.txt و usage.txt هستند را بررسی می‌کند. سپس، انتخابگر فایل، نام فایل‌هایی را که حاوی mapping متن، usage ، یا seeds در جایی هستند و با .txt ختم می‌شوند، بررسی می‌کند. به عنوان مثال release-seeds-1.10.15.txt یک مسابقه است.

لیست زیر فایل های نقشه برداری را شرح می دهد:

  • seeds.txt : گره هایی که پیکربندی ProGuard از حذف آنها در حین کوچک شدن جلوگیری می کند، به صورت پررنگ نشان داده شده اند.
  • mapping.txt : نام‌های Deobfuscate را فعال می‌کند بنابراین می توانید نام اصلی گره هایی را که توسط R8 مبهم شده اند بازیابی کنید. به عنوان مثال، می توانید نام گره های مبهم مانند a ، b ، c را به MyClass ، MainActivity و myMethod() بازیابی کنید.
  • usage.txt : نمایش گره های حذف شده را فعال می کند بنابراین می توانید کلاس ها، متدها و فیلدهایی را که توسط R8 در حین کوچک شدن حذف شده اند نشان دهید. گره های بازیابی شده به صورت خطی نشان داده شده اند.

    برای اطلاعات بیشتر در مورد استفاده از R8 برای مبهم کردن و کوچک کردن کد خود، به کوچک کردن، مبهم کردن و بهینه سازی برنامه خود مراجعه کنید.

نمایش بایت کد، یافتن موارد استفاده و ایجاد قانون Keep

گره‌ها در نمای فهرست کلاس دارای یک منوی زمینه با گزینه‌های زیر هستند که به شما امکان می‌دهد بایت کد را ببینید، موارد استفاده را بیابید، و گفتگویی را نشان می‌دهد که قوانین ProGuard را برای کپی و چسباندن برای گره انتخابی نشان می‌دهد. روی هر گره در نمای فهرست کلاس کلیک راست کنید تا منوی زمینه آن نمایش داده شود.

نمایش بایت کد : کلاس، متد یا فیلد انتخاب شده را از حالت کامپایل خارج می کند و نمایش بایت کد کوچک را در یک گفتگو به صورت زیر نمایش می دهد:

شکل 6. بایت کد DEX برای روش init .

یافتن کاربردها : همانطور که در شکل 7 نشان داده شده است، نشان می دهد که کدام قسمت های دیگر کد DEX به کلاس یا روش انتخاب شده ارجاع دارند. اگر seeds.txt بارگذاری شده است، گره هایی که به صورت پررنگ نمایش داده می شوند نشان می دهد که پیکربندی ProGuard از حذف آنها در حین کوچک شدن جلوگیری می کند. :

شکل 7. مراجع به MyClass .

ایجاد قانون Proguard Keep : قوانین ProGuard را نشان می‌دهد که می‌توانید آن‌ها را کپی و در فایل پیکربندی ProGuard پروژه خود جای‌گذاری کنید، همانطور که در شکل 8 نشان داده شده است. این باعث می‌شود بسته، کلاس، متد یا فیلد معینی در مرحله کوچک کردن کد حذف نشود. برای اطلاعات بیشتر، به سفارشی کردن کدی که باید نگه دارید مراجعه کنید.

شکل 8. قوانین ProGuard که می توانید آنها را از دیالوگ در فایل پیکربندی ProGuard خود کپی کنید.

کدها و منابع را مشاهده کنید

کارهای مختلف ساخت، موجودیت های نهایی یک برنامه را تغییر می دهند. به عنوان مثال، قوانین کوچک کردن ProGuard می تواند کد نهایی شما را تغییر دهد و منابع تصویر می توانند توسط منابع موجود در طعم محصول لغو شوند.

برای مشاهده نسخه نهایی فایل های خود با APK Analyzer، همانطور که در شکل 9 نشان داده شده است، برای پیش نمایش متن یا موجودیت تصویر، روی موجودیت کلیک کنید.

شکل 9. پیش نمایشی از منبع تصویر نهایی.

APK Analyzer همچنین می تواند متن و فایل های باینری مختلف را نمایش دهد. برای مثال، مشاهده‌گر موجودیت resources.arsc به شما امکان می‌دهد مقادیر خاص پیکربندی، مانند ترجمه‌های زبانی برای یک منبع رشته را ببینید. در شکل 10، می توانید ترجمه های هر منبع رشته را ببینید.

شکل 10. پیش نمایش منابع رشته ترجمه شده.

مقایسه فایل ها

APK Analyzer می تواند اندازه موجودیت ها را در دو فایل APK مختلف یا بسته برنامه مقایسه کند. این زمانی مفید است که باید بدانید چرا برنامه شما نسبت به نسخه قبلی حجمش افزایش یافته است.

قبل از انتشار یک برنامه به روز شده، موارد زیر را انجام دهید:

  1. نسخه برنامه ای را که می خواهید منتشر کنید در APK Analyzer بارگیری کنید.
  2. در گوشه سمت راست بالای APK Analyzer، روی مقایسه با APK قبلی کلیک کنید... .
  3. در کادر گفتگوی انتخاب، آرتیفکتی را که آخرین بار برای کاربران شما منتشر شده است پیدا کنید و روی OK کلیک کنید.

    به نظر می رسد گفتگوی مشابه با شکل 11 به شما کمک می کند تا تأثیری که ممکن است به روز رسانی بر روی کاربران داشته باشد را ارزیابی کنید.

شکل 11 تفاوت بین اشکال زدایی و نسخه انتشار یک برنامه خاص را نشان می دهد. گزینه های ساخت متفاوتی بین این انواع ساخت استفاده می شود که موجودیت های زیربنایی را به طور متفاوتی تغییر می دهند.

شکل 11. تفاوت بین اشکال زدایی و انتشار APK.