使用Kotlin开发Android应用初体验

简介: 使用Kotlin开发Android应用初体验昨晚,最近一届的谷歌IO大会正式将Kotlin确定为了官方开发语言,作为一名Android开发鸟,怎么能不及时尝尝鲜呢?Kotlin的简要介绍在开发之前,很多同学一定有很多疑问,Kotlin到底有啥好处,怎么和现有的项目共存呢?Java那么些特性Kotlin都有吗?嗯,让我们一一来看。

使用Kotlin开发Android应用初体验

昨晚,最近一届的谷歌IO大会正式将Kotlin确定为了官方开发语言,作为一名Android开发鸟,怎么能不及时尝尝鲜呢?

Kotlin的简要介绍

在开发之前,很多同学一定有很多疑问,Kotlin到底有啥好处,怎么和现有的项目共存呢?Java那么些特性Kotlin都有吗?嗯,让我们一一来看。

以下内容摘自:Kotlin的官方网站:https://www.kotlincn.net/docs/reference/android-overview.html

Kotlin 非常适合开发 Android 应用程序,将现代语言的所有优势带入 Android 平台而不会引入任何新的限制:

  • 兼容性:Kotlin 与 JDK 6 完全兼容,保障了 Kotlin 应用程序可以在较旧的 Android 设备上运行而无任何问题。Kotlin 工具在 Android Studio 中会完全支持,并且兼容 Android 构建系统。
  • 性能:由于非常相似的字节码结构,Kotlin 应用程序的运行速度与 Java 类似。 随着 Kotlin 对内联函数的支持,使用 lambda 表达式的代码通常比用 Java 写的代码运行得更快。
  • 互操作性:Kotlin 可与 Java 进行 100% 的互操作,允许在 Kotlin 应用程序中使用所有现有的 Android 库 。这包括注解处理,所以数据绑定和 Dagger 也是一样。
  • 占用:Kotlin 具有非常紧凑的运行时库,可以通过使用 ProGuard 进一步减少。 在实际应用程序中,Kotlin 运行时 只增加几百个方法以及 .apk 文件不到 100K 大小。
  • 编译时长:Kotlin 支持高效的增量编译,所以对于 清理构建会有额外的开销,增量构建通常与 Java 一样快或者更快。
  • 学习曲线:对于 Java 开发人员,Kotlin 入门很容易。包含在 Kotlin 插件中的自动 Java 到 Kotlin 的转换器 有助于迈出第一步。Kotlin 心印 通过一系列互动练习提供了语言主要功能的指南。

Kotlin 用于 Android 的案例学习

Kotlin 已被一些大公司成功采用,其中一些公司分享了他们的经验:

  • Pinterest 已经成功地将 Kotlin 引入了他们的应用程序中,每个月有 1 亿 5 千万人使用。
  • Basecamp 的 Android 应用程序是 100% Kotlin 代码,他们报告了程序员幸福的 巨大差异,以及工作质量和速度的巨大改善。
  • Keepsafe 的 App Lock 应用程序也已转换为 100% Kotlin, 使源代码行数减少 30%、方法数减少 10%。
    用于 Android 开发的工具

Kotlin 团队为 Android 开发提供了一套超越标准语言功能的工具:

  • Kotlin Android 扩展是一个编译器扩展, 可以让你摆脱代码中的 findViewById() 调用,并将其替换为合成的编译器生成的 属性。
  • Anko 是一个提供围绕 Android API 的 Kotlin 友好的包装器的库 ,以及一个可以用 Kotlin 代码替换布局 .xml 文件的 DSL。

下一步

  • Android 与 Kotlin 入门教程 指导你将 Kotlin 插件安装到 Android Studio 中,并创建你的第一个 Kotlin 应用程序。
  • 关于更深入的介绍,请查看本站的参考文档及 Kotlin 心印。
  • 另一个很好的资源是 Kotlin for Android Developers, 这本书会引导你逐步完成在 Kotlin 中创建真正的 Android 应用程序的过程。

