使用Kotlin开发Android应用 - 环境搭建 (1)

一. 在Android Studio上安装Kotlin插件

按快捷键Command+, -> 在Preferences界面找到Plugins -> 点击Browse repositories ... -> 输入Kotlin -> 安装Kotlin (老版本需要安装 Kotlin 和Kotlin Extensions For Android两个插件, 最新版本的Kotlin插件包含了Android Extensions, 因此不需要再安装Kotlin Extensions For Android插件了), 如图:


安装插件操作图


从插件信息上可以看到Kotlin Extensions For Android插件已经被淘汰掉了, 它被合并到Kotlin插件中, 请看下图:


B5DEA2D7-A8E5-4E33-848D-42022D86D70A.png

二. 配置构建脚本

在构建脚本中配置kotlin插件和kotlin库

  • (1) 在project目录下的build.gradle文件中定义kotlin的版本
buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:2.1.0' // 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 } //可以在module的build.gradle文件中使用, 使用方式为: "$key" ext.kotlin_version = '1.0.3'
  • (2) 在module的build.gradle文件中配置kotlin插件和kotlin库
    build.gradle文件内容如下:
buildscript {repositories {jcenter()}dependencies {//1. 添加插件到classpathclasspath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'com.android.application' //2. 应用kotlin插件 apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.stone.kotlin_demo" minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets { //3. 将kotlin源文件添加到编译路径下 main.java.srcDirs += 'src/main/kotlin' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' //4. 使用kotlin库 compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" }

三. 编写Kotlin Hello Kotlin程序

  • (1) Kotlin插件可以让我们把.java文件转换为.kl文件. 操作如下:
    在AS选中MainActivity的Java文件, 然后找到菜单Code->Convert Java File to Kotlin File, 这样Java源文件(*.java)就变成了Kotlin源文件*.kl, 如图:

    把Java源文件转换为Kotlin源文件

    转换后的MainActivity.kl内容如下:
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) tv.text = "Hello Kotlin" tv.textSize = 20.0f } }

activity_main文件内容如下:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.stone.kotlin_demo.MainActivity"> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> </RelativeLayout>

除了转换已有的Java源文件外, Kotlin插件可以让我们直接创建Kotlin源文件, 操作如下:
选择源文件所在的包 -> 右键 -> New -> Kotlin Activity 或者 Kotlin File/Class,
如图:


创建Kotlin源文件
  • (2) 运行Hello Kotlin程序, 界面如下:

    程序界面

至此使用kotlin开发android应用, 环境搭建已经讲完
欲知后事如何, 请听下回讲解......

=======================================================
更新(2017-02-13): 使用图形界面配置Kotlin (更详细的内容请参考官网文档)

    1. 安装Kotlin插件


      在Android Studio上安装Kotlin插件.png
    2. 创建一个安卓项目, 将其中的一个Activity文件转换为Kotlin文件.
      选中默认生成的MainActivity.java将java源码转换成Kotlin源码(MainActivity.kt), 如图:


      将Java代码转换成Kotlin代码


      还有一种方法是在AS中打开MainActivity.java -> 然后按两次Shift键, 调出 "Search Everywhere" 输入框 -> 再在输入框中输入Convert -> 点击 "Convert Java File to Kotlin File", 即可完成转换, 如下:


      将Java代码转换成Kotlin代码


      或者按"Shift+Command+A" 组合键, 然后在对话框中输入"Convert", 再点击"Convert Java File to Kotlin File", 即可, 如下:


      转换java文件为kotlin文件
    3. 配置项目 (就是在build.gradle中使用kotlin插件和其标准库)
      在转换好的MainActivity.kt文件中, 双击Shift键 (或者按"Shift+Command+A"组合键), 调出 "Search Everywhere" 输入框, 在输入框中输入 "Configure", 点击"Configure Kotlin in Project", 如图:


      配置项目


      或 ("Shift+Command+A"组合键操作图)


      配置项目


      这时候出现下面的配置面板


      Kotlin配置页


      在此配置面板中你可以选择在哪些module中加入kotlin配置以及选择kotlin的版本.
      配置完之后会在项目根目录下的build.gradle中添加kotlin插件, 而在module的build.gradle中应用kotlin插件并添加kotlin标准库的依赖.
      如下:


      项目根目录下的build.gradle中添加的内容

      module的build.gradle中添加的kotlin配置


      其实和手动配置没有多大区别, 都是在gradle配置中使用kotlin插件和依赖kotlin标准库, 只是用图形界面操作更加方便 !!

转载于:https://www.cnblogs.com/simadi/p/6688436.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(2367):两种方式导航跳转和传参

<template><view><button type"primary" click"chooseImg">上传图片</button><image v-for"item in imgArr" :src"item" click"previewImg(item)"></image><navigator url"../…

