Android Studio导入so文件到项目中的实例详解
1、采用最简单直接的方式导入s0文件:在app下新建jniLibs/armeabi目录,并将指定so文件拷贝到这一目录。
2、一般来说其他第三方的开放平台的so文件都是已经把对应的本地Java接口类一起封装到so或者其他库文件里了,我们不需要自己去定义自己的本地接口类,假如说第三方只是提供了so文件,那么就需要我们去定义jni接口类这个类并不能是随意的,必须是和so文件里定义的方法名的一一对应,即包名和类名必须一致,否则会发生编译通过加载的时候就出错。在本次导入so文件时,未能找到对应Java类,故需自行定义。
2.1、首先利用nu -D xxx.so查看so文件中java类与函数的定义方式:
2.2、按照对应包的路径,在java目录下新建SoundAuthentication类(com.aw.SoundAuthentication)。
2.3、在新建类中加载指定so包与对应函数(函数声明时需要按照so提供者声明的函数的定义,故若不知时,最好先咨询so文件提供者函数的定义方式是啥,否则无法生效)。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
详解Android studio中正确引入so文件的方法
相信很多朋友在使用Android studio开发中,遇到过如何引入第三方so文件的问题,然而第三方官方仅仅给出了ADT环境下的集成方式. Android studio中默认使用的是gradle编译方式,与ADT编辑方式不一样,那么so文件应当如何引入呢? 其实很简单.这里以集成JPUSH为例,看一下so文件如何引入到编译环境,最终到JNI直接可以调用该so文件. 首先,在我们的Module的根目录中建立libs目录,将jpush集成SDK中的so文件分别拷入,截图如下: 然后就是编写我们的bu
-
Android Studio导入so文件到项目中的实例详解
1.采用最简单直接的方式导入s0文件:在app下新建jniLibs/armeabi目录,并将指定so文件拷贝到这一目录. 2.一般来说其他第三方的开放平台的so文件都是已经把对应的本地Java接口类一起封装到so或者其他库文件里了,我们不需要自己去定义自己的本地接口类,假如说第三方只是提供了so文件,那么就需要我们去定义jni接口类这个类并不能是随意的,必须是和so文件里定义的方法名的一一对应,即包名和类名必须一致,否则会发生编译通过加载的时候就出错.在本次导入so文件时,未能找到对应Java类
-
android studio按钮监听的5种方法实例详解
1.匿名内部类 public class MainActivity extends AppCompatActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn1 = fin
-
Android持久化技术之文件的读取与写入实例详解
本文实例分析了Android持久化技术之文件的读取与写入操作.分享给大家供大家参考,具体如下: 1.文件存储 (1)在Android的持久化技术中,文件存储是最基本的一种数据存储方式. (2)对存储的内容部做任何处理,原样存储到文件中. (3)Context提供了文件写入与读取的方法,openFileOutput:写入到文件:openFileInput:从文件中读取. (4)文件写入时模式有多种:比如是覆盖写入还是追加写入等. (5)写入的文件默认存储在/data/data/报名/files/目
-
Android Studio真机无线连接USB设备调试运行详解流程
前言 一般情况下,多数移动开发者使用的是数据线连接电脑,进行各种移动设备的调试,更有胜者,非常迷恋模拟器,模拟器它好不好,答案是好,因为直接运行在电脑上,直接操作,调试,确实方便.尤其是ios开发小伙伴,多数app通过模拟器基本上都能开发好,再用真机验证就可以了.但对于android,就比较恼火了,模拟器一直不好用,卡.慢都是影响撸码的心情.另外android设备随便弄个便宜的都是容易的,基本上是真机开发.那么非一般情况呢,例如我们使用了NDK也就是C层的代码时,由于架构匹配方面,需要用真机开发
-
MVVM和MVVMLight框架介绍及在项目中的使用详解
一.MVVM 和 MVVMLight介绍 MVVM是Model-View-ViewModel的简写.类似于目前比较流行的MVC.MVP设计模式,主要目的是为了分离视图(View)和模型(Model)的耦合. 它是一种极度优秀的设计模式,但并非框架级别的东西,由MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构. 立足于原有MVP框架并且把WPF的新特性糅合进去,以应对PC端开发日益复杂的需求变化. 结构如图所示: 相对于之前把逻辑结构写在Co
-
bing Map 在vue项目中的使用详解
写在最前面 拥有全球数据库国内好像就只有百度地图有,高德.搜狗.腾讯的都不行,但是由于百度地图的数据更新不及时,所以在做相关项目要用到国外数据的时候,最好还是推荐使用bingMap. bing Map 使用教程(基础) 参考文档:bing Map 官方教程 bing Map 初始化 引入bing map资源 <script type='text/javascript' src='http://www.bing.com/api/maps/mapcontrol?callback=GetMap&k
-
npm脚本库组织在项目中的地位详解
目录 一.脚本的地位 二.“脚本调度”的难题 三.如此简单? 四.此剑名曰: npm-run-all 4.1 安装 4.2 第一个命令: npm-run-all 4.3 第二个命令:npm-s 4.4 第三个命令:npm-p 4.5 通配符 4.6 更多实用能力 一.脚本的地位 脚本是 项目真正的入口 . 无论你是刚刚 clone 完公司的项目,抑或是你准备在开源社区做一点微小的贡献:你需要做的第一件事,永远是: 打开 package.json,看看 scripts 里都有哪些脚本. 有些脚本负
-
FasfDFS整合Java实现文件上传下载功能实例详解
在上篇文章给大家介绍了FastDFS安装和配置整合Nginx-1.13.3的方法,大家可以点击查看下. 今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</arti
-
Android 使用PopupWindow实现弹出更多的菜单实例详解
最近想要做一个弹出更多的菜单,而原生的弹出菜单却不是我们想要的效果,所以必然要自定义菜单咯.本人也是借鉴网上的资料进行封装的,感觉还蛮不错的. 原生的菜单如下图: 自定义之后的效果图: 是不是看到这里之后,对比可知,原生的效果不太理想,所以还是再自己定义吧! 1.PopupWindow可以说是一个浮动在Activity之上的容器,通常用来显示自定义的视图.弹出菜单的封装PopMenuMore /** * 对弹出菜单的封装. * http://blog.csdn.net/maosidiaoxian
-
Android自定义进度条的圆角横向进度条实例详解
1.本文将向你介绍自定义进度条的写法,比较简单,但还是有些知识点是需要注意的: invalidate()方法 RectF方法的应用 onMeasure方法的应用 2.原理 画3层圆角矩形,底层为黑色,第二层为灰色,最上一层为进度条颜色,示例图如下: 3.效果图 实现圆角进度条还有很多其他方法,比如在Progress控件里填充圆角图片,通过拉伸图片来达到预想的效果,虽然听起来很简单,但实现起来还是有些麻烦的. 4.解说方法 (1)invalidate()方法 invalidate()是用来刷新
随机推荐
- Android中TextView实现垂直滚动和上下滚动效果
- 浅谈.net平台下深拷贝和浅拷贝
- Android自定义View过程解析
- js实现双击单元格变成文本输入框效果代码
- pjblog中的UBBCode.js
- JavaScript预解析及相关技巧分析
- js实现二级菜单渐隐显示
- Python的Flask框架中的Jinja2模板引擎学习教程
- 局域网远程开机软件制作代码分享
- 详解SSH如何配置key免密码登录
- js 绑定带参数的事件以及手动触发事件
- android弹出activity设置大小的方法
- Android中TextView自动识别url且实现点击跳转
- discuz Passport 通行证 整合笔记
- 详细解析C语言中的开方实现
- 中文域名蓄势待发 注册常识知多少
- 下载吧为您提供100M免费ASP空间服务
- 浅谈maven的jar包和war包区别 以及打包方法
- Python数据拟合与广义线性回归算法学习
- 基于vue2.0实现仿百度前端分页效果附实现代码