TGTGInsighttelegram intelligenceLIVE / telegram public index
← Android Broadcast
Android Broadcast avatar

TGINSIGHT POST

Post #9514

@android_broadcast

Android Broadcast

Vues8,100Nombre de vues
Publié18 sept.18/09/2025 06:26
Contenu

Contenu du post

🤖🦢Пример написания библиотеки для Android на языке Swift (RU, 17м) В Swift 6 появилась возможность работать с Android NDK из Swift и всё это потом вызывать из Java при помощи JNI. Java Native Interface (JNI) – это мост который позволяет нативному коду обращаться к Java Virtual Machine (JVM). Когда вы пишете Java код, то вы используете Android SDK. Но когда вы используете языки как Swift или C++, которые не компилируются в Java байткод, вам уже нужен Android NDK для коммуникации с Java через JNI. Пример нативного кода #if os(Android) @_cdecl("Java_com_habr_swiftlib_myfirstandroidproject_SwiftInterface_initialize") public func initialize( envPointer: UnsafeMutablePointer<JNIEnv?>, clazzRef: jobject, callerRef: jobject ) { // Активируем Android logger LoggingSystem.bootstrap(AndroidLogHandler.taggedBySource) // Инициализируем JVM let jvm = envPointer.jvm() JNIKit.shared.initialize(with: jvm) // ДАЛЕЕ: кэшируем class loader // ДАЛЕЕ: пример `toString` // ДАЛЕЕ: пример `Task` } #endif Инструменты сгенерят вам код для работы из Java/Kotlin package com.habr.swiftlib.myfirstandroidproject object SwiftInterface { init { System.loadLibrary("MyFirstAndroidProject") } external fun initialize(caller: Any) } #android#ndk#swift