本文主要是介绍android NDK学习篇3之two-libs——使用(多个)静态库生成动态库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
还要以NDK提供的two-libs为例子,走一遍多个静态库(.a文件)生成动态库(.so文件)的流程。
1、建立android工程,编写java对应JNI层的本地接口:
package com.example.twolibs;import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;public class TwoLibs extends Activity
{/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);TextView tv = new TextView(this);int x = 1000;int y = 42;// here, we dynamically load the library at runtime// before calling the native method.//int z = add(x, y);tv.setText( "The sum of " + x + " and " + y + " is " + z );setContentView(tv);}public native int add(int x, int y);static{System.loadLibrary("twolib-second");}
}
JNI文件夹下的准备预备文件如下,其中.o和.a文件都是用NDK编译生成,具体操作见下:
Android.mk first.c first.o third.a third.h
first.a first.h second.c third.c third.o
2、编写jni层中间层代码second.c,在其中调用first.c中的first(int x,int y)函数及third.c中的test()函数,具体代码如下:
这篇关于android NDK学习篇3之two-libs——使用(多个)静态库生成动态库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!