最后附上《Kotlin for Android Developers》这本学习使用Kotlin开发Android应用的指南。

使用Kotlin开发Android应用

在开始学习使用Kotlin开发Android应用之前,我们首先需要准备好手中的环境,那就是必须先配置好Android Studio 3.0的环境

创建Kotlin开发工程

这里的工程创建与普通的Android应用工程创建并无不同,唯一的不同之处在于创建工程时勾选 Include Kotlin support 选项。如图:

这里写图片描述

在默认创建好的Activity中便已经是Kotlin的代码,看起来与Java代码本身非常相似:

这里写图片描述

Kotlin文件以.kt结尾。

默认创建好的Kotlin文件还是会放在和Java文件一样的位置,如果需要使kotlin文件与Java文件分开放的话,那么可以在对应的gradle文件中加入以下配置:

android {
   sourceSets {
       main.java.srcDirs += 'src/main/kotlin'
   }
}

这样的话,所有默认创建的Kotlin文件就会被放在/kotlin/目录下了。

在现有的工程中添加Kotlin

如果需要在已有的工程中添加Kotlin的支持,那么只需要在新创建Activity时在Source language选项中选择Kotlin就可以:

这里写图片描述

将Java代码转换为Kotlin代码

在Android Studio 3.0中提供了可以将Java代码转化为Kotlin代码的工具。使用时只需要将对应的Java文件打开,然后选择菜单栏上的 Code -> Convert Java File to Kotlin File 就可以完成转换。

这里写图片描述

不过需要注意的是,这个工具可以完成大部分的语法转换,个别类型,比如数组在转换的时候可能有些问题,需要自己手动调整。博主我在练习的时候发现了这个问题,不过通过语法文档迅速做了修正。发现Kotlin在语法简洁方面确实要优于Java很多。例如下面一段代码:

        val bitmaps = LargePicLoadHelper.cutItemImage(cutImage, itemImageHeight)
        cutImage.recycle()

        for (i in bitmaps) {
            val imageView = ImageView(this)
            imageView.setImageBitmap(i)
            linearLayout.addView(imageView)
        }

        textView.postDelayed({
            for (i in bitmaps) {
                i.recycle()
            }
        }, 1000)

这段代码在轮询数组时,比Java的foreach循环要简洁很多,i在这里代表了一个Bitmap对象,bitmaps是一个数组。是不是很简单呢?

通过Kotlin使用Java代码

Kotlin提供了很强大的互操作性,这个互操作性是个什么鬼呢?就是说Kotlin可以很方便的调用Java代码,Java代码也可以很方便的调用Kotlin代码。这个方便到什么程度呢?Kotlin可以直接调用Java代码。如果你了解JNI的话,那就知道Kotlin的互操作性有多么简洁多么方便了。

使用Kotlin声明Activity:

class MyActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity)
  }
}

使用Kotlin设置点击事件:

val textView = findViewById(R.id.text) as TextView
textView.setOnClickListener {

    Toast.makeText(this,"Hello Kotlin!",Toast.LENGTH_SHORT).show()

}

看到没有,上面的setContentView以及下面的Toast就是Android提供的API,我们可以直接使用。并且setOnClickListener方法内部并不需要new OnClickListener对象!直接写点击实现就可以了!还有Toast的第一个参数this在Java中是一定要写Activity.this的,而这里只用写this就可以了!是不是很niubility?


最后,希望大家可以加入下面这个Kotlin开发学习交流群,一起探讨学习Kotlin!

这里写图片描述

