位置: 编程技术 - 正文

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)

  • 电动三轮车发票和合格证丢了怎么上牌照
  • 收到财政局拨款填到现金流量表哪一项
  • 出口的商品交消费税吗
  • 拍卖的商铺过户费怎么算
  • 项目所在地怎么填
  • 哪些费用可以进项抵扣
  • 增值税专用发票的税率是多少啊
  • 简易计税项目是所有发票都是普票吗
  • 个人开增值税普通发票税率
  • 印花税必须每个月零申报吗
  • 租赁费交税税率是多少
  • 企业所得税收入是什么意思
  • 哪些费用税务局可以抵扣
  • 不能抵扣的进项税额转出会计分录
  • 提示没有安装QQ怎么处理
  • 买卖投资证券基金怎么进行财税处理?
  • 土地增值税计算公式及举例
  • 签发空头支票的赔偿金
  • 不可抗力后果承担
  • 差额征税和差额计税
  • 房租摊销表怎么做
  • 评标费由谁支付
  • 公司做贷款
  • 查账征收的企业所得税什么时候开始汇算
  • 房屋维修费属于固定资产吗
  • 应付账款是贵公司欠还是欠贵公司
  • 外汇账户怎么做账
  • mac设置定时任务
  • 公积金托收怎么变更
  • 减值测试步骤
  • vue实现打印
  • 爬虫10054
  • 利润分配的会计分录怎么写
  • 个人所得税减免政策2023
  • 应收账款需要计提损失准备吗
  • 新一代状态管理工具 -- Pinia 上手指南
  • Video Transformer | TimeSformer 理解+ 代码实战
  • gridview功能
  • 财务费用为什么流向债权人
  • ajax自动带cookie
  • 财务报表季报应付职工薪酬为负数
  • java 访问者模式
  • 无法连接配置的sql服务器
  • 专项附加扣除哪种申报方式好
  • 发出商品的增值税
  • 行政事业单位工作时间
  • 一般纳税人简易征收的适用范围
  • 福利费入账需要发票吗
  • 土地转移是什么意思
  • 已抵扣的进项税额转出会计分录账务处理
  • 存货非正常损失进项税额转出分录
  • 坏账准备的计提分录
  • 高新技术产品收入归集依据
  • 转让无形资产使用权税率
  • 职工福利费如何计提
  • 总分包模式和总承包模式
  • 企业应该设置哪些部门
  • 32位的win7和64位的win7要选择哪个呢?它们有什么区别?
  • Fedora Core 5.0 安装教程,菜鸟图文版(图文界面)
  • win8如何激活
  • 晨枫U盘启动工具哪个版本好用
  • acer笔记本重装系统教程
  • windows使用cmd运行程序
  • macos的磁盘
  • ExtJS4 Grid改变单元格背景颜色及Column render学习
  • sublime text配置node.js调试(图文教程)
  • msoobe命令
  • div +css
  • 批处理常用命令总结
  • js按下键盘事件
  • python3利用smtplib通过qq邮箱发送邮件方法示例
  • shell 记录日志
  • node使用
  • javascript编写程序
  • js中的面向对象
  • jQuery实现的可编辑表格完整实例
  • 如何将文件夹导入idea
  • 云南税务总局官网
  • 广西南宁税务12366
  • 国考报四川的去哪考
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设