feat: now can run hello world

This commit is contained in:
huhuang03 2025-07-02 18:30:09 +08:00
commit 8cdcf4138b
4 changed files with 45 additions and 5 deletions

View file

@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = '2.0.21'
ext.kotlin_version = '2.1.21'
repositories {
google()

5
justfile Normal file
View file

@ -0,0 +1,5 @@
set windows-shell := ["powershell.exe", "-NoLogo", "-Command"]
push-server:
./gradlew assembleRelease
adb push ./server/build/outputs/apk/release/server-release-unsigned.apk /data/local/tmp/souls

View file

@ -6,7 +6,7 @@ android {
compileSdk 35
defaultConfig {
applicationId "com.genymobile.scrcpy"
minSdkVersion 21
minSdkVersion 26
targetSdkVersion 35
versionCode 30301
versionName "3.3.1"
@ -22,11 +22,26 @@ android {
buildConfig true
aidl true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
packaging {
resources {
excludes += ['META-INF/INDEX.LIST', 'META-INF/io.netty.versions.properties']
}
}
}
dependencies {
//noinspection GradleDependency
implementation "org.jetbrains.kotlin:kotlin-stdlib:2.0.21"
//noinspection GradleDependencyleVersion
implementation "org.jetbrains.kotlin:kotlin-stdlib:2.1.21"
implementation("io.ktor:ktor-server-netty:3.2.0")
testImplementation 'junit:junit:4.13.2'
}

View file

@ -24,6 +24,12 @@ import com.genymobile.scrcpy.video.ScreenCapture
import com.genymobile.scrcpy.video.SurfaceCapture
import com.genymobile.scrcpy.video.SurfaceEncoder
import com.genymobile.scrcpy.video.VideoSource
import io.ktor.http.ContentType
import io.ktor.server.engine.embeddedServer
import io.ktor.server.netty.Netty
import io.ktor.server.response.respondText
import io.ktor.server.routing.get
import io.ktor.server.routing.routing
import java.io.File
import java.io.IOException
@ -39,6 +45,19 @@ object Server {
SERVER_PATH = classPaths[0]
}
/**
* 开启http server
*/
private fun startHttpServer() {
embeddedServer(Netty, 8080) {
routing {
get("/") {
call.respondText("Hello, world!", ContentType.Text.Html)
}
}
}.start(wait = true)
}
@Throws(IOException::class, ConfigurationException::class)
private fun scrcpy(options: Options) {
if (Build.VERSION.SDK_INT < AndroidVersions.API_31_ANDROID_12 && options.getVideoSource() == VideoSource.CAMERA) {
@ -247,7 +266,8 @@ object Server {
}
try {
scrcpy(options)
startHttpServer()
// scrcpy(options)
} catch (e: ConfigurationException) {
// Do not print stack trace, a user-friendly error-message has already been logged
}