• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android实战技巧之四十八:Android上的Java8和kotlin

Android实战技巧之四十八:Android上的Java8和kotlin

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android java8,android studio java8,java8实战,java8 实战 pdf,kotlin android等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android实战技巧之四十八:Android上的Java8和kotlin


Java和Android这对搭档目前也在风雨飘摇中。
技术圈子的事,往往被商业利益牵着鼻子走。
世事莫过于此。

Java8

目前Android应用开发已经使用到Java7,但对Java8的支持,还遥遥无期。
对新技术体验者来说,Java8提供了很多不错的特性。
其中最引人注目的是lambda表达式,以及Stream API,Date Time API,对并发的增强。

Android应用开发完全支持Java8目前尚没有好的解决方案,但对Java8的民间支持有对应的方案:
lambda表达式的向后兼容:https://github.com/orfjackal/retrolambda
stream API:http://sourceforge.net/projects/streamsupport/
new time API:http://www.threeten.org/

但我个人觉得,只有到了非用不可的地步,才会去在生产中使用它们。
而对于技术学习,这些都是很好的素材。

Java8 for Android的结论就是,目前不支持,但民间有相应的支持项目。要想用Java8的新特性在Android应用开发上,实属不易。

Java作为高级语言,开发效率上一直高于那些Native语言。但它已经20多岁了,在某些场合下已经不太适用了。
围绕着JVM,世界上出现了很多新的语言。
比如Groovy,Android Studio使用的Gradle构建工具就是基于Groovy的。
比如Clojure,是纯粹的函数式编程语言。
比如Scala,强项是用来做并行运算。
还有,今天另一个主角,kotlin。

kotlin

在其官网有这样一段话:

Statically typed programming language
for the JVM, Android and the browser
100% interoperable with Java

其要表达三件事:
1、它是基于JVM的静态类型语言
2、可以用于Android和web开发
3、百分百与Java交互

为什么选择kotlin?
官网给出四个答案:
1、简洁
从语言层面大大简化了使用的繁琐性。比如对lambdas的支持让代码量减少,习惯后会觉得这样更易读。
2、安全
语言级避免了令人诟病的空指针异常,等等。
3、多用途
构建服务器应用、安卓app、web应用
4、与Java的交互性
实践中你会发现这样有多便利

kotlin还是比较新的语言,目前的版本是1.0beta。它抓住了Java语言发展这么多年无法改变的一些痛点,让这个语言一出生就脱离窘境。
下面是Linc根据《Kotlin for android Developers》在Android studio上建的第一个kotlin Demo。
1、安装kotlin插件
Go to Android Studio的Settings中Plugins,然后安装Kotlin、Anko DSL Preview和Kotlin Android Extensions三个插件。
如下图:
这里写图片描述
2、新建项目,配置gradle
项目下的build.gradle:

buildscript {
    ext.support_version = '23.0.0'
    ext.kotlin_version = '1.0.0-beta-4589'
    ext.anko_version = '0.8.1'

    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

app下的build.gradle:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"

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

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile "com.android.support:recyclerview-v7:$support_version"
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    compile "org.jetbrains.anko:anko-sdk15:$anko_version"
    compile "org.jetbrains.anko:anko-support-v4:$anko_version"
}

buildscript {
    repositories {
        jcenter() }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
    }
}

3、使用kotlin编程
anko的加入,让我们在layout中使用的控件省去findViewById就可以直接使用。比如:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        forecast_list.layoutManager = LinearLayoutManager(this);
        forecast_list.adapter = ForecastListAdapter(items)
        toast("hello toast.")
    }

按键事件可以用lambda表达式,如下:

btnTest.setOnClickListener({btnTest->toast("button click!")})

还可以将其简化成:

btnTest.setOnClickListener{toast("button click!")}

更多语法糖请参考官方文档:https://kotlinlang.org/docs/reference/

参考:
1、android上使用lambda:http://juude.net/lambdajava/

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android实战技巧之四十八:Android上的Java8和kotlin

相关文章

  • 2017-05-26linux设备驱动程序之时钟管理(1)----最初的印象
  • 2017-05-26Android高效加载大图、多图解决方案,有效避免程序OOM,androidoom
  • 2017-05-26Android中点击事件的实现方式,android事件
  • 2017-05-26Android开发10:传感器器及地图相关应用,android传感器
  • 2017-05-26nagios分组出图代码实现讲解[1]
  • 2017-05-26Android动态资源加载原理和应用
  • 2017-05-26Android--Dialog对话框
  • 2017-05-26Android Git 客户端,androidgit客户端
  • 2017-05-26集成websocket即时通讯 java聊天源码 代码下载 java后台框架源码 websocket源码 IM,websocket即时通讯
  • 2017-05-26Activity的生命周期,Activity生命周期

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • linux文件系统的规模与瓶颈
    • RecyclerView再封装,RecyclerView封装
    • React-Native系列Android——Touch事件原理及状态效果
    • android 特殊用户通知用法汇总--Notification源码分析
    • 【读书笔记】【Android 开发艺术探索】第3章 View 的事件体系
    • 手势检测GestureDetector,gesturedetector
    • Android Studio 2.2.2导入Eclipse中创建的项目,androideclipse
    • 安卓第十一天笔记-Intent与inter-filter配置,intentfilter
    • Android的Dialog工具
    • ListView中响应item的点击事件并且刷新界面,listviewitem

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有