| کانال توسعهدهندگان اندروید |
Открыть в Telegram
⭕️ کانال توسعهدهندگان اندروید دولوپیکس 💠 دولوپیکس | جامعه توسعهدهندگان ایرانی 💎 @Developix 🚀 Developix.ir 📌 پشتیبانی و تبلیغات: @DevelopixSupport
Больше1 426
Подписчики
Нет данных24 часа
+57 дней
+2730 день
Архив постов
💢 قوانين ProGuard در اندروید - بخش دوم ( فعالسازی ProGuard )
برای فعال سازی Proguard تنها کافی است به فایل build.gradle پروژه خود بروید و خطوط زیر را اضافه کنید.
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
بخش minifyEnabled: مقدار true یا false میتواند بگیرد و برای فعال و غیر فعال کردن Proguard است
بخش proguard-android-optimize.txt فایلی از پیش تعریف شده است که حاوی قوانین proguard است که در پوشه SDK TOOL قرار دارد.
بخش proguard-rules.pro فایلی خالی است که به طور پیشفرض ایجاد میشود و برای تعریف قوانین شخصیسازی شده میباشد.
وقتی که Proguard را فعال میشود سه ویژگی مبهم سازی - حذف کدهای استفاده نشده و بهینه سازی کدها روی تمامی متغیرها، کلاسها و.. اعمال میشود. گاهی نیاز است این ویژگیها روی بعضی از کلاسها متغیرها و توابع خاصی اعمال نشود. میتوان مجموعه قوانین دلخواهی تعریف کنیم که روی کلاسها و توابع دلخواه ویژگی Proguard اثر نکن تا مشکلی در برنامه رخ ندهد.
👤 Maryam
💎 Channel: @DevelopixAndroid💢 راههای افزایش سرعت بیلد Gradle
بنا بر به میزان حجم یک پروژه اندرویدی، فرایند بیلد شدن آن میتواند بین چند ثانیه تا چندین دقیقه طول بکشد. بنابراین تلاش برای افزایش سرعت بیلد Gradle میتواند تا حدی مدت زمان این فرایند خسته کننده را کمتر کند، در ادامه چند روش برای کاهش این فرایند را بررسی میکنیم.
1⃣ استفاده از جدیدترین نسخه Gradle
به مراتب نسخههای جدیدی از گردیل منتشر میشود تا مشکلات و باگهای نسخههای قبلی رفع بشود همچنین نسخههای جدید گردیل به نسبت نسخههای قبلی خود بهینهتر است و در نتیجه زمان بلید یک پروژه اندرویدی تا حدی کاهش پیدا میکند
2⃣ فعال کردن حالت آفلاین Gradle
گردیل به طور پیشفرض در حالت آنلاین قرار دارد و این باعث میشود هنگام شدن بلید پروژه Dependencies و سایر موارد مورد نیاز را گاهی از اول دانلود کند و همین امر یکی از دلیلهای افزایش بلید پروژههای اندروید میباشد، اگر همه Dependencies های مورد نیازتان یکبار دانلود شده و در حافظه پنهان ذخیره شده است بهتره است گردیل را در حالت آفلاین قرار دهید
3⃣ عدم استفاده از ورژنهای داینامیک Dependencies
هنگام افزودن Dependencies به پروژهتان به هیچ وجه برای سادگی کار به جای درج نسخه دقیق از " + " استفاده نکنید زیرا با عدم درج نسخع دقیق گردیل را مجبور میکنید تا به مخزن مربوطه متصل بشود و چک کند که اخرین جدیدی از مخزن مربوطه منشتر شده یا نه! و همین امر یکی دیگر از دلیلهای افزایش سرعت بلید پروژههای شما است
4⃣ جلوگیری از کامپایل منابع غیر ضروری
اگر پروژهای دارید که چندین زبان مختلف دارد برای مثال فارسی و انگلیسی هنگام بیلد شدن کل resource ها کامپایل میشوند درصورتی که هنگام تست و توسعه فقط به کامپایل شدن یک زبان نیاز دارید بهتر هست محدودیسازیهایی برای مشخص کردن resource هایی که باید کامپایل شوند انجام دهید برای چنین محدودسازی فقط کافی است که به فایل build.gradle(app) بروید و در بلاک productFlavors یک بلاک dev ایجاد کنید و تنظیمات مورد نیاز را اعمال کنید
👤 Maryam
💎 Channel: @DevelopixAndroid
💢 قوانين ProGuard - بخش اول
احتمالاً از خودتان این سوال را پرسیدهاید که اگر فایل APK پروژهای که چند هفته برای آن زحمت کشیدهام را در اختیار دیگران قرار بدهم آیا میتوانند به سورسهای من دسترسی داشته باشند؟ جواب این سوال بله است در صورتی که شما هیچ اقدامی برای امنیت سورسکدتان نکنید افراد متخصص میتوانند از فایل APK عمل Decompile را انجام بدهند و به سورس شما دسترسی پیدا کنند.
یکی از روشهای جلوگیری از Decompile کردن فایل APK پیروی از قوانین ProGuard است که یک ابزار متنباز است که با تغيير نام كلاسها و توابع و ... خوانایی کدها را سختتر میکند و تا حدی Decompile کردن خروجی را سخت و در شرایطی غیر ممکن میکند همچنین میتوان کدهای استفاده نشده داخل پروژه را حذف کرد تا خروجی بهینهتر شود
برای مثال این ابزار میتواند ویژگیهای تکراری را حذف کند همچنین اگر کاربر رنگ یک المان را به شکل #000000 نوشته باشد آن را به شکل 000# تغییر میدهد تا در حد امکان تعداد کاراکترها کمتر شود در مثال دیگر اگر ما یک if-else داشه باشیم و تشخیص بدهد که بلاک else اجرا نمیشود آن را حذف میکند
👤 Maryam
💎 Channel: @DevelopixAndroid
