R8 در اندروید – ابزار R8 اندروید چه کاربردی دارد؟ آموزش کار با R8
اگر توسعه دهنده اندروید باشید، احتمالا باید با R8 در اندروید مواجه شده باشید، اگر در حال توسعه اپلیکیشنی هستید و قصد دارید که اپلیکیشن تان را برای کاربران زیادی مورد هدف قرار دهید، فاکتور ها و نکات زیادی وجود دارد که می بایست هنگام ساخت اپلیکیشن خود در نظر داشته باشید،یکی از مهم ترین عامل در توسعه هر اپلیکیشنی حجم آن است، حجم فایل برنامه از اهمیت زیادی برخوردار است.
مثلا اگر حجم اپلیکیشن شما بسیار زیاد است، کاربران دوست ندارند این چنین اپلیکیشن های پر حجمی را دانلود کنند که به چنین فضای ذخیره سازی زیاد نیاز دارند، بنابراین این نکته از اهمیت بالایی برخوردار است که بتوانید هنگام توسعه اپلیکیشن خودتان، کار هایی که می تواند باعث کاهش حجم فایل اپلیکیشن شود را انجام دهید، در این مقاله از نوری آکادمی نگاهی به کاهش حجم اپلیکیشن با استفاده از ابزار R8 در اندروید خواهیم داشت.
این یک ابزار توسعه است که برای بهینه سازی و محافظت از اپلیکیشن های اندروید استفاده می شود، این ابزار با کاهش حجم کد و بهبود عملکرد اپلیکیشن ها، تجربه کاربری را بهبود می بخشد و اپلیکیشن شما را به یک اپلیکیشن کاربر پسند تبدیل می کند، در این مقاله به بررسی جزئیات R8 در اندروید پرداخته خواهد شد، مواردی که در این مقاله از آکادمی نوری به آن می پردازیم شامل موارد زیر می شود:
- R8 در اندروید چیست و چه کاربردی دارد؟
- اهمیت استفاده از R8
- زمانی که باید از R8 استفاده کرد
- نحوه استفاده از R8
اگر تمایل دارید تا مطالب مربوط به هر کدام از این موارد را مطالعه کنید، با من در ادامه ی مقاله همراه باشید.
R8 در اندروید چیست؟ ابزار R8 چه کاربردی دارد؟
R8 در اندروید یک ابزار توسعه است که برای بهینه سازی و محافظت از برنامه های اندروید استفاده می شود، این ابزار قابلیت بهینه سازی کد های Java و Kotlin را دارد که باید بگویم هدف اصلی ابزار R8، کاهش حجم برنامه و بهبود عملکرد آن است.
با استفاده از R8، تعداد فایل های DEX که برای بارگذاری برنامه باید در حافظه قرار بگیرند، به صورت چشم گیری کاهش می یابد.
همچنین، R8 قابلیت محافظت از برنامه را هم دارد و می تواند کد های حساس را پنهان کند تا از حملات نفوذی جلوگیری کند، در واقع شما با استفاده از این ابزار، هم با کاهش حجم فایل apk یک اپلیکیشن کاربر پسند خواهید داشت و هم یک اپلیکیشن امن خواهید داشت که هر دو این موارد می توانند بسیار مفید و کاربردی باشند.
اهمیت استفاده از R8 در اندروید
احتمالا باید بدانید که توسعه یک اپلیکیشن با حجم کم هم برای توسعه دهنده مزیت دارد و هم برای کاربران و افرادی که از اپلیکیشن استفاده می کنند مزیت دارد، چرا که یک اپلیکیشن با حجم کمتر می تواند نصب و بارگیری های بیشتری را به همراه داشته باشد و افراد بیشتری هم آن را در دستگاه خود نگهدارند که در آخر این موارد به نفع توسعه دهنده هم خواهد بود.
یکی از ابزار های دیگری که می توانید از آن همانند ابزار R8 اندروید استفاده کنید، ابزار proguard اندروید است، در ادامه قصد دارم از تفاوت های این دو ابزار مشابه بگویم، با من همراه باشید.
البته فکر می کنم بهتر باشد که قبل از تفاوت ها، یک توضیح مختصر در مورد پروگارد هم داشته باشیم.
Proguard در اندروید چیست؟ پروگارد چیست؟
ProGuard یا همان پروگارد یک ابزار پشتیبانی شده توسط Google برای بهینه سازی، کاهش حجم و افزایش امنیت برنامه های اندروید است، این ابزار قابلیت حذف کد های بدون استفاده و مینیفای کردن کد را دارا است و به برنامه های اندروید کمک می کند تا در حجم کم تری ذخیره شوند و سرعت اجرای بهتری داشته باشند.
ابزار پروگارد در اندروید قادر به انجام تغییراتی در کد برنامه های اندروید است که باعث کاهش حجم کد و افزایش امنیت برنامه می شود، این ابزار می تواند کد های بی استفاده و تکراری را حذف کرده و بخش هایی از کد را که در اجرای برنامه مورد استفاده نیستند، پاک کند.
همچنین ProGuard قابلیت مخفی کردن نام متغیر ها و توابع را نیز داراست که باعث افزایش امنیت برنامه می شود.
ProGuard به طور پیش فرض در SDK اندروید قرار داده شده است و می توان از آن برای تولید فایل های APK قابل اجرا با حجم کوچک تر و امنیت بیشتر استفاده کرد.
R8 چه تفاوتی با ProGuard دارد؟
مواردی که باعث ایجاد تفاوت و متمایز شدن R8 به نسبت ProGuard می شود شامل موارد زیر می شود:
- R8 در مقایسه با پروگارد از زبان Kotlin پشتیبانی بیشتری دارد و بیشتر از پروگارد کاتلین را مورد پوشش قرار می دهد، Proguard عمدتا توسط برنامه های توسعه یافته با استفاده از جاوا استفاده می شود.
- معمولاً کامپایلر R8 بسیار سریع تر از کامپایلر پروگارد است، این باعث می شود تا R8 کارآمد تر و مفید تر شود، همچنین زمان ساخت R8 کوتاه تر است که این مورد هم کمک کننده است.
- از نظر کم کردن حجم فایل اپلیکیشن، ابزار R8 موثر تر از پروگارد است، چون R8 می تواند یک برنامه را 10٪ کوچک کند در حالی که Proguard می تواند آن را 8٪ کاهش دهد.
در بالا تر روش کار ابزار R8 در زمینه ی امنیتی را داشتیم که چگونه این ابزار مهندسی معکوس را سخت تر می کند، در ادامه قصد دارم به تکنیک هایی که این ابزار برای کاهش حجم فایل انجام می دهد را مورد بررسی قرار دهم، با من همراه باشید.
روش های ابزار R8 در زمینه ی مهندسی معکوس
یکی از موارد مفید دیگری که ابزار R8 اندروید می تواند در زمینه ی امنیتی به همراه داشته باشد، سخت کردن مهندسی معکوس است، در اینجا به یکسری موارد که این ابزار با کمک آن ها مهندسی معکوس را سخت می کند می پردازیم.
- تبدیل کد به صورت بایت کد: R8 کد اصلی اپلیکیشن را به بایت کد تبدیل می کند که سخت ترین کار برای مهندسی معکوس است.
- حذف نام کلاسها: R8 قابلیت حذف نام کلاس ها را دارد که باعث می شود مهندسی معکوس سخت تر شود.
- محافظت از کلاسهای خاص: R8 می تواند کلاس هایی را که قرار است محافظت شوند را انتخاب کند که به سخت تر شدن مهندسی معکوس کمک می کند.
- تغییر نام متدها: R8 می تواند نام متد های اصلی را به نام هایی که برای مهندسی معکوس سخت تر می شود را تغییر دهد.
- ترکیب برخی کلاسها: R8 می تواند برخی کلاس ها را با یکدیگر ترکیب کند که باعث می شود تشخیص مهندسی معکوس سخت تر شود.
با استفاده از این روش ها، R8 در اندروید می تواند مانع مهندسی معکوس شود و به امنیت برنامه کمک کند، اما توجه داشته باشید که هیچ روشی به طور کامل از مهندسی معکوس جلو گیری نمی کند و تنها می تواند آن را سخت تر و کند تر کند.
روش ها و تکنیک های ابزار R8 اندروید برای کاهش حجم فایل
- Shrinking : در موقع کد نویسی، متد های زیادی را در اپلیکیشن خود ایجاد می کنیم، در حالی که با ایجاد برخی متد ها، آن ها برای ما کاربردی ندارند، آن متد ها متد های غیر قابل دسترسی نامیده می شوند که در هیچ جای اپلیکیشن ما استفاده نمی شوند، بنابراین R8 این متد های غیر قابل دسترس را برای کاهش اندازه فایل apk حذف می کند.
- بهینهسازی کتابخانه ها : برای اجرای بسیاری از ویژگی های مختلف در اپلیکیشن، توسعه دهندگان معمولا ترجیح می دهند از کتابخانه های مختلف در داخل اپلیکیشن خود استفاده کنند، اما در حین استفاده از این کتابخانه ها، فایل های زیادی نصب می شود که ما برای برنامه خود نیازی نداریم، پس ابزار R8 کد آن کتابخانه را بهینه می کند و تنها کد مورد نیاز را در اپلیکیشن ما نگه می دارد و فایل هایی را که استفاده نمی شوند را حذف می کند.
- بهینه سازی کد : در این فرآیند، ابزار R8 در اندروید برای کاهش حجم فایل اپلیکیشن، کد را بهینه می کند، بنابراین در فرآیند بهینه سازی، کلاس ها، متد ها و کد های مرده و بدون استفاده موجود در برنامه ما که استفاده نشده اند را حذف می کند.
- تغییر نام کلاس ها : در این بخش، R8 در واقع نام کلاس ها و نام متغیر ها را تغییر می دهد، وقتی کد نویسی می کنیم، از نام های مشخص استفاده می کنیم تا بتوانیم کد خود را به درستی درک کنیم، اما در این فرآیند، ابزار R8 در اندروید نام تمام کلاسها را به نام های کوچک تری تغییر می دهد که به کاهش اندازه apk نیز کمک میکند؛ مثلا، شما یک کلاس به نام Constants برای ذخیره کردن بعضی از قطعات ثابتی که در بخش های مختلف برنامه استفاده می شوند، ایجاد کرده اید، R8 نام آن کلاس را به هر نام کوچک تری تغییر می دهد، برای مثال a یا هر فرمت دیگری.
تا به اینجا سعی کردم به خوبی از R8 و کاربرد هایش به خوبی بنویسم، آن را با مورد مشابه خودش مقایسه کردم، از تکنیک هایی که در کار هایش انجام می دهد نوشتم، حالا زمان آن رسیده است که بدانیم چگونه می توان با این ابزار کار کرد، اگر تمایل دارید که کار با ابزار R8 در اندروید را یاد بگیرید، با من در ادامه ی مقاله همراه باشید.
کار با R8 در اندروید
عملیات کوچک کردن و کاهش حجم فایل ابزار R8 یک فرآیند تک مرحله ای است، شما می بایست اول از همه یک پروژه جدید با یک اکتیویتی خالی در اندروید استودیو ایجاد کنید؛ راستی اگر دوست دارید در مورد اندروید استودیو بیشتر بدانید می توانید از مقاله ی اندروید استودیو چیست نوری آکادمی هم دیدن کنید؛ بعد از این که پروژه جدید را ساختید، به بخش Gradle scripts > build.gradle(:app) بروید، متوجه خواهید شد که در بخش buildTypes هستید.
buildTypes { release { // تغییرات را اینجا ایجاد کنید minifyEnabled true proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), ‘proguard-rules.pro’ } }
در این جا می بایست مقدار false در minifyEnabled را به مقدار true تغییر دهید.
بعد از انجام این کار، R8 به برنامه شما اضافه می شود و حالا می توانید حجم فایل apk را با ساختن apk جدید آزمایش کنید، همچنین می توانید حجم فایل APK را با افزودن چند کتابخانه دیگر هم تست کنید، اندازه APK را با استفاده از R8 تست کنید و بدون استفاده از R8 را هم تست کنید و سپس تفاوت بین حجم APK را مشاهده خواهید کرد.
برای این که بتوانید حجم را با هم مقایسه کنید گفته شده که یک فایل apk بسازید، در ادامه روش ساخت apk را داریم.
خروجی گرفتن apk در اندروید استودیو
در نوار بالای نرم افزار روی Build کلیک کنید.
در لیست باز شده، روی Select build variant کلیک کنید.
حالا روی Release کلیک کنید و فرایند خروجی apk را پیش ببرید.
به همین سادگی می توانید ابزار R8 در اندروید را داشته باشید و از مزایایی که این ابزار به همراه دارد، برای داشتن یک اپلیکیشن کاربر پسند استفاده کنید.
نکات نهایی مقاله R8 در اندروید
مزایایی که ابزار R8 در اندروید به همراه دارد می تواند به شما کمک های کارسازی کند که به همین دلیل پیشنهاد می شود از آن برای پروژه های خود استفاده کنید تا از جوانب مختلف اپلیکیشن تان حفظ و کاربرپسند باشد، از این که تا به این جای مقاله با من همراه بودید، سپاس گزارم ❤.