Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

jni

文字列受け渡し

class Hello { companion object { init { System.loadLibrary("Hello") } } external fun printHello() external fun printNative(str:String, len:Int); } fun main(args: Array<String>) { Hello().printHello() val str = "hello form kotoln" Hello().printNati</string>…

kotlinでhelloworld

class Hello { companion object { init { System.loadLibrary("Hello") } } external fun printHello() } fun main(args: Array<String>) { Hello().printHello() } でコンパイル kotlinc hello.kt前回同様ライブラリを用意して実行 kotlin HelloKt</string>

cppでhelloworld

cのときと同様でhello.cppを作る。 #include "Hello.h" #include <iostream> extern "C" { JNIEXPORT void JNICALL Java_Hello_printHello (JNIEnv *env, jclass obj) { std::cout << "hello cpp" << std::endl; } } あとはコンパイル時に-libc++をつける。 gcc -share</iostream>…

cでhelloworld

java側を用意 public class Hello { static{ System.out.println(java.library.path); System.loadLibrary("Hello"); } static native void printHello(); public static void main(String args[]){ printHello(); } } コンパイル javac Hello.java C側を作…