本文将介绍如何基于Kotlin Multiplatform、Jetpack Compose实现静态文件服务器,并运行在Android、Windows以及Linux(暂不支持server和mac)。
创建KMP(Kotlin Multiplatform)项目
环境设置
-
安装Android Studiio 2023.3.1以上版本, 之前版本需要自行安装KMP插件。
-
安装JDK 14以上版本,或使用Android Studio 自带jre环境,但缺少package.jar,无法打包。
推荐下载bellsoft的全量JDK,比较好用。下载地址:https://bell-sw.com/pages/downloads/。
- 安装Kotlin 1.9.0 插件。Android Studio自带,如需特殊版本,则需要自行安装或更新。
创建多平台应用
KMP 官方推荐使用多平台项目创建向导进行项目创建,KMP项目创建向导。
在向导页,先只选择Android 和 Desktop。点击Dowload。
打开Android Studio 后,打开已下载的KMP项目。
项目配置
首次导入项目后,gradle会同步依赖项,如同步出现错误 ,可按需修改gradle国内资源代理。在gradle/wrapper/gradle-wrapper.properties中,修改distributionUrl。
bash
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.7-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
在settings.gradle.kts中,配置相关镜像地址。
Kotlin
pluginManagement {
repositories {
maven { url = uri("https://mirrors.ustc.edu.cn/maven-central") }
maven { url = uri("https://maven.aliyun.com/repository/google") }
maven { url = uri("https://maven.aliyun.com/repository/public") }
maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }
google {
...
}
mavenCentral()
gradlePluginPortal()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
maven("https://maven.pkg.jetbrains.space/kotlin/p/wasm/experimental")
maven( "https://androidx.dev/storage/compose-compiler/repository")
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev")
maven("https://central.maven.org/maven2/") // for netty
}
}
运行多平台应用程序
在Android设备上运行
-
创建一个Android虚拟机或连接Android手机,并开启开发者选项,开启USB调试并授权电脑调试(Android 14以上的设备,可以通过局域网进行调试)。
-
在运行配置列表中,选择composeApp。
-
选择 Android 虚拟机或已连接的可调式手机,然后单击运行,编译完成后,将在所选设备上运行该应用程序。
-
启动后显示如下:
在桌面上运行
在桌面上运行,需要手动设置运行配置或执行gradle命令。
-
点击Android Studio 右侧的Gradle图标
-
点击执行Gradle命令图标。
-
键入运行桌面应用程序的命令后按回车开始编译。
bash
desktopRun -DmainClass=MainKt --quiet
- 编译完成后会自动运行。
如需运行其他平台,如Web、Server等,请参考创建您的多平台项目。