sqlserver启用登陆审计

客户端管理工具进入后&#xff1a;安全性——审核——新建审核——审核目标&#xff08;就是存储位置&#xff09;选application log&#xff08;windows系统应用日志&#xff09;或者选File&#xff08;文件目录中会产生一堆日志文件&#xff0c;设置最大滚动更新文件数、最大…

java基础——equals及==的区别

①数值比较【必须为整数&#xff0c;小数因为精度问题不能通过这个比较&#xff0c;只能依靠d1-d2<0.0000000001这样的比较两者的不同】&#xff0c;值相等就行。 ②引用比较&#xff0c;引用的对象有父子关系或者是同一类的才能比较&#xff0c;只有当指向同一个引用才相等…

前端学习(2368):编程式导航

<template><view><button type"primary" click"chooseImg">上传图片</button><image v-for"item in imgArr" :src"item" click"previewImg(item)"></image><navigator url"../…

centos7 firewall防火墙实现映射其他机器的端口

vi /etc/sysctl.conf 增加一行 net.ipv4.ip_forward 1 使上述修改生效 sysctl -p firewall-cmd --add-port5432/tcp --permanent #开放端口 firewall-cmd --add-forward-portport5432:prototcp:toaddr10.0.197.189:toport5432 --permanent #添加端口映射 10.0.197.189的54…

Navicat Premium 未保存和已执行SQL存储位置

未保存备份存放目录地址&#xff1a; C:\Users\{登录用户名}\Documents\Navicat\MySQL\servers\{MySQL连接名称}\{数据库名称} SQL执行历史文件地址&#xff1a; C:\Users\{登录用户名}\Documents\Navicat\Premium\logs\LogHistory.txt

正则表达式之反向引用

1.概述 捕获组捕获到的内容&#xff0c;不仅可以在正则表达式外部通过程序进行引用&#xff0c;也可以在正则表达式内部进行引用&#xff0c;这种引用方式就是反向引用。要了解反向引用&#xff0c;首先要了解捕获组&#xff0c;关于捕获组&#xff0c;参考 正则基础之——捕获…

MySQL 表一列逗号分隔字段,按逗号切割

直接查询 ---切割前 select id,content from test_split; 1 12,13,14 2 21,25 3 33 --切割后 1 12 1 13 1 14 2 21 2 25 3 33 --执行sql SELECT a.id,SUBSTRING_INDEX(SUBSTRING_INDEX(a.content,,,b.help_topic_id1),,,-1) AS num FROM test_split a join mys…

jquery template.js前端模板引擎

作为现代应用&#xff0c;ajax的大量使用&#xff0c;使得前端工程师们日常的开发少不了拼装模板&#xff0c;渲染模板 在刚有web的时候&#xff0c;前端与后端的交互&#xff0c;非常直白&#xff0c;浏览器端发出URL&#xff0c;后端返回一张拼好了的HTML串。浏览器对其进行渲…

webflux databuffer输出

直接输出JSON对象 GetMapping("selectMy") public Mono<Void> selectMy(ServerHttpRequest request, ServerHttpResponse response) {String pageNumber request.getQueryParams().getFirst("pageNumber");AuthUser authUser LoginProcess.getCurr…

Debug Hook

命名 关于这个命名是我自己这样说的&#xff0c;至于这种HOOK技术&#xff0c;先前在一个开源项目中叫做RemoteHook&#xff0c;我比较喜欢自己的这种命名&#xff0c;所以就叫Debug Hook。如果有错误&#xff0c;请指出。 先来说说调试的原理 在Windows操作系统&#xff0c;有…

多种时间格式字符串转换为Date对象

maven引入包 org.apache.commons commons-lang3 3.8 使用类 org.apache.commons.lang3.time.DateUtils 调用示例 Date date DateUtils.parseDate(strDate, "yyyy-MM-dd","yyyy-MM-dd HH:mm:ss","yyyy/MM/dd","yyyy/MM/dd HH:mm:ss&q…

SPFA 算法详解

适用范围&#xff1a;给定的图存在负权边&#xff0c;这时类似Dijkstra等算法便没有了用武之地&#xff0c;而Bellman-Ford算法的复杂度又过高&#xff0c;SPFA算法便派上用场了。 我们约定有向加权图G不存在负权回路&#xff0c;即最短路径一定存在。当然&#xff0c;我们可以…

webflux上传下载文件

上传文件 PostMapping("addAttach") public Mono<JsonResult> addAttach(RequestPart("file") FilePart filePart,//获取文件参数RequestPart("dataId") String dataId,//获取其他参数 ){String strFileName filePart.filename();//获取…

js 数字千分位展示

str.replace(/\d{1,3}(?(\d{3})$)/g,function(s){ return s, })