前面一篇我们接触了CMake,这一篇写写关于ndk-build的使用过程。刚刚用到,想到哪儿写哪儿。

环境背景

Android开发IDE版本:AndroidStudio 2.2以上版本(目前已经升级到2.2.3)

计算机环境:Window 64位系统

Demo工程的创建与设置

1.新建一个工程,并在app/src/main路径下新建jni文件夹。

2.在java代码中,新建NdkBuildTest类(包含native方法),并用javah命令生成头文件。

这里需要注意几点:

(1)javah是JDK中的程序,所以需要将JDK的bin路径添加到计算机的环境变量path中,才能在terminal中使用这个命令。

(2)javah命令中,-d指定创建头文件的目标路径,-classpath指定类的路径,由于当前路径是main,所以指定其中的java即可。

效果如下:

3.新建C文件,实现native方法

4.在jni路径下新建Android.mk文件

5.在Module(app)的build.gradle中进行ndk-build配置

这里主要配置两点:

(1)在defaultConfig节点中,添加ndk,在这里作一个abi的过滤,(默认的abi好像是MIPS)

(2)在android节点中,添加externalNativeBuild节点,在里面配置ndkBuild的makefile路径。(用Cmake的话,也是在这里进行配置)

6.配置完成后,同步工程,在C文件中进行编程,就可以引入相应的头文件,并会有相应的代码提示。

注意:一般同步工程后,编辑器就可以找到相应的头文件,就不会标红报错。

当然,即使标红报错,提示找不到头文件,只要编译时能够Build Success,工程也是能够正常运行的。

其他

1.Google Developers中国网站

就在昨天,Google Developers中国网站开通了,喜大普奔~~23333~~

其微信公众号是谷歌开发者

2.关于Android.mk

关于Android.mk的编写,AndroidStudio上好像也没法自动生成,一直都是手动Coding。

昨天刚刚找到一个关于Android.mk的网站,先作记录,改天再研读一下。

这里写几点这段时间用到的经验吧:

(1)如果有多个文件夹,需要用一个Android.mk文件include所有子文件夹下面的Android.mk文件:

这个文件就是配置在build.gradle中的文件。

(2)如果在工程中需要链接一个非系统的so库(Android系统中找不到的库),则在Android.mk中,先对该库进行预编译,然后再在当前需要生成的module中链接该库:

这样,在生成的APK中,就可以看到libReady.so 和当前生成的libCurrent.so都被打包在libs路径中了。

转自:http://www.cnblogs.com/tt2015-sz/p/6148723.html

NDK笔记(二)-在Android Studio中使用ndk-build(转)的更多相关文章

  1. 在Android studio中进行NDK开发

     在Android studio中进行NDK开发  分类: Android平台 软硬件环境 ubuntu kylin 14.04 红米note增强版 Android studio 0.8.6 ndk ...

  2. 如何在Android Studio中指定NDK位置?

    如何在Android Studio中指定NDK位置? 问题描述 NDK已经手工下载解包在本地: D:\Portable\android-ndk-r13b 每次创建支持C++项目时,都提示NDK没配置, ...

  3. Android Studio 中关于NDK编译及jni header生成的问题

    之前由于工作原因使用grails这个基于groovy的框架做项目,对groovy感觉很好. 基于groovy的gradle构建系统对我而言自然也是好的没得说. Android Studio 正式版出来 ...

  4. Android(java)学习笔记126:Android Studio中build.gradle简介

    1.首先我们直接上代码介绍: // Top-level build file where you can add configuration options common to all sub-pro ...

  5. Android(java)学习笔记66:Android Studio中build.gradle简介

    1.首先我们直接上代码介绍: // Top-level build file where you can add configuration options common to all sub-pro ...

  6. Android studio中2种build.gradle文件介绍

    根目录下的build.gradle通常不需要修改这个文件中的内容,除非需要添加一些全局的项目构建配置 buildscript { repositories { google() //声明代码托管仓库G ...

  7. 【Android Studio安装部署系列】二十四、Android studio中Gradle插件版本和Gradle版本关系

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 在从Android Studio3.0.0版本升级到Android Studio3.0.1版本的时候,出现了一个问题,需要升级Gra ...

  8. Android编程权威指南笔记3:Android Fragment讲解与Android Studio中的依赖关系,如何添加依赖关系

    Android Fragment 当我在学习时,了解了Fragment词汇 Fragment是一种控制器对象,我就把所了解的简单说一下.activity可以派fragment完成一些任务,就是管理用户 ...

  9. Android studio 中引用jar的其实是Maven?(二)

    上一篇:Android studio 中引用jar的其实是Maven?(一) 搭建maven仓库: 去了解一个新的事物的时候,最好的方式就是去使用它.例如去了解一座城市的时候,最好的方式就是乘坐公共交 ...

  10. 在android studio中集成javah, ndk-build进行JNI开发

    最近在搞一个android上控制LED灯闪烁的功能,用到了串口编程,搜索了一下,发现Google发布了一个demo,android-serialport-api.有现成的代码和APK,要想自己改JNI ...

随机推荐

  1. 查看java进程内存简单示例

    分析工具 1.jps 显示指定系统内的所有JVM进程 2.jstat 收集JVM各方面的运行数据 3.jinfo  显示JVM配置信息 4.jmap  堆快照 5.jhat  分析headdump文件 ...

  2. numpy 数组中添加新元素

    import numpy as npnew_array = np.empty(shape=[0, 3]) # 3列n行for i in range(10): x = i+1 y = i+2 z = i ...

  3. java--字符串拼接比较

    /** * 字符串拼接 */ public class StringAddDemo { public static void main(String[] args){ testStringAdd(); ...

  4. Qt + VS【无法打开xxx文件】

    在工程中右键点击属性-配置属性-VC++目录-包含目录-选择自己安装的qt路径下的头文件包含进去即可,烦人的下杠红线也随之消失.

  5. Vue项目中导入excel文件读取成js数组

    1. 安装组件 cnpm install xlsx --save 2. 代码 <template> <span> <input class="input-fil ...

  6. Spring data jpa 依赖配置

    <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> &l ...

  7. PHP curl_multi_select函数

    curl_multi_select — 等待所有cURL批处理中的活动连接 说明 int curl_multi_select ( resource $mh [, float $timeout = 1. ...

  8. 大碗宽面Beta阶段第十一周会议记录

    本周二晚上我们在宿舍楼的大厅进行了本周的小组会议,虽然天气很冷,但大家都还是如数到场,积极参加小组会议.对于上周的任务大家都努力完成,在前端方面,大家完善了主页面和一些分页面,主要有导航栏界面的完成. ...

  9. delphi 判断WIN8 , WIN8.1 , WIN10 系统版本

    今天测试了WIN8, WIN8.1, WIN10 系统下GetVersionEx 函数,居然取出来的版本都是6.2 . 于是网上查找各种获取内核版本号的方法, 终于找到几种有用的方法, 记录下来以作备 ...

  10. 网站运行一段时间后就无法访问,重启Tomcat才能恢复

    网站运行一段时间后就无法访问,重启Tomcat才能恢复出现这种情况,很可能是以下几种情况:1.超过数据库连接池上限2.并发数达到上限3.内存溢出具体还是需要通过打印的日志进行具体分析.解决方法1.如果 ...