همانطور که اطلاع دارید، قابلیت Lambda Expressions در جاوا نسخه 8 معرفی شد و مهمترین قابلیت در برنامه نویسی موبایل
به حساب میآید. این قابلیت توسعه در این زبان را به شکلی قابل توجه، ساده
و سریع میکند. اما همانطور که اطلاع دارد، در حال حاضر اندروید از این
نسخه از جاوا پشتیبانی نمیکند. اما چطور میتوانیم امکان استفاده از این
قابلیت مفید را به Android Studio اضافه کنیم؟ در ادامه مراحل اضافه کردن
این قابلیت در Android Studio و محیط لینوکس Ubuntu را دنبال کنید.
برای
اضافه کردن پشتیبانی از این قابلیت از پلاگین Retrolambda برای Gradle
استفاده خواهد شد، این پلاگین با تبدیل بایت کد جاوا نسخه 8 به 7 و یا 6 در
هنگام کامپایل، این قابلیت را برای شما فراهم مینماید. اما در ابتدا نیاز
به نصب نسخه 8 جاوا به عنوان نسخه پیشفرض در اوبونتو خواهید داشت.
از
آنجا که استفاده از جاوای اوراکل برای توسعه اندروید توصیه شده است و این
نسخه از جاوا در مخازن رسمی اوبونتو موجود نیست ابتدا میبایست مخزن
webupd8team که یکی از PPA های معتبر اوبونتو است را به پکیج منجر خود
اضافه کنید، سپس برای نصب از پکیج منجر استفاده کنید. دستورات زیر را به
تریتیب در ترمینال وارد نمایید.
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
1
2
3
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
پس
از اتمام پروسه نصب برای اطمینان از نصب جاوا 8 به صورت پیش فرض دستور زیر
را برای نصب پکیج دیگری که به این منظور ایجاد شده وارد نمایید.
sudo apt-get install oracle-java8-set-default
1
sudo apt-get install oracle-java8-set-default
پس از اتمام نصب، موارد زیر را در انتهای فایل /etc/profile.d/jdk.sh اضافه نمایید.
export JAVA6_HOME="/usr/lib/jvm/java-6-oracle"
export JAVA7_HOME="/usr/lib/jvm/java-7-oracle"
export JAVA8_HOME="/usr/lib/jvm/java-8-oracle"
1
2
3
export JAVA6_HOME="/usr/lib/jvm/java-6-oracle"
export JAVA7_HOME="/usr/lib/jvm/java-7-oracle"
export JAVA8_HOME="/usr/lib/jvm/java-8-oracle"
سپس، موراد زیر را نیز در انتهای فایل /etc/profile.d/jdk.csh اضافه نمایید.
setenv JAVA6_HOME="/usr/lib/jvm/java-6-oracle"
setenv JAVA7_HOME="/usr/lib/jvm/java-7-oracle"
setenv JAVA8_HOME="/usr/lib/jvm/java-8-oracle"
1
2
3
setenv JAVA6_HOME="/usr/lib/jvm/java-6-oracle"
setenv JAVA7_HOME="/usr/lib/jvm/java-7-oracle"
setenv JAVA8_HOME="/usr/lib/jvm/java-8-oracle"
سپس
فایل اصلی بیلد پروژه خود را در اندروید استدیو باز نموده و از طریق اضافه
کردن خط مشخص شده در کد زیر، پلاگین Retrolambda را به Gradle معرفی کنید.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'me.tatarka:gradle-retrolambda:3.1.0'
}
}
1
2
3
4
5
6
7
8
9
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'me.tatarka:gradle-retrolambda:3.1.0'
}
}
سپس برای فعال سازی پلاگین خطوط مشخص شده در کد زیر را به فایل بیلد مربوط به اپ اضافه نمایید.
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
retrolambda {
jdk System.getenv("JAVA8_HOME")
oldJdk System.getenv("JAVA7_HOME")
javaVersion JavaVersion.VERSION_1_7
}
1
2
3
4
5
6
7
8
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
retrolambda {
jdk System.getenv("JAVA8_HOME")
oldJdk System.getenv("JAVA7_HOME")
javaVersion JavaVersion.VERSION_1_7
}
پس از انجام مراحل بالا برای معرفی نسخه زبان مورد استفاده، کد زیر را به بلاک android در فایل بیلد اپ خود اضافه نمایید.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
1
2
3
4
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
به عنوان آخرین مرحله، کد زیر را به فایل proguard-rules.pro اضافه نمایید و Gradle را مجددا سینک کنید.
Java
-dontwarn java.lang.invoke.*
1
-dontwarn java.lang.invoke.*
بهتر است کار تولید نرم افزار موبایل و طراحی نرم افزار موبایل را به شرکت وب یونیک بسپارید.
webuniq.com