目录
相关文章
|
3天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
1天前
|
存储 缓存 安全
Android系统 应用存储路径与权限
Android系统 应用存储路径与权限
5 0
Android系统 应用存储路径与权限
|
1天前
|
存储 安全 Android开发
Android系统 自定义系统和应用权限
Android系统 自定义系统和应用权限
6 0
|
6天前
|
缓存 移动开发 Android开发
构建高效Android应用:从优化用户体验到提升性能表现
【4月更文挑战第18天】 在移动开发的世界中,打造一个既快速又流畅的Android应用并非易事。本文深入探讨了如何通过一系列创新的技术策略来提升应用性能和用户体验。我们将从用户界面(UI)设计的简约性原则出发,探索响应式布局和Material Design的实践,再深入剖析后台任务处理、内存管理和电池寿命优化的技巧。此外,文中还将讨论最新的Android Jetpack组件如何帮助开发者更高效地构建高质量的应用。此内容不仅适合经验丰富的开发者深化理解,也适合初学者构建起对Android高效开发的基础认识。
5 0
|
6天前
|
移动开发 Android开发 开发者
构建高效Android应用:采用Kotlin进行内存优化的策略
【4月更文挑战第18天】 在移动开发领域,性能优化一直是开发者关注的焦点。特别是对于Android应用而言,由于设备和版本的多样性,确保应用流畅运行且占用资源少是一大挑战。本文将探讨使用Kotlin语言开发Android应用时,如何通过内存优化来提升应用性能。我们将从减少不必要的对象创建、合理使用数据结构、避免内存泄漏等方面入手,提供实用的代码示例和最佳实践,帮助开发者构建更加高效的Android应用。
10 0
|
8天前
|
缓存 移动开发 Java
构建高效的Android应用:内存优化策略
【4月更文挑战第16天】 在移动开发领域,尤其是针对资源有限的Android设备,内存优化是提升应用性能和用户体验的关键因素。本文将深入探讨Android应用的内存管理机制,分析常见的内存泄漏问题,并提出一系列实用的内存优化技巧。通过这些策略的实施,开发者可以显著减少应用的内存占用,避免不必要的后台服务,以及提高垃圾回收效率,从而延长设备的电池寿命并确保应用的流畅运行。
|
10天前
|
搜索推荐 开发工具 Android开发
安卓即时应用(Instant Apps)开发指南
【4月更文挑战第14天】Android Instant Apps让用户体验部分应用功能而无需完整下载。开发者需将应用拆分成模块,基于已上线的基础应用构建。使用Android Studio的Instant Apps Feature Library定义模块特性,优化代码与资源以减小模块大小,同步管理即时应用和基础应用的版本。经过测试,可发布至Google Play Console,提升用户便利性,创造新获客机会。
|
11天前
|
Java API 调度
安卓多线程和并发处理:提高应用效率
【4月更文挑战第13天】本文探讨了安卓应用中多线程和并发处理的优化方法,包括使用Thread、AsyncTask、Loader、IntentService、JobScheduler、WorkManager以及线程池。此外,还介绍了RxJava和Kotlin协程作为异步编程工具。理解并恰当运用这些技术能提升应用效率,避免UI卡顿,确保良好用户体验。随着安卓技术发展,更高级的异步处理工具将助力开发者构建高性能应用。
|
11天前
|
编解码 人工智能 测试技术
安卓适配性策略:确保应用在不同设备上的兼容性
【4月更文挑战第13天】本文探讨了提升安卓应用兼容性的策略,包括理解平台碎片化、设计响应式UI(使用dp单位,考虑横竖屏)、利用Android SDK的兼容工具(支持库、资源限定符)、编写兼容性代码(运行时权限、设备特性检查)以及优化性能以适应低端设备。适配性是安卓开发的关键,通过这些方法可确保应用在多样化设备上提供一致体验。未来,自动化测试和AI将助力应对设备碎片化挑战。
|
17天前
|
移动开发 API Android开发
构建高效Android应用:探究Kotlin协程的优势与实践
【4月更文挑战第7天】 在移动开发领域,性能优化和应用响应性的提升一直是开发者追求的目标。近年来,Kotlin语言因其简洁性和功能性在Android社区中受到青睐,特别是其对协程(Coroutines)的支持,为编写异步代码和处理并发任务提供了一种更加优雅的解决方案。本文将探讨Kotlin协程在Android开发中的应用,揭示其在提高应用性能和简化代码结构方面的潜在优势,并展示如何在实际项目中实现和优化协程。