میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

build و کامپایل ورژن های (flavor) مختلف از اپلیکیشن اندرویدی

با سلام خدمت همه دوستان عزیز دز این مقاله قصد داریم build و کامپایل ورژن های (flavor) مختلف از اپلیکیشن اندرویدی را آموزش دهیم

به طور پیش فرض، دو نوع Gradle build در اندروید داریم:

debug ( ورژن debug دربردارنده ی کد برای اشکال زدایی و مقداری گزارش یا logging ) و release ( ورژن آماده و بهینه سازی شده برای اجرا) برای این انواع build  می توانید flavor های مختلف در Gradle build ایجاد نمایید ( build دو ورژن دارد که هر دو یک نسخه از اپلیکیشن هستند، اما flavor برای سرویس گیرنده و مشتری های مختلف تولید می شوند مانند نسخه ی پولی و رایگان از یک اپلیکیشن.)

سیستم Gradle build قادر است flavor های مختلفی از یک اپلیکیشن تولید و مدیریت کند. product flavor بیانگر یک ورژن اختصاصی از اپلیکیشن می باشد. این امر امکانی را فراهم می کند تا بخش هایی از codebase یا منابع مورد استفاده ی پروژه برای نسخه های مختلف اپلیکیشن مورد نظر متفاوت باشد.

برای مثال، می توانید برای انواع دستگاه ها همچون گوشی یا تبلت (device category) ورژن های مختلف ( build varaint ) تولید نمایید. به عنوان یک مورد استفاده ی دیگر می توان به نسخه ی پولی و رایگان اپلیکیشن مورد نظر اشاره کرد. همچنین زمانی که قصد دارید به هنگام اجرای تست بر روی اپلیکیشن، منابع و کلاس های متفاوت را بکار ببرید

 


تعریف انواع flavor در فایل Gradle build

می توانید با استفاده از بستار productFlavors در محتوای فایل ،app/build.gradle نسخه های مختلف از اپلیکیشن نهایی خود اعلان نمایید.

 

productFlavors {
prod {
applicationId = "com.vogella.android.gradlebuildflavors.prod"
versionName = "1.0-paid"
}
mock {
applicationId = "com.vogella.android.gradlebuildflavors.mock"
versionName = "1.0-free"
}
}

 

محتوای کل فایل build.gradle ممکن است ظاهری مشابه زیر داشته باشد.

 

apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.exam.gradleexamples"
minSdkVersion 19
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
prod {
applicationId = "com.vogella.android.gradlebuildflavors.prod"
versionName = "1.0-paid"
}
mock {
applicationId = "com.vogella.android.gradlebuildflavors.mock"
versionName = "1.0-free"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
testCompile 'junit:junit:4.+'
}

 

پس از اعلان flavor و ورژن های مختلف از اپلیکیشن، می توانید داخل محیط کاری Android،Studio تمامی ورژن های مختلف از اپلیکیشن خود را در کادر Build Variants مشاهده و انتخاب نمایید

build و کامپایل ورژن های (flavor) مختلف از اپلیکیشن اندرویدی
build و کامپایل ورژن های (flavor) مختلف از اپلیکیشن اندرویدی

 

 


ارائه ی منابع مختلف برای flavorها و ورژن های مختلف اپلیکیشن

به منظور تعریف قابلیت و امکانات مختلف برای flavor مورد نظر، می بایست پوشه های مختلفی برای flavor های مشخص شده در پوشه ی / app/src ایجاد نمایید.
منابع مختص به هر flavor ، منابع کلی و اصلی را بازنویسی می کند. به طور مثال، زمانی یک آیکون متفاوت برای flavor معین تعیین کرده باشید، سیستم build و کامپایل ،Android آن آیکونی که ویژه ی flavor مورد نظر تعریف شده را به عنوان آیکون اپلیکیشن انتخاب می کند.

 


تعریف source setهای متفاوت برای flavorهای مختلف از اپلیکیشن

دایرکتوری های مقیم در پوشه ی / srcدر اصطلاح source setsشناخته می شود. هر flavor از نرم افزار می تواند source set اختصاصی خود را داشته باشد.
لازم به ذکر است که code fileها (فایل های حاوی کدهای جاوا) مانند resourceها و منابع پروژه جایگزین نمی شوند، بلکه با یکدیگر ادغام می گردند. به طور مثال، شما نمی توانید در یک flavor از اپلیکیشن خود اکتیویتی com.example.MainActivity را در پوشه ی / app/main/java داشته و در flavor دیگر، نسخه ی پیاده سازی شده ی دیگری از activity مزبور داشته باشید. در صورتی که دو نسخه ی پیاده سازی شده از activity داشته باشید، یک پیغام خطا در خصوص وجود کلاس های تکراری (duplicate class) صادر می شود.

با این وجود می توانید با جلوگیری از ایجاد کلاس در source folder اصلی پروژه و سپس ایجاد یک کلاس مجزا در هر ،flavor برای هر flavor از اپلیکیشن خود نسخه ی پیاده سازی شده ی متفاوتی از یک کلاس (برای مثال activity) داشته باشید.

 


امیدواریم آموزش build و کامپایل ورژن های (flavor) مختلف از اپلیکیشن اندرویدی نیز برای شما مفید واقع شده باشد و ادامه آموزش برنامه نویسی اندروید رو دنبال کنید . برای مطالعه پست‌ها بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

ارسال دیدگاه

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

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