【Android】在Android studio中使用retrol lambda,gradle构建;RxJava使用建议,优缺点

本准备部署RxAndroid,不过问题多多,一个个来,先看java 1.8 新特性,lambda表达式

简洁的lambda英文总结
(ps:lambda表达式的中文使用示例)

首先,要想在AS中使用lambda,首先你需要安装java8,cmd 中运行 java -version查看,java 版本号为1.8…就对了(可能会碰到环境变量的问题,注意一下)

其次,在AS的build.gradle文件中配置retro lambda
evant/gradle-retrolambad
usage中说的比较清楚,不过他没有指明哪些是应该放在project级别的gradle,哪些应该放在app级别的gradle,下面说明一下:
1. 在project级别的gradle中:


buildscript {
    repositories {
        jcenter()

//        maven
        mavenCentral()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha1'

        // retro lambda
        classpath 'me.tatarka:gradle-retrolambda:3.2.4'
    }

}

allprojects {
    repositories {
        jcenter()

        // maven
        mavenCentral()

        // for aar
        flatDir {
            dirs 'libs'
        }
    }
}

注释中有maven或者retro 字样的就是你需要添加的行
2. 在app级别的gradle中:

apply plugin: 'com.android.application'

// lambda
apply plugin: 'me.tatarka.retrolambda'


android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "xxxxx"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

    }


// lambda
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

}


// lambda
repositories {
    mavenCentral()
}

同样,注释中有lambda的代码就是你需要添加的部分

这几个步骤之后应该就可以:
【Android】在Android studio中使用retrol lambda,gradle构建;RxJava使用建议,优缺点_第1张图片

改进之后的代码:

 new Thread(() -> {
            System.out.print("retro lambda");
        }).start();

have fun

—————————————RxJava使用建议—————————————————————
英文blog
总结:

Using RxJava for individual tasks is low risk and potentially high gain. It can simplify your code considerably. However, the more you use Rx in your project, the more likely you are to see a domino effect of a reactive expansion. Bridging the gap between non-Rx and Rx parts can be troublesome, and it can become tempting to simply write everything in Rx. This, on the other hand, is a decision not easily made. While indescribably deliberating, you will be wandering into a new land with unthinkable possibilities but with very little help.

大体意思就是小项目用RxJava会非常快,但大项目,就会有一些链接问题、内存泄露问题;
其实看到这里我已经不太想尝试RxAndroid了,在做小项目的时候,不是就想测试功能,然后通过之后以后可以使用么,如果这些调试通过的模块在加到大项目中时会存在这样那样的问题,想必你是不会满意的,并且RxJava自发布到现在已经超过两年了,API一直在改,想保持可用性,需要你一直跟github,所以。。。用用lambda就得了~~

转载署源-By-KyleCe:http://blog.csdn.net/kyleceshen/article/details/50395100

你可能感兴趣的:(Android问题记录)