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 را نشان می دهد.
AndroidManifest.xml را مشاهده کنید
اگر پروژه شما شامل چندین فایل AndroidManifest.xml
باشد، مثلاً برای طعمهای محصول، یا شامل کتابخانههایی باشد که یک فایل مانیفست را نیز ارائه میدهند، آنها در یک فایل در برنامه شما ادغام میشوند. این فایل مانیفست معمولاً یک فایل باینری در APK یا بسته برنامه است، اما وقتی در APK Analyzer انتخاب میشود، فرم XML این موجودیت بازسازی و ارائه میشود.
این نمایشگر به شما کمک می کند تا تغییراتی را که ممکن است در طول ساخت در برنامه شما ایجاد شده است درک کنید. برای مثال، میتوانید ببینید که چگونه فایل AndroidManifest.xml
از کتابخانهای که برنامه شما به آن وابسته است در فایل AndroidManifest.xml
نهایی ادغام میشود.
علاوه بر این، این نمایشگر برخی از قابلیت های پرز را ارائه می دهد. هشدارها یا خطاها در گوشه سمت راست بالا ظاهر می شوند. شکل 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 شما تعریف شدهاند، بنابراین این عدد زیرمجموعهای از روشهای مرجع است.
نمای درختی فایل DEX را فیلتر کنید
درست بالای لیست کلاس ، APK Analyzer فیلترهایی را برای مشاهده محتویات فایل DEX انتخاب شده، همانطور که در شکل 4 نشان داده شده است، فراهم می کند.
برای استفاده از فیلترها برای نمایش تمام متدها و فیلدهای داخل یک کلاس، به صورت زیر عمل کنید:
- در لیست File ، فایل
classes.dex
را انتخاب کنید. - در لیست کلاس ، به یک کلاس بروید و آن را انتخاب کنید.
- کلاسی را که انتخاب کرده اید گسترش دهید.
- نمایش فیلدها را تغییر دهید برای نمایش یا پنهان کردن فیلدهای کلاس.
- نمایش روشها را تغییر دهید برای نمایش یا پنهان کردن متدهای کلاس.
نمایش همه روشها یا فیلدهای ارجاعشده را تغییر دهید برای نمایش یا پنهان کردن بستهها، کلاسها، متدها و فیلدهای مرجع.
در نمای درختی، گره های ایتالیک ارجاعی هستند که در فایل DEX انتخاب شده تعریفی ندارند. یک فایل DEX می تواند به روش ها و فیلدهایی که در فایل دیگری تعریف شده اند ارجاع دهد. برای مثال
System.out.println()
ارجاع به متدprintln()
در چارچوب اندروید است.
بارگیری نقشه های ProGuard
در کنار آیکون های فیلتر، آیکون های نقشه برداری ProGuard قرار دارند. نمادهای ProGuard خاکستری میشوند تا زمانی که مجموعهای از فایلهای نقشهبرداری ProGuard را بارگیری کنید که قابلیتهایی را به نمایشگر DEX اضافه میکنند، مانند حذف نامها ( mapping.txt
)، نشان دادن گرههایی که حذف شدهاند ( usage.txt
)، و نشان دادن گرههایی که میتوانند. حذف شود ( seeds.txt
).
فایل نقشهبرداری ProGuard که وارد میکنید باید از همان ساختاری باشد که فایلهای DEX را با فعال کردن کوچک کردن کد تولید کرده است.
برای بارگذاری فایل های نقشه برداری ProGuard، موارد زیر را انجام دهید:
- روی Load Proguard mappings... کلیک کنید.
به پوشه پروژه که حاوی فایلهای نقشهبرداری است بروید و همه فایلها، هر ترکیبی از فایلها یا پوشهای که حاوی فایلها است را بارگیری کنید.
فایل های نگاشت معمولاً در
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 را برای کپی و چسباندن برای گره انتخابی نشان میدهد. روی هر گره در نمای فهرست کلاس کلیک راست کنید تا منوی زمینه آن نمایش داده شود.
نمایش بایت کد : کلاس، متد یا فیلد انتخاب شده را از حالت کامپایل خارج می کند و نمایش بایت کد کوچک را در یک گفتگو به صورت زیر نمایش می دهد:
یافتن کاربردها : همانطور که در شکل 7 نشان داده شده است، نشان می دهد که کدام قسمت های دیگر کد DEX به کلاس یا روش انتخاب شده ارجاع دارند. اگر seeds.txt
بارگذاری شده است، گره هایی که به صورت پررنگ نمایش داده می شوند نشان می دهد که پیکربندی ProGuard از حذف آنها در حین کوچک شدن جلوگیری می کند. :
ایجاد قانون Proguard Keep : قوانین ProGuard را نشان میدهد که میتوانید آنها را کپی و در فایل پیکربندی ProGuard پروژه خود جایگذاری کنید، همانطور که در شکل 8 نشان داده شده است. این باعث میشود بسته، کلاس، متد یا فیلد معینی در مرحله کوچک کردن کد حذف نشود. برای اطلاعات بیشتر، به سفارشی کردن کدی که باید نگه دارید مراجعه کنید.
کدها و منابع را مشاهده کنید
کارهای مختلف ساخت، موجودیت های نهایی یک برنامه را تغییر می دهند. به عنوان مثال، قوانین کوچک کردن ProGuard می تواند کد نهایی شما را تغییر دهد و منابع تصویر می توانند توسط منابع موجود در طعم محصول لغو شوند.
برای مشاهده نسخه نهایی فایل های خود با APK Analyzer، همانطور که در شکل 9 نشان داده شده است، برای پیش نمایش متن یا موجودیت تصویر، روی موجودیت کلیک کنید.
APK Analyzer همچنین می تواند متن و فایل های باینری مختلف را نمایش دهد. برای مثال، مشاهدهگر موجودیت resources.arsc
به شما امکان میدهد مقادیر خاص پیکربندی، مانند ترجمههای زبانی برای یک منبع رشته را ببینید. در شکل 10، می توانید ترجمه های هر منبع رشته را ببینید.
مقایسه فایل ها
APK Analyzer می تواند اندازه موجودیت ها را در دو فایل APK مختلف یا بسته برنامه مقایسه کند. این زمانی مفید است که باید بدانید چرا برنامه شما نسبت به نسخه قبلی حجمش افزایش یافته است.
قبل از انتشار یک برنامه به روز شده، موارد زیر را انجام دهید:
- نسخه برنامه ای را که می خواهید منتشر کنید در APK Analyzer بارگیری کنید.
- در گوشه سمت راست بالای APK Analyzer، روی مقایسه با APK قبلی کلیک کنید... .
در کادر گفتگوی انتخاب، آرتیفکتی را که آخرین بار برای کاربران شما منتشر شده است پیدا کنید و روی OK کلیک کنید.
به نظر می رسد گفتگوی مشابه با شکل 11 به شما کمک می کند تا تأثیری که ممکن است به روز رسانی بر روی کاربران داشته باشد را ارزیابی کنید.
شکل 11 تفاوت بین اشکال زدایی و نسخه انتشار یک برنامه خاص را نشان می دهد. گزینه های ساخت متفاوتی بین این انواع ساخت استفاده می شود که موجودیت های زیربنایی را به طور متفاوتی تغییر می دهند.
، 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 را نشان می دهد.
AndroidManifest.xml را مشاهده کنید
اگر پروژه شما شامل چندین فایل AndroidManifest.xml
باشد، مثلاً برای طعمهای محصول، یا شامل کتابخانههایی باشد که یک فایل مانیفست را نیز ارائه میدهند، آنها در یک فایل در برنامه شما ادغام میشوند. این فایل مانیفست معمولاً یک فایل باینری در APK یا بسته برنامه است، اما وقتی در APK Analyzer انتخاب میشود، فرم XML این موجودیت بازسازی و ارائه میشود.
این نمایشگر به شما کمک می کند تا تغییراتی را که ممکن است در طول ساخت در برنامه شما ایجاد شده است درک کنید. برای مثال، میتوانید ببینید که چگونه فایل AndroidManifest.xml
از کتابخانهای که برنامه شما به آن وابسته است در فایل AndroidManifest.xml
نهایی ادغام میشود.
علاوه بر این، این نمایشگر برخی از قابلیت های پرز را ارائه می دهد. هشدارها یا خطاها در گوشه سمت راست بالا ظاهر می شوند. شکل 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 شما تعریف شدهاند، بنابراین این عدد زیرمجموعهای از روشهای مرجع است.
نمای درختی فایل DEX را فیلتر کنید
درست بالای لیست کلاس ، APK Analyzer فیلترهایی را برای مشاهده محتویات فایل DEX انتخاب شده، همانطور که در شکل 4 نشان داده شده است، فراهم می کند.
برای استفاده از فیلترها برای نمایش تمام متدها و فیلدهای داخل یک کلاس، به صورت زیر عمل کنید:
- در لیست File ، فایل
classes.dex
را انتخاب کنید. - در لیست کلاس ، به یک کلاس بروید و آن را انتخاب کنید.
- کلاسی را که انتخاب کرده اید گسترش دهید.
- نمایش فیلدها را تغییر دهید برای نمایش یا پنهان کردن فیلدهای کلاس.
- نمایش روشها را تغییر دهید برای نمایش یا پنهان کردن متدهای کلاس.
نمایش همه روشها یا فیلدهای ارجاعشده را تغییر دهید برای نمایش یا پنهان کردن بستهها، کلاسها، متدها و فیلدهای مرجع.
در نمای درختی، گره های ایتالیک ارجاعی هستند که در فایل DEX انتخاب شده تعریفی ندارند. یک فایل DEX می تواند به روش ها و فیلدهایی که در فایل دیگری تعریف شده اند ارجاع دهد. برای مثال
System.out.println()
ارجاع به متدprintln()
در چارچوب اندروید است.
بارگیری نقشه های ProGuard
در کنار آیکون های فیلتر، آیکون های نقشه برداری ProGuard قرار دارند. نمادهای ProGuard خاکستری میشوند تا زمانی که مجموعهای از فایلهای نقشهبرداری ProGuard را بارگیری کنید که قابلیتهایی را به نمایشگر DEX اضافه میکنند، مانند حذف نامها ( mapping.txt
)، نشان دادن گرههایی که حذف شدهاند ( usage.txt
)، و نشان دادن گرههایی که میتوانند. حذف شود ( seeds.txt
).
فایل نقشهبرداری ProGuard که وارد میکنید باید از همان ساختاری باشد که فایلهای DEX را با فعال کردن کوچک کردن کد تولید کرده است.
برای بارگذاری فایل های نقشه برداری ProGuard، موارد زیر را انجام دهید:
- روی Load Proguard mappings... کلیک کنید.
به پوشه پروژه که حاوی فایلهای نقشهبرداری است بروید و همه فایلها، هر ترکیبی از فایلها یا پوشهای که حاوی فایلها است را بارگیری کنید.
فایل های نگاشت معمولاً در
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 را برای کپی و چسباندن برای گره انتخابی نشان میدهد. روی هر گره در نمای فهرست کلاس کلیک راست کنید تا منوی زمینه آن نمایش داده شود.
نمایش بایت کد : کلاس، متد یا فیلد انتخاب شده را از حالت کامپایل خارج می کند و نمایش بایت کد کوچک را در یک گفتگو به صورت زیر نمایش می دهد:
یافتن کاربردها : همانطور که در شکل 7 نشان داده شده است، نشان می دهد که کدام قسمت های دیگر کد DEX به کلاس یا روش انتخاب شده ارجاع دارند. اگر seeds.txt
بارگذاری شده است، گره هایی که به صورت پررنگ نمایش داده می شوند نشان می دهد که پیکربندی ProGuard از حذف آنها در حین کوچک شدن جلوگیری می کند. :
ایجاد قانون Proguard Keep : قوانین ProGuard را نشان میدهد که میتوانید آنها را کپی و در فایل پیکربندی ProGuard پروژه خود جایگذاری کنید، همانطور که در شکل 8 نشان داده شده است. این باعث میشود بسته، کلاس، متد یا فیلد معینی در مرحله کوچک کردن کد حذف نشود. برای اطلاعات بیشتر، به سفارشی کردن کدی که باید نگه دارید مراجعه کنید.
کدها و منابع را مشاهده کنید
کارهای مختلف ساخت، موجودیت های نهایی یک برنامه را تغییر می دهند. به عنوان مثال، قوانین کوچک کردن ProGuard می تواند کد نهایی شما را تغییر دهد و منابع تصویر می توانند توسط منابع موجود در طعم محصول لغو شوند.
برای مشاهده نسخه نهایی فایل های خود با APK Analyzer، همانطور که در شکل 9 نشان داده شده است، برای پیش نمایش متن یا موجودیت تصویر، روی موجودیت کلیک کنید.
APK Analyzer همچنین می تواند متن و فایل های باینری مختلف را نمایش دهد. برای مثال، مشاهدهگر موجودیت resources.arsc
به شما امکان میدهد مقادیر خاص پیکربندی، مانند ترجمههای زبانی برای یک منبع رشته را ببینید. در شکل 10، می توانید ترجمه های هر منبع رشته را ببینید.
مقایسه فایل ها
APK Analyzer می تواند اندازه موجودیت ها را در دو فایل APK مختلف یا بسته برنامه مقایسه کند. این زمانی مفید است که باید بدانید چرا برنامه شما نسبت به نسخه قبلی حجمش افزایش یافته است.
قبل از انتشار یک برنامه به روز شده، موارد زیر را انجام دهید:
- نسخه برنامه ای را که می خواهید منتشر کنید در APK Analyzer بارگیری کنید.
- در گوشه سمت راست بالای APK Analyzer، روی مقایسه با APK قبلی کلیک کنید... .
در کادر گفتگوی انتخاب، آرتیفکتی را که آخرین بار برای کاربران شما منتشر شده است پیدا کنید و روی OK کلیک کنید.
به نظر می رسد گفتگوی مشابه با شکل 11 به شما کمک می کند تا تأثیری که ممکن است به روز رسانی بر روی کاربران داشته باشد را ارزیابی کنید.
شکل 11 تفاوت بین اشکال زدایی و نسخه انتشار یک برنامه خاص را نشان می دهد. گزینه های ساخت متفاوتی بین این انواع ساخت استفاده می شود که موجودیت های زیربنایی را به طور متفاوتی تغییر می دهند.