注意该.so库指的是android平台的,非一般linux、unix平台;

1、现有库libcom_ycan_testLib.so

2、新建android项目TestLib2

3、添加新类:

类名:testLib

包路径:参考现有库名,应为com.ycan

4、在新类中声明库的本地方法,如下:

package com.ycan;public class PDFLib {    public native int add (int a, int b);    public native int sub (int a, int b);}

这些接口函数,应该由库的提供者告诉你吧,我目前是这样认为的。

5、然后把库文件拷贝到如下目录:

\workspace\TestLib2\libs\armeabi

似乎必须是这个路径吧,我刚开始没有armeabi目录,结果运行出错,最后自己新建了一个这样的目录,才ok了。

6、在主类中调用库接口,我的库是做加减法的,基本调用代码如下:

package com.testlib2;import com.ycan.testLib;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {        private Button btnAdd;    private Button btnSub;    private EditText num1;    private EditText num2;    private EditText result;    private int a,b,rlt;    private testLib lib = new testLib();    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                btnAdd = (Button)findViewById(R.id.button_add);        btnSub = (Button)findViewById(R.id.button_sub);        num1 = (EditText)findViewById(R.id.num1);        num2 = (EditText)findViewById(R.id.num2);        result = (EditText)findViewById(R.id.num3);                btnAdd.setOnClickListener(new OnClickListener(){            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                String strnum1 = num1.getText().toString();                a = Integer.parseInt(strnum1);                String strnum2 = num2.getText().toString();                b = Integer.parseInt(strnum2);                rlt = lib.add(a,b);                Dostop(rlt);            }                    });                btnSub.setOnClickListener(new OnClickListener()        {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                String strnum1 = num1.getText().toString();                a = Integer.parseInt(strnum1);                String strnum2 = num2.getText().toString();                b = Integer.parseInt(strnum2);                rlt = lib.sub(a,b);                Dostop(rlt);                            }        }        );    }    static {                System.loadLibrary("com_ycan_testLib");        }    private void Dostop(int number){        Toast.makeText(this, ""+number, 8).show();//显示8秒        String x=Integer.toString(rlt);            result.setText(x);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.activity_main, menu);        return true;    }}

最后运行效果:

更多相关文章

  1. Ubuntu Android(安卓)2.3的编译环境 Ubuntu 11.04 x64的版本
  2. Android(安卓)Studio磁盘空间不足:Emulator: emulator: ERROR: No
  3. android 支付功能
  4. android jni示范 修改无法启动注意点 jni无效
  5. Android学习第三天-打包常用命令
  6. android中WebView和javascript实现数据交互实例
  7. Android源码 更改系统音量
  8. android系统开发sdcard
  9. Android中Activity生命周期的学习

随机推荐

  1. maven项目不编译xml文件的解决办法
  2. Jaxb2实现Bean与xml互转的示例代码详解
  3. java对象转换为xml格式的示例代码分享
  4. 如何打开xml文件介绍
  5. XStream实现Bean与xml互转的代码示例
  6. XML数据岛之数据修改与添加
  7. 利用xmllint命令处理xml
  8. XML PULL和PUSH技术的区别
  9. XML数据岛之数据分页显示
  10. 详解对XML进行Sax解析的示例代码分享