آموزش فعال سازی Multidex در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش های برنامه نویسی اندروید به آموزش فعال سازی Multidex در برنامه نویسی اندروید می پردازیم با ما همراه باشید. قبلتر dex و multidex را تعریف کردیم و تمامی بخش های آن را بررسی کردیم اگر اشتباه نکنم دقیقا پست قبلی باشد (کافی است در سایت سرچ کنید) بدانید این کار برای زمانی است که ما از تعداد زیادی کتاب خانه استفاده کرده باشیم و مقدار متود های اپ ما بیش از 64 هزار شده باشد. ما ابتدا باید در build.gradle تغییراتی را اعمال کنیم.
وارد Build.gradle بخش moudle شوید و آن را به شکل زیر تغییر دهید .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | android { compileSdkVersion 24 buildToolsVersion "24.0.1" defaultConfig { ... minSdkVersion 14 targetSdkVersion 24 ... // Enabling multidex support. multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.1' } |
ذقت کنید کل آن را تغییر ندهید باید دو چیز اضافه کنید یک
1 | multiDexEnabled true |
و بعد از آن اضافه کردن یک dependencies
1 | compile 'com.android.support:multidex:1.0.1' |
پروژه را sync کنید و به مرحله هم بروید خطاهای مربوط به گریدل را قبلتر بررسی کردیم.
تا اینجا ما فقط کار های اولیه را انجام دادیم.
سه راه برای استفاده (فعال کردن) Multidex وجود دارد که عبارتند از :
- Multidex by extending Application (مولتی دکس با گسترش دادن ( extend ) اپلیکیشن )
- Multidex by extending MultiDexApplication (مولتی دکس با گسترش دادن اپلیکیشن مولتی دکس)
- Multidex by using MultiDexApplication directly (مولتی دکس به وسیله استفاده از اپلیکیشن مولتی دکس به طور مستقیم)
ما در ادامه نحوه استفاده از سه روش را توضیح خواهیم داد.
راحت ترین روش اولی است به راحتی آب خوردن فعال می شود
حال کافی یک کلاس درست کنید یک نام برای آن قرار دهید و باید extend خود را برابر با Application قرار دهید این لازمه ی Multidex است .
همانند زیر عمل کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 | package com.example; import android.app.Application; import android.content.Context; /** * Extended application that support multidex */ public class MyApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } } |
MultiDex.install سبب فعال شدن آن می شود.
و فراموش نکنید که باید این کلاسی را که ساختیم در AndroidManifest.xml تنظیم کنیم پس مانند زیر عمل کنید.
1 2 3 4 5 | <application android:name="com.example.MyApplication" android:icon="@drawable/ic_launcher" android:label="@string/app_name"> </application> |
باید این را در اندروید manifest بخش application بخش android:name را با آن کلاسی که ساختیم قرار می دهیم.
به این ترتیب multidex فعال شد !
راه دوم هم مانند آب خوردن می باشد.
یک کلاس جدید درست کرده تغییرات را اعمال کنید.
1 2 3 4 5 6 7 8 9 | package com.example; import android.support.multidex.MultiDexApplication; import android.content.Context; /** * Extended MultiDexApplication */ public class MyApplication extends MultiDexApplication { // No need to override attachBaseContext() } |
تغییراتی باید در این کلاس به وجود بیاد به طور مثال package باید با نام اپ شما تنظیم شود. دیگر هانند قبلی نیاز به attachbase نداریم .
و در بخش AndroidManifest.xml باید آن را تعریف کنیم.
1 2 3 4 5 | <application android:name="com.example.MyApplication" android:icon="@drawable/ic_launcher" android:label="@string/app_name"> </application> |
و تمام !
اگر می خواهید کلاسی با یک subclass از Application تعریف نکید از این روش استفاده کنید. فقط وارد AndroidManifest شده و به این شکل عمل کنید
1 2 3 4 5 6 7 8 9 | <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.multidex.myapplication"> <application ... android:name="android.support.multidex.MultiDexApplication"> ... </application> </manifest> |
کل آن را تغییر ندهید (علت این همه تکرار سوال های ساده کاربران است) کافی است خط زیر را اضافه کنید.
1 | android:name="android.support.multidex.MultiDexApplication" |
و تمام
این کامل ترین آموزش در سطح ایران است هیچ سایتی به این ظرافت این مبحث را بررسی نکرده است. تعریفی از خودمان نمی کنیم ولی مطالبمان بدون نقص است.
این آموزش هم به پایان رسید.
موفق باشید.
0 پاسخ به “آموزش فعال سازی Multidex در برنامه نویسی اندروید”