安卓快速入门系列1(通过插件使用java8的语法)
2016-03-28 18:26
561 查看
写在前面
本系列博客是我在第二次学习安卓之后开始的系列博客(第一次就看了5天,了解了一下而已),可能新手不是太适合。因为我的这个安卓学习是用到哪里学到哪里,工作了之后没有时间去一点一点的看书了,所以工作的时候用到了哪里就学习哪里,如果没有时间的话就简单研究一下。总之我用到哪里就开一篇博客,如果你跟着这个博客学习,你也会和我一样,在实战中练习技术,希望大家喜欢。
Google 发布了Android studio之后,方便了开发,也让Gradle这个构建工具带到了安卓的开发中,但是美中不足的是:目前安卓只支持java7及其以下的语法。java8的到来,让我们感受到了lambda表达式的魅力。
那网上有没有大牛实现了某些构建插件来支持java8呢?或者支持部分功能呢?
首先加入
然后再加入插件声明
好了现在支持lambda了
无图无真相
但是底层还是用的旧语法,不支持Stream啊。
我们不能满足仅仅这点,找找合适的第三方库
好了支持了,继续上截图
好了,很完美
但是,毕竟使用的是插件编译的(插件其实是把代码兼容到了1.6或者1.7的版本而已,所以看不到java8的很多库),所以有些地方支持的并不是很完美,例如default方法,以及引用接口的静态方法,都会编译失败或者程序报错,所以不要使用那些新功能哦。
Google已经宣布要使用openjdk了,期待它能把更新的java版本带到安卓的世界来,让我们的开发更加便捷和容易。
最后,照例上全部代码。
app的gradle
project的gradle
本系列博客是我在第二次学习安卓之后开始的系列博客(第一次就看了5天,了解了一下而已),可能新手不是太适合。因为我的这个安卓学习是用到哪里学到哪里,工作了之后没有时间去一点一点的看书了,所以工作的时候用到了哪里就学习哪里,如果没有时间的话就简单研究一下。总之我用到哪里就开一篇博客,如果你跟着这个博客学习,你也会和我一样,在实战中练习技术,希望大家喜欢。
Google 发布了Android studio之后,方便了开发,也让Gradle这个构建工具带到了安卓的开发中,但是美中不足的是:目前安卓只支持java7及其以下的语法。java8的到来,让我们感受到了lambda表达式的魅力。
那网上有没有大牛实现了某些构建插件来支持java8呢?或者支持部分功能呢?
首先加入
classpath 'me.tatarka:gradle-retrolambda:3.3.0-beta4'
然后再加入插件声明
apply plugin: 'me.tatarka.retrolambda'
好了现在支持lambda了
无图无真相
但是底层还是用的旧语法,不支持Stream啊。
我们不能满足仅仅这点,找找合适的第三方库
compile 'com.annimon:stream:1.0.8'
好了支持了,继续上截图
好了,很完美
但是,毕竟使用的是插件编译的(插件其实是把代码兼容到了1.6或者1.7的版本而已,所以看不到java8的很多库),所以有些地方支持的并不是很完美,例如default方法,以及引用接口的静态方法,都会编译失败或者程序报错,所以不要使用那些新功能哦。
Google已经宣布要使用openjdk了,期待它能把更新的java版本带到安卓的世界来,让我们的开发更加便捷和容易。
最后,照例上全部代码。
app的gradle
apply plugin: 'com.android.application' apply plugin: 'me.tatarka.retrolambda' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "xyz.cunzi.app.myapplication6" minSdkVersion 19 targetSdkVersion 23 versionCode 1 versionName "1.0" } compileOptions{ sourceCompatibility org.gradle.api.JavaVersion.VERSION_1_8 targetCompatibility org.gradle.api.JavaVersion.VERSION_1_8 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.2.1' compile 'com.annimon:stream:1.0.8' }
project的gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.0-alpha4' classpath 'me.tatarka:gradle-retrolambda:3.3.0-beta4' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
相关文章推荐
- JAVA struts2框架下zip打包文件下载
- Java:类与继承
- java第三次作业
- Java 求解数组中的逆序对
- JavaEE_Mybatis_SpringMVC_(通过表单form)SpringMVC的文件上传
- Java中Properties类的操作
- 深入理解Java的接口和抽象类
- Java第三次作业
- java第三次作业
- 浅谈Java中的深拷贝和浅拷贝
- java参数传递(值传递还是引用传递)
- springmvc是如何和前端页面联系起来的
- 有关监听器Listener
- Java并发编程:volatile关键字解析
- SpringMVC中ModelAndView, Model, ModelMap, Map, String, void的相关内容
- java.lang.ExceptionInInitializerError的原因
- JAVA基础--异常
- 将一个二叉树左右翻转(Java 版)
- 学习java心得 三
- Java中的静态绑定和动态绑定