基于Kotlin Multiplatform实现静态文件服务器(一)

本文将介绍如何基于Kotlin Multiplatform、Jetpack Compose实现静态文件服务器,并运行在Android、Windows以及Linux(暂不支持server和mac)。

创建KMP(Kotlin Multiplatform)项目

环境设置
  1. 安装Android Studiio 2023.3.1以上版本, 之前版本需要自行安装KMP插件。

  2. 安装JDK 14以上版本,或使用Android Studio 自带jre环境,但缺少package.jar,无法打包。

推荐下载bellsoft的全量JDK,比较好用。下载地址:https://bell-sw.com/pages/downloads/。

  1. 安装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设备上运行
  1. 创建一个Android虚拟机或连接Android手机,并开启开发者选项,开启USB调试并授权电脑调试(Android 14以上的设备,可以通过局域网进行调试)。

  2. 在运行配置列表中,选择composeApp。

  3. 选择 Android 虚拟机或已连接的可调式手机,然后单击运行,编译完成后,将在所选设备上运行该应用程序。

  4. 启动后显示如下:

在桌面上运行

在桌面上运行,需要手动设置运行配置或执行gradle命令。

  1. 点击Android Studio 右侧的Gradle图标

  2. 点击执行Gradle命令图标。

  3. 键入运行桌面应用程序的命令后按回车开始编译。

bash 复制代码
desktopRun -DmainClass=MainKt --quiet
  1. 编译完成后会自动运行。

如需运行其他平台,如Web、Server等,请参考创建您的多平台项目

相关推荐
小王不爱笑1325 小时前
IO 模型
开发语言·python
知我Deja_Vu5 小时前
【避坑指南】ConcurrentHashMap 并发计数优化实战
java·开发语言·python
AI+程序员在路上6 小时前
CANopen 协议:介绍、调试命令与应用
linux·c语言·开发语言·网络
2401_831824966 小时前
基于C++的区块链实现
开发语言·c++·算法
谢白羽6 小时前
vllm实践
android·vllm
m0_518019486 小时前
C++与机器学习框架
开发语言·c++·算法
ZTLJQ6 小时前
深入理解逻辑回归:从数学原理到实战应用
开发语言·python·机器学习
qq_417695056 小时前
C++中的代理模式高级应用
开发语言·c++·算法
电子云与长程纠缠7 小时前
Godot学习03 - 实例化、层级访问、Export
android·学习·godot
波波0077 小时前
每日一题:.NET 中的“反射”是什么?
开发语言·.net