文章总结: 这篇文章介绍了Android开发中的Kotlin语言和Compose框架,解释了Kotlin如何取代Java成为Android主推语言,以及Compose作为新一代UI框架采用声明式开发范式的优势。文章通过分析示例代码,展示了Composable函数的使用方法和参数传递,为初学者提供了Android开发的基础知识学习路径。
综合评分: 81
文章分类: 移动安全,安全开发,应用安全,技术标准
【Android学习笔记】第2课 Kotlin语言、Compose框架及示例代码分析
原创
网安小杨
网络安全小杨
2025年12月8日 17:55
浙江
上节我们安装配置了Android Studio,搭建了开发环境,并创建了一个工程项目。这节课我们来了解一下最新版Android Studio所使用的开发语言和开发框架,并分析一下示例程序的代码。
一、Kotlin开发语言
Kotlin语言是JetBrains公司开发的一种编程语言,2017年被谷歌宣布为Android开发一级语言。目前已经取代Java,成为Android开发的主推语言,这当然是因为Kotlin与Java相比,有很多优秀之处。
其实Kotlin和Java是互通的,且Kotlin代码的运行依赖于Java虚拟机。具体过程是:Kotin代码先经过Kotlin编译器编译成字节码,然后Java解释器再将字节码解释成机器码。计算机在执行机器码时,根本不关心这些代码是用Kotlin语言还是Java语言编写的。
所以,有点Kotlin或Java的基础,对学习Android编程是有帮助的。如果没有基础,也没关系,咱们可以慢慢地study。
二、Compose开发框架
Compose的全称是“Jetpack Compose”,是谷歌推出的新一代Android UI开发框架。相比传统的Android View框架,开发效率更高,用户体验更友好。
Compose采用声明式开发范式,以区别于之前采用的命令式开发范式。所谓声明式开发范式,就是开发者直接描述想要什么结果,让计算机自己去想该怎么做。目前前端开发领域多采用这种开发范式,如IOS的SwiftUI、HarmonyOS的ArkUI等等。
Kotlin支持函数式编程,而Compose更是将函数式编程进行到底,可谓“一切皆函数”。Compose声明式UI开发的基础是Composable函数,程序代码中随处可见用“@Composable”标注的函数。这些函数构成了UI描述的各种布局和组件,它们有函数名、参数列表、函数体,但没有返回值。
三、示例代码分析
初步了解了Kotlin语言和Compose开发框架后,我们来看一看Android Studio为我们提供的示例程序代码,如下图所示:
重要的代码我用3个红色的框给标示出来,实际上代码中是不会出现框的。
请看框1,这是app运行时要执行的一段代程序,类似于C语言的main函数,它由一个Scaffold(俗称“脚手架”)布局构成。前面说过,Compose中的布局和组件都是函数,所以你可以把Scaffold看成函数名,后面的小括号里的modifier是参数,大括号里的是函数体,在此处调用了Greeting函数。并传递两个参数,分别是name和modifier,但没有函数体。这个Greeting函数是在哪里定义的呢?
请看框2,这就是我们要找的Greeting函数。它由“@Composable”标注,表明是个compose函数,可以用于UI描述。该函数带两个参数,分别是String类型的name,Modifier类型的modifier,mofigirt参数有默认值Modifier。函数体是一个Text组件,也可称为Text函数,这是一个内置函数,不需要开发者定义,可直接调用。该函数有两个参数,一个是text,用于显示一行字符串,此处显示的是Hello+传递的参数name。另一个是modifier。
第3个框是干什么的呢?它既用“@composable”标注,又用“@Preview”标注,表明它是一个可预览的composable函数,可以在预览器中实时预览。第1课里我们在预览器中看到的“Hello Android!”就是它的杰作。这也调用了框2中的Greeting函数,并传递了name参数,值为“Android”,所以预览器中显示的就是“Hello Android!”。为什么不传递modifier参数呢?因为框2在定义Greeting函数时,参数modifier有默认参数,即modifier:Modifier=Modifier。
示例程序代码为我们提供了学习编程的第一手资料,除了红框标注的,其他部分也需要认真看一看。读懂别人的代码,编写出自己的代码,coding up!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网络安全小杨 网安小杨《【Android学习笔记】第2课 Kotlin语言、Compose框架及示例代码分析》