Android之项目中调用已有.so库
注意该.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; }
}
最后运行效果:
Android之项目中调用已有.so库相关推荐
- java批量处理数据库语句_Java项目中调用bat批处理进行多用户数据库备份
Java项目中调用bat批处理配合使用BCP进行多用户数据的备份 一.项目需求 最近项目中需要对数据库(Sql Server系列数据库)进行备份.项目中的需求不是简单的整个数据库的备份,而是根据用户来 ...
- Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决...
问题描述: mac笔记本本身会自带几个python版本,比如python2.7版本,我没有改动mac默认的python版本,只是安装了python3.7版本. 使用Pycharm开发Python项目没 ...
- 如何在项目中加入已存在的文件夹, 注意是文件夹而不是文件
如何在项目中加入已存在的文件夹, 注意是文件夹而不是文件 1.在 Solution Explorer 中点击相关的 Project 2.点击Solution Explorer 下面的工具栏中的 Sho ...
- Android:Android NDK项目中C++文件中打印日志
Android NDK项目中C++文件中打印日志 工作需要,在NDK项目中的C++文件中打印日志,还是费了点劲查找 才达到自己 想要的效果了. 步骤 添加头文件 添加头文件 定义宏函数 #includ ...
- ios项目中调用百度地图iphone版与百度地图HDipad版的坑
最近在写项目的时候发现了项目中调用百度地图的一个坑,iphone版与ipad版的不同. 一.首先百度地图在ipad上叫百度地图HD,要区分有GPS和没GPS版,也就是说没GPS的没有导航功能,在使用项 ...
- html调用腾讯地图定位当前位置,vue web项目中调用腾讯地图API获取当前位置的经纬度...
vue web项目中调用腾讯地图API获取当前位置的经纬度 vue web项目中调用腾讯地图API获取当前位置的经纬度 在main.js 中添加一下代码 import axios from 'axio ...
- 网页中调用matlab,在C#的Web项目中调用Matlab代码的步骤
在C#的Web项目中调用Matlab代码的方法 为了毕设的图形检索方向的研究,本人需要在信科的师兄师姐们已经完成的C#界面中,调用现在研究的算法的Matlab代码,以便看到实验的效果.前段时间已经拖延 ...
- 如何从 Android 内部存储中恢复已删除的照片?
我们使用手机录制的照片和视频通常存储在手机的内存中.我们存储它们以记住我们生活的美丽.然而,在管理这些照片的过程中,一些用户却发现自己不小心删除了这些照片,这很尴尬. 如果您的 Android 设备遇 ...
- java和matlab的交互实践--在java项目中调用matlab程序
本文主要解决了java项目中调用matlab程序过程中遇到的问题,下文主要分matlab的jar包部署以及java项目配置两个方面来分析. 1.matlab项目的部署 -- 生成jar包 保存matl ...
最新文章
- .net web部署(IIS Express Nancy Self-Hosting)
- Windows PE导出表编程4(重构导出表实现私有函数导出)
- 深入浅出设计模式原则之里氏代换原则(Liskov Substitution Principle)
- mysql 后10条_Mysql 保留最新的10条数据
- Java Web学习总结(25)——MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
- bzoj 1024 [SCOI2009]生日快乐
- QT 5.3 VS2010 中文
- 数据结构实验 7.兔子与樱花
- 需要编写支持英特尔 x86 的 Android* 游戏应用? 此处的样本可为您提供帮助!
- 与roc的区别_2020斯柯达柯珞克Karoq对比大众T-ROC,你会选哪个?
- 谷歌浏览器chrome安装Hackbar插件方式
- Android加密算法之AES加密和解密实现
- fgets和fgetl有什么区别
- ExcelToOracle:批量导入Excel文件到Oracle数据库的自动化工具
- oracle公共同义词查找,[Oracle]同义词(synonym)
- 最新版CATIA,让您快速创造完整高级机械项目
- IOS根据屏幕尺寸判断是否为iphone6plus尺寸
- 使用飞信SDK开发短信收发程序
- H1B政策大变,要集体涨工资了吗?
- 看完,如果你不分享,是我的失败!