位置: 编程技术 - 正文

androidのNDK生成so文件(生成ssh)

编辑:rootadmin

推荐整理分享androidのNDK生成so文件(生成ssh),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:生成ssh,hⅰm怎么生成,hⅰm怎么生成,生成.a,生成ssh,hⅰm怎么生成,hⅰm怎么生成,hⅰm怎么生成,内容如对您有帮助,希望把文章链接给更多的朋友!

我们在安装环境的时候安装了NDK,可以在eclipse下直接生成so文件。

NDK的压缩包里面自带了一些sample工程,NDK的文件直接解压到某个目录下即可。

第一次生成so文件的时候,我们先使用NDK的sample下的hello-jni的例子。

第一次生成so文件的时候,我们先使用NDK的sample下的hello-jni的例子。

1、启动eclipse,通过Create project from existing source,选择hello-jni的目录,按默认选项创建工程即可;

2、观察hello-jni的工程目录结构,发现根目录下多了一个名叫jni的文件夹,该文件夹下面有两个文件,Android.mk和hello-jni.c。

Android.mk是用来生成so文件的配置文件,我们来看看里面是什么:

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)

LOCAL_MODULE := hello-jniLOCAL_SRC_FILES := hello-jni.c

include $(BUILD_SHARED_LIBRARY)

include $(BUILD_SHARED_LIBRARY)表示会生成一个动态链接库,即so文件,生成的库文件名称为lib*.so

LOCAL_MODULE := hello-jni表示将要生成一个名称为libhello-jni.so的库文件

androidのNDK生成so文件(生成ssh)

LOCAL_SRC_FILES := hello-jni.c表示生成库文件的源文件是hello-jni.c

打开hello-jni.c文件,会看到里面有一个函数:

jstring Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz ){ return (*env)->NewStringUTF(env, "Hello from JNI !");}

这个函数从根据什么原则生成的呢?是根据src下的HelloJni.java文件中的函数 public native String stringFromJNI();生成的。命名规则为:

Java_(固定开头)com_example_hellojni(用"_"连接的包名)_HelloJni(类名)_stringFromJNI(函数名)

这个函数的生成可以使用javah的命令:用命令行方式进入工程目录的binclasses目录下,运行javah com.example.hellojni.HelloJni,就会把所有native的函数都按规则生成在一个名为HelloJni.h的头文件里。

3、新建并配置一个新的Builder

详情见上一篇 androidのEclipse中设置NDK编译设置

4、生成so文件

由于我们勾选了“During auto builds”,所以在工程有所改变的时候,so文件便会自动编译,正确生成以后就能在工程目录下发现多了两个文件夹,文件夹libsarmeabi目录下生成了一个叫libhello-jni.so的文件。至此,使用NDK生成so文件的工作就完成了。

5、so文件的调用

在HelloJni.java文件中有一段代码:

static { System.loadLibrary("hello-jni"); }

使用loadLibrary就可以加载该so文件了,加载的时候不需要写libhello-jni.so,只要写hello-jni就可以了。

android 学习交流群:

Android深入浅出系列之实例应用—如何在一个Activity里调用另外一个Activity? 在手机页面之间的跳转一文中我介绍了如何运用setContentView()方法切换布局文件Layout的方式进行手机页面间的跳转,这种适合更改背景,文字颜色,文字

Android四大组件之一:contentprovider & 三大存储方式之一:SQLite数据库存储 应用实例 android中的数据持久化技术(数据存储技术)存在一定的制约,包括文件存储、SharedPreferences存储以及数据库(SQLite)存储,该三类存储方式只能在当前

开发日记(3)转发:比较靠谱的图片压缩 第一:我们先看下质量压缩方法:Java代码privateBitmapcompressImage(Bitmapimage){ByteArrayOutputStreambaos=newByteArrayOutputStream();image.compress(Bitmap.CompressFormat.JPEG,,baos);

标签: 生成ssh

本文链接地址:https://www.jiuchutong.com/biancheng/382283.html 转载请保留说明!

上一篇:Android实现数据存储技术(android的数据储存方式)

下一篇:Android深入浅出系列之实例应用—如何在一个Activity里调用另外一个Activity?(深入浅出css)

  • 税务师入会与不入会冲突
  • 社保局的员工是公务员吗
  • 普通折叠发票代码是几位数
  • 免费给客户提供服务怎么做账
  • 退回的税款如何做账
  • 非公益捐赠税率
  • 电梯安装费支付方式
  • 付了电费当月没有收到发票
  • 建安行业外地预缴工会经费
  • 计提的利息汇算清缴前没发放,需要交企业所得税吗
  • 慈善机构捐赠
  • 递延收益可以是负数吗
  • 没有资质的建筑公司怎样接工程
  • 给政府开发票如何处理?
  • 税盘没有抄报各月,有罚款吗
  • 继承或赠与所得的房产
  • 企业股权设计咨询这个行业怎么样
  • 改扩建要计提折旧吗
  • 旧设备投资的账务处理
  • 建筑劳务公司开发票
  • 辅助生产费用怎么归集
  • 增值税发票确认时间
  • 进项票认证超了怎么处理
  • 借给其他企业的钱计入什么科目
  • 汇兑损益怎么入账
  • 1697509110
  • 计提小规模增值税的账务处理
  • 如何将旧版本软件卸载
  • php call方法
  • win11笔记本如何让电池充电到100%
  • 编制竣工决算的主要依据
  • 补提坏账准备为什么不调整应纳税
  • 净亏损会影响所有者权益吗
  • 完成认证后开具什么证明
  • 实用的开源软件
  • 软件行业的最后阶段是
  • php is_executable判断给定文件名是否可执行实例
  • 本期应纳税额减征额是什么意思
  • 免收印花税
  • 三代手续费企业所得税
  • python如何获取列表元素
  • day15-Servlet04
  • 会务费什么企业可以开
  • 房东减免后二房东不减房租
  • 购买种子能抵扣进项吗
  • 金税盘的服务费
  • 扶贫资金是如何发放的
  • 汇算清缴 房租
  • 应交税费期末余额在借方怎样处理
  • 教育培训机构的老师可以评职称吗
  • 装饰公司财务工作内容
  • 坏账确认无法收回
  • 兼营即征即退产品 增值税
  • 暂估销售收入账目
  • 小规模纳税人标准500万是含税吗
  • 小规模公司怎样添加员工
  • 应付账款不需要付情况说明
  • 资产减值损失结转到本年利润吗
  • 公对私 预付款 税
  • 重装机兵
  • mysql5.7.33安装配置教程
  • Windows7任务计划在什么位置?
  • 英雄联盟win8
  • vc运行程序
  • weather.exe - weather 进程是什么文件
  • win10系统宽带连接错误解决方法
  • win7电脑磁盘突然不见了怎么办
  • 关于node.js中的模块化规范
  • 猜猜这关怎么过攻略
  • cocos 3.x android下home键后,切回游戏时黑屏太久的问题
  • opengl颜色代码表
  • Android应用与开发
  • javascript中array数组对象的含义及常用方法
  • python中的迭代器
  • jQuery Ajax 全局调用封装实例代码详解
  • 如何查询契税是否逾期
  • 税务工商指的是什么
  • 水电费收税
  • 新旧动能转换是我们能否过坎的关键
  • 青岛网上申请个体工商户
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设