当前位置: 首页 > news >正文

使用jni接口完成android本地程序的运行--具体的操作

虽然上一篇文章《使用jni接口完成android本地程序的运行》讲述了一些理论上的知识,但是如何具体操作呢?要知道android的java虚拟机与标准的jvm是不一致的,因此肯定会遇到具体操作的问题。实际上,具体操作也不难,只要按照android文档的介绍按部操作即可:
1.在apps目录下拷贝一个最简单的例子,比如hello-jni作为模板,命名为你的应用的名称,然后删除其下的和hello-jni相关的内容;
2.将需要编译的源代码树拷贝到jni目录之下;
3.jni目录下的Android.mk文件内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CFLAGS := ...#拷贝所有原始Makefile中的CFLAGS/CPPFLAGS/等等一切命令行标志,包括预编译宏的定义
LOCAL_LDLIBS := ...#拷贝所有的链接时用到的动态库路径,动态库,静态库(-L,-l)
LOCAL_MODULE := ...#最终的供java调用的so名称,省略了lib和.so的
LOCAL_SRC_FILES := ...#所有参与编译的源代码文件
include $(BUILD_SHARED_LIBRARY)
4.在apps的上级目录执行:make APP=XXX 即可
5.注意,不能使用网上著名的打包好的droid-gcc工具来利用-fPIC -shared参数生成动态库,那样的动态库是很难直接使用的,必须做很多后续的工作才可以。其实,ndk的作用也就在于省略了很多所谓的后续工作,它简化了生成动态库的过程

相关文章:

  • java和c的本质--最重要的是启动
  • 脑子放放电
  • 关于ProjectServer定制化项目中心页面
  • c没有main函数/java没有main方法--语言运行的实质之实例
  • 深有体会内存对系统性能的重要性
  • 判断括号的匹配性的一种算法
  • 焦点图下面的索引小圆环
  • java虚拟机的启动实例--eclipse的方式
  • 本地方法中printf如何传给java--java系统级命名管道
  • OUYA游戏开发核心技术剖析大学霸内部资料
  • 解决windows 10 9926 中vmware安装的虚拟机无法桥接上网的问题
  • 字符设备驱动程序
  • html中#include file的使用方法
  • 天龙客户端的ResourceManager
  • 我想改了我的音箱
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2017-09-12 前端日报
  • Codepen 每日精选(2018-3-25)
  • JavaScript HTML DOM
  • Java应用性能调优
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • k个最大的数及变种小结
  • Next.js之基础概念(二)
  • PAT A1050
  • select2 取值 遍历 设置默认值
  • Spark RDD学习: aggregate函数
  • 百度小程序遇到的问题
  • 从重复到重用
  • 对超线程几个不同角度的解释
  • 学习ES6 变量的解构赋值
  • 用Python写一份独特的元宵节祝福
  • 智能合约开发环境搭建及Hello World合约
  • 走向全栈之MongoDB的使用
  • PostgreSQL之连接数修改
  • ​configparser --- 配置文件解析器​
  • ​学习一下,什么是预包装食品?​
  • #define用法
  • (6)添加vue-cookie
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (编译到47%失败)to be deleted
  • (七)c52学习之旅-中断
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .bat批处理出现中文乱码的情况
  • .Family_物联网
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET的数据绑定
  • ?
  • @Autowired和@Resource的区别
  • [1] 平面(Plane)图形的生成算法
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [BZOJ 4034][HAOI2015]T2 [树链剖分]