虽然上一篇文章《使用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的作用也就在于省略了很多所谓的后续工作,它简化了生成动态库的过程

更多相关文章

  1. mac 系统下android源码下载以及使用(总结)
  2. 想抢先体验Android操作系统的魅力吗?那就使用Android(安卓)LiveCD
  3. Android开发实践:在任意目录执行NDK编译
  4. PC通过WIFI连接Android设备,使用ADB
  5. 想抢先体验Android操作系统的魅力吗?那就使用Android(安卓)LiveCD
  6. [Android]使用ActivityGroup来切换Activity和Layout
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. 容器服务 kubernetes 系统组件介绍
  2. CentOS环境下如何快速安装软件?
  3. AliOS Things 开发:让你的开发板支持 AliO
  4. 三步解决 Maven 无法下载依赖包的问题
  5. 前端 Docker 镜像体积优化
  6. 搭建 npm 私有镜像仓库
  7. 为 Centos7 配置 .htaccess 开启 URL 伪
  8. 盘点|2021年最受欢迎Linux桌面操作系统前
  9. 为 ECS Ubuntu 18.04 实例配置辅助私网 I
  10. MongoDB 4.2 内核解析 - Change Stream