Android :Получение случайного числа методом JNI

Я создаю демонстрацию математических операций, таких как сложение, вычитание, умножение и деление, используя NDK.

Я могу создать библиотеку и получить ответ от собственного кода, но результат неправильный, я имею в виду, что это случайное статическое значение.

Класс Calculator.c

#include <stdio.h>
#include <jni.h>

jint
Java_com_example_jni_calculator_Calculator_add(JNIEnv* env, jint a, jint b) {
    return (jint)(a + b);
}

jint
Java_com_example_jni_calculator_Calculator_substract(JNIEnv* env, jint a, jint b) {
    return (jint)(a - b);
}

jint
Java_com_example_jni_calculator_Calculator_multiply(JNIEnv* env, jint a, jint b) {
    return (jint)(a * b);
}

jint
Java_com_example_jni_calculator_Calculator_devide(JNIEnv* env, jint a, jint b) {
    return (jint)(a / b);
}

Класс Calculator.java для загрузки библиотеки и запуска собственных методов.

public class Calculator {

    static {
        System.loadLibrary("Calculator");
    }

    public native int add(int a, int b);
    public native int substract(int a, int b);
    public native int multiply(int a, int b);
    public native int devide(int a, int b);
}

Я использую приведенный ниже код для отображения результата:

int num1 = Integer.parseInt(txtNumber1.getText().toString().trim());
int num2 = Integer.parseInt(txtNumber2.getText().toString().trim());
tvResult.setText(String.format("%1$d + %2$d is equals to %3$d", num1, num2, mCalculator.add(num1, num2)));

Выход

enter image description here

7
задан Sergey K. 16 July 2012 в 08:20
поделиться