基于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等,请参考创建您的多平台项目

相关推荐
HalvmånEver2 小时前
Linux:基础开发工具(一)
linux·运维·服务器·开发语言·学习·进阶学习
杜子不疼.2 小时前
【C++】深入拆解二叉搜索树:从递归与非递归双视角,彻底掌握STL容器的基石
开发语言·c++
天若有情6732 小时前
从零实现轻量级C++ Web框架:SimpleHttpServer入门指南
开发语言·前端·c++·后端·mvc·web应用
weixin_456588152 小时前
JVM(java虚拟机)
java·开发语言·jvm
hygge9992 小时前
JVM 内存结构、堆细分、对象生命周期、内存模型全解析
java·开发语言·jvm·经验分享·面试
小二·2 小时前
Java虚拟机(JVM)面试题(51道含答案)
java·开发语言·jvm
无敌最俊朗@2 小时前
03-事务高频面试总结
java·开发语言·jvm
hygge9992 小时前
类加载机制、生命周期、类加载器层次、JVM的类加载方式
java·开发语言·jvm·经验分享·面试
puyaCheer2 小时前
Android 打开 在线 pdf 文件
android·pdf
mjhcsp3 小时前
C++ 三分查找:在单调与凸函数中高效定位极值的算法
开发语言·c++·算法