شروع 01 اولین قدم خیلی مهمه، خیلیا به خاطر ترس از شکست شروع نمیکنن
پس ترس رو بزار کنار و شروع کن
فقط شروع کن
تمرین و تکرار 02 خیلیا وارد حوزه برنامه نویسی میشن و به خاطر سختی هاش سریع جا میزنن و عقب میکشن
پس اگه میخوای موفق بشی فقط و فقط تمرین کن و پشتکار داشته باش
پشتکار
حرف اول و آخر رو میزنه
موفقیت 03 زمانی میتونی به این مرحله برسی که واقعا تلاش کرده باشی. برنامه نویسی واقعا راحت نیستش
اگه خوب تلاش کنی، مطمئن باش نتیجه زحماتت رو خیلی خوب دریافت میکنی
موفقیت رو باید به دست بیاری

MultiDex توی اندروید چیه و چرا باید ازش استفاده کنیم؟

MultiDex توی اندروید چیه و چرا باید ازش استفاده کنیم؟
اندروید

MultiDex توی اندروید چیه و چرا باید ازش استفاده کنیم؟

MultiDex کمک میکنه که محدودیت تعداد متدها توی اندروید رو برطرفش کنی.

حالا اصلا این یعنی چی؟

قبل از اینکه سراغ MultiDex بریم بهتره که در مورد کامپایلر اندروید یه خورده اطلاعات داشته باشی.

توی برنامه نویسی اندروید، کامپایلر کدهای پروژه رو به فایل‌های dex تبدیل میکنه.

این فایل‌ dex شامل کدهای کامپایل شده برای اجرای اپلیکیشن هست.

ولی این فایل dex محدودیتی رو هم داره.

توی هر فایل dex فقط میشه 64هزار متد ذخیره کرد. بخوام دقیقش رو بگم میشه 65.536 عدد متد.

شاید پیش خودتون بگید که، 64هزار متد خیلی خیلی زیاده!

منکه توی برنامه‌‌م 64هزار متد ندارم که بخواد برای من محدودیت یا حتی مشکلی پیش بیاره!

بله شاید شما 64هزار متد نداشته باشید، ولی اگر به متن بالا توجه کنید گفتم که کامپایلر کدهای پروژه رو به فایل dex تبدیل میکنه.

توی پروژه شما اولا هزاران متد برای SDK اندروید وجود داره که شما ننوشتید، ولی وجود دارن.

ممکنه از کتابخونه‌های زیادی استفاده کنید، کتابخونه‌هایی که وجودشون خیلی ضروریه و نمیشه حذفشون کرد.

مثلا کتابخونه‌هایی مثل : ارتباط با اینترنت، بارگذاری تصاویر، دیتابیس و یا کلی کتابخونه کوچک و بزرگ دیگه که وجودشون ضروریه برای پروژه!

پس می‌بینید که بدون اینکه خودمون بخوایم، ناخودآگاه توی پروژه‌های نسبتا بزرگ تعداد متدهای خیلی بیشتر از 64هزار تا هم میشه.

حالا ما میخوایم به کمک MultiDex کاری کنیم که این محدودیت برطرف بشه.

پس درنتیجه کامپایلر خیلی بیشتر از 64هزار متد رو میتونه کامپایل کنه.

حالا که با MultiDex آشنا شدی، بهتره که بریم پیاده سازیش کنیم.

برای اینکار باید کد زیر رو در app/build.gradle اضافه کنی

با توجه به نوع کتابخونه‌های پروژه‌تون یکی رو انتخاب کنید

برای AndroidXبرای Android support
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'com.android.support:multidex:2.0.1'

بعد از اضافه کردن کتابخونه، پروژه رو sync کنید.

بعد اینکار، کد زیر رو توی بخش defaultConfig مربوط به فایل app/build.gradle قرار بدید

multiDexEnabled true

مشابه کد زیر میشه

defaultConfig {
    applicationId "in.nouri.appname"
    minSdkVersion 16
    targetSdkVersion 30
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
    multiDexEnabled true
}

بعد از این مراحل، نیاز هستش که شما MultiDex رو به Manifest پروژه هم معرفی کنی.

برای اینکار یکی از 2 روش زیر رو می‌تونید انتخاب کنید.

اگر کلاس Application توی پروژه ندارید از روش زیر استفاده کنید. اگر این کلاس رو توی پروژه‌تون دارید از مرحله بعد ادامه بدین.

  • روش اول : پروژه کلاس Application نداره

برای اینکار باید کد زیر رو به تک application توی فایل Manifest در قالب android:name اضافه کنی

android:name="android.support.multidex.MultiDexApplication"

کد نهایی تقریبا شبیه به کد زیر میشه

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="in.nouri.appname">
    <application
            android:name="android.support.multidex.MultiDexApplication" >
    </application>
</manifest>

 

  • روش دوم : پروژه کلاس Application داره

توی این روش نیاز هستش که MultiDex رو به کلاس Application پروژه اضافه کنید.

برای اینکار باید کد زیر رو به کلاس Application اضافه کنی

override fun attachBaseContext(base: Context) {
    super.attachBaseContext(base)
    MultiDex.install(this)
}

کد نهایی تقریبا شبیه به کد زیر میشه

class MyApp : Application() {

    override fun onCreate() {
        super.onCreate()
    }

    override fun attachBaseContext(base: Context) {
        super.attachBaseContext(base)
        MultiDex.install(this)
    }
}

اگه بخشی رو متوجه نشدی توی کامنت ازم بپرس💭

دیدگاه خود را اینجا قرار دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

5 × 3 =

فیلدهای نمایش داده شده را انتخاب کنید. دیگران مخفی خواهند شد. برای تنظیم مجدد سفارش ، بکشید و رها کنید.
  • عکس
  • شناسه محصول
  • امتیاز
  • قیمت
  • در انبار
  • موجودی
  • افزودن به سبد خرید
  • توضیحات
  • محتوا
  • عرض
  • اندازه
  • تنظیمات بیشتر
  • ویژگی ها
  • Custom attributes
  • زمینه های دلخواه
مقایسه
لیست علاقه مندی ها 0