虽然上一篇文章《使用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. Android(安卓)Studio 使用jni
  2. Android(安卓)Training - 支持不同的设备
  3. Android(安卓)Design(设计)\Get Started(从这里开始)\Creative Vis
  4. 使用jni接口完成android本地程序的运行--具体的操作
  5. Android中build target,minSdkVersion,targetSdkVersion,maxSdkVers
  6. Android使用Sensor感应器实现线程中刷新UI创建android测力计的功
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. Windows 8.1下MySQL5.7 忘记root 密码的
  2. 阿里云centos7使用yum安装mysql的正确姿
  3. 阿里云Centos 7.5安装Mysql的教程
  4. Windows下MySQL5.7.18安装教程
  5. MYSQL开发性能研究之批量插入数据的优化
  6. Django+mysql配置与简单操作数据库实例代
  7. 如何安装绿色版MySQL Community Server 5
  8. Linux下MySQL 5.6.27 安装教程
  9. CentOS 7下使用rpm包安装mysql 5.7.18
  10. CentOS系统中MySQL5.1升级至5.5.36