Android Java调用libtwolib-first.a
输入:
新建jni目录,放入libtwolib-first.a、first.h、second.c、Android.mk四个文件
输出:
libtwolib-second.so(打包进apk了)、Caculator.apk
过程:
Android.mk内容如下:
LOCAL_PATH := $(call my-dir)
输入:
新建jni目录,放入libtwolib-first.a、first.h、second.c、Android.mk四个文件
输出:
libtwolib-second.so(打包进apk了)、Caculator.apk
过程:
Android.mk内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#下面这句加上去
LOCAL_LDFLAGS := $(LOCAL_PATH)/libtwolib-first.a
LOCAL_MODULE := twolib-second
LOCAL_SRC_FILES := second.c
LOCAL_LDFLAGS := $(LOCAL_PATH)/libtwolib-first.a
LOCAL_MODULE := twolib-second
LOCAL_SRC_FILES := second.c
include $(BUILD_SHARED_LIBRARY)
second.c内容如下:
#include "first.h"
#include <jni.h>
second.c内容如下:
#include "first.h"
#include <jni.h>
jint Java_com_suhan_Caculator_add( JNIEnv* env,
jobject this,
jint x,
jint y )
{
//return x+y;
return first(x,y);
}
Caculator内容如下:
package com.suhan;
public native int add(int x, int y);
static {
System.loadLibrary("hello-jni");
System.loadLibrary("demo-jni");
System.loadLibrary("twolib-second");
}
点击按钮:
int x = 3;
int y = 50;
int z = add(x, y);
String Z = Integer.toString(z);
answerValue.setText(Z);
右击Caculator工程属性,新建并配置一个Builder
Location填:
F:\android-ndk-r9\ndk-build.cmd
Working Directory填:
F:\adt-bundle-windows-x86_64-20130729\workspace001\Caculator
或
${workspace_loc:/Caculator}
点击Project|Clean,选中Caculator,即可生成libtwolib-second.so
点击Run Caculator按钮,即可生成Caculator.apk
Android Java调用libhello-jni.so、libdemo-jni.so
正确的:
HelloJni.java
package com.example.hellojni;
jobject this,
jint x,
jint y )
{
//return x+y;
return first(x,y);
}
Caculator内容如下:
package com.suhan;
public native int add(int x, int y);
static {
System.loadLibrary("hello-jni");
System.loadLibrary("demo-jni");
System.loadLibrary("twolib-second");
}
点击按钮:
int x = 3;
int y = 50;
int z = add(x, y);
String Z = Integer.toString(z);
answerValue.setText(Z);
右击Caculator工程属性,新建并配置一个Builder
Location填:
F:\android-ndk-r9\ndk-build.cmd
Working Directory填:
F:\adt-bundle-windows-x86_64-20130729\workspace001\Caculator
或
${workspace_loc:/Caculator}
点击Project|Clean,选中Caculator,即可生成libtwolib-second.so
点击Run Caculator按钮,即可生成Caculator.apk
Android Java调用libhello-jni.so、libdemo-jni.so
正确的:
HelloJni.java
package com.example.hellojni;
public class HelloJni {
public native String stringFromJNI();
}
F:\adt-bundle-windows-x86_64-20130729\workspace001\Caculator\src\com\example\NativeMD5.java
package com.example;
public native String stringFromJNI();
}
F:\adt-bundle-windows-x86_64-20130729\workspace001\Caculator\src\com\example\NativeMD5.java
package com.example;
public class NativeMD5 {
public native String encryptMD5(String text);
}
public native String encryptMD5(String text);
}
Caculator.java
package com.suhan;
import com.example.hellojni.HelloJni;
import com.example.NativeMD5;
public class Caculator extends Activity{
private HelloJni lib =
package com.suhan;
import com.example.hellojni.HelloJni;
import com.example.NativeMD5;
public class Caculator extends Activity{
private HelloJni lib =