位置: 编程技术 - 正文

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)

  • 即征即退进项税额怎么填写申报表
  • 电商行业会计核算的特点
  • 旅游公司的账务框架
  • 电子发票怎么开具
  • 海关进口发票可以退税吗
  • 减免的附加税怎么做会计分录
  • 居民企业核定征收企业所得税的情形有哪些
  • 货物已到发票未到怎么做账
  • 未收回质保金是否需要交纳增值税呢?
  • 提取备用金如何在退回公司
  • 办公楼贷款比例
  • 结转应交所得税属于利润分配吗
  • 结转已到期未兑付怎么办
  • 外派人员的一次工作总结
  • 虚开增值税专用发票罪判决书
  • 转售的物业
  • 国地税联合财务报表小规模企业需要报送的吗?
  • 汇算清缴所得税账务处理
  • 无偿转让股权需要交什么税
  • 未做账务处理
  • 清理缓存网页电脑
  • 销售费用营业费用的区别
  • osx无法安装怎么办
  • linux joe
  • 部分苹果iOS17功能延后推出
  • 内置管理员无法打开此应用
  • KB5004296无法安装,提示错误代码:0x800f0990的解决方法
  • 美丽的大中华
  • 废旧物资回收经营单位
  • php 反代
  • 销售材料账务处理
  • 前端基础知识总结
  • web前端三大主流框架vue
  • 2019年4月1日降低城镇职工什么单位缴费比例
  • wordpress jquery
  • 股东借款转增资本公积要验资吗
  • js array.fill
  • 利息支出是利息费用减利息收入吗
  • 所得税的应税所得额
  • PostgreSQL新手入门教程
  • 外购无形资产的增值税计入成本吗
  • mysql主从复制实现原理
  • 增值税发票的抵扣期限
  • 一般纳税人无票收入怎么做账分录呢
  • 接受控股股东赠与的一项非货币性资产
  • 诉讼期间的利息法院支不支持
  • 公司使用pos机
  • 尚未使用或出租而待售的商品房需要交房产税吗
  • 在施工期间,承包商可能遇到不能预见
  • 存货的进口关税计入成本吗
  • 河道管理费是附加税吗
  • 可供分配的利润分配顺序
  • 服务行业进项税额加计扣除
  • 资产负债表上应交税费是什么意思
  • 报销如果没有发票怎么补救
  • 无形资产占公司比例
  • 将Reporting services的RDL文件拷贝到另外一台机器时报Data at the root level is invalid的解决方法
  • windows个性化定制包含
  • 华硕p8h61主板升级cpu
  • rhel-server
  • mac怎么快速上手
  • msoia.exe是什么程序
  • win10蓝屏故障
  • 开发者学校
  • vb win7
  • 彻底删除怎样恢复
  • win7怎么更改用户名和密码
  • css中dl
  • apk签名生成器
  • 菜鸟教程javaweb
  • python函数判断质数
  • jquery删除对象
  • jquerybind事件
  • android中fragment
  • 莅临指导和莅临交流的区别
  • 江苏税务ukey怎么申请
  • 133平房子公摊36.88
  • 欠税多少构成犯罪
  • 陕西的发票在哪里领取
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设