位置: 编程技术 - 正文

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)

  • 土地增值税纳税义务人
  • 属于原始凭证的有哪些
  • 原值和净值在报表怎么找
  • 长期待摊费用摊销计入什么会计科目
  • 资产负债表中的货币资金怎么算
  • 税控服务费属于什么费用
  • 生产企业出售空调设备
  • 应收账款和长期应收款区别
  • 银行回单少了一笔
  • 进项税和销项税怎么区分
  • 清包工开票详细名称
  • 企业收付款流程图
  • 发生的费用可以直接计入主营业务成本吗
  • 如何理解增值税的三种类型?它们的区别是什么?
  • 营改增后的增值税税率
  • 什么是会计凭证?会计凭证有哪些作用?
  • 在win10系统中,如何限制孩子玩原神游戏
  • windows11怎么显示桌面图标
  • 公司买的理财产品怎么做账
  • 为什么盈余公积补亏不会影响留存收益
  • 购入办公楼按多少折算
  • linux的ip查看
  • 纯净版xp系统打不开了
  • schupd.exe - schupd是什么进程 有什么用
  • 新车车祸报废
  • php 错误和异常处理
  • 结算劳务外包的工作内容
  • 融资租入的设备为什么属于资产
  • 福克兰群岛属于哪国
  • vue3+element-plus Dialog对话框的使用 与 setup 写法的使用
  • 营业外收入不计入所有者权益吗
  • 支付的招标代理费计入成本还是费用
  • 工装进福利费还是劳保费
  • 损益类科目借贷方向是什么
  • 活动策划印花税选哪个税种
  • 微信小程序云开发控制台
  • php 银行卡支付
  • Blog2N如何计算
  • 企业收到发票后怎么入账
  • 一般纳税人必须有办公地点吗
  • 结转成本类账户及税金及附加到本年利润
  • 固定资产减少当月计提吗
  • 应付账款主要账户有哪些
  • 公司交的养老保险的钱可以取出来吗
  • 用于企业职工福利有哪些
  • 只有销项没有进项怎么交税
  • 物业公司预收的物业费怎么做账
  • 收到车辆购置税发票怎么做账
  • 包工包料怎么开13个点发票
  • 应交土地增值税的三种情况
  • 补交以前年度的房产税会计分录
  • 企业所得税税率多少
  • 利用sql函数生成数据
  • mssql查询语句
  • windows8触摸屏手势设置
  • 微软the initiative
  • win8系统怎么设置桌面图标
  • win7应用程序无法正常启动
  • centos wget
  • win10wifi打开后自动关闭
  • 如何配置sendmail
  • win10 edge浏览器崩溃
  • cocos编程
  • web在线编辑excel
  • css旋转木马
  • 一道关于医用口罩的数学题初二
  • PreferenceActivity、PreferenceFragment使用
  • a标签跳转本地html页面
  • js中的require函数
  • 正弦的波长
  • javascript基础类型
  • android网络访问异常提示有哪些
  • Android自定义系统服务框架
  • 15个值得开发人是谁
  • 开票怎么查发票总额
  • 江西省医保卡缴费
  • 亚马逊网上商城
  • 税务注销证明样本
  • 安全生产管理局和应急局
  • 西安代驾平台有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设