Android Studio手动配置Makefile、CMake

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio手动配置Makefile、CMake相关的知识,希望对你有一定的参考价值。

参考技术A 在Ubutu上编译出来的.so文件,怎么添加到android项目中去使用呢?目前:可以通过
Makefile方式和CMake方式引入预编译静动态库(静态库.a 动态库.so)到项目中去使用。就目前而言CMake是Goole推荐使用方式,但是加入接手一个老的NDK项目是MakeFile方式,看不懂就GePi了,所以这里我们还是介绍一下MakeFile方式将静动态库加入到AS中,完成NDK项目的开发。废话不多说,直接撸步骤了:

1、在src/main目录下创建一个ndkBuild文件夹
2、在此文件中创建一个Android.mk文件

3、在此文件中创建一个test.c的源文件

4、将编译好的的.so库复制到src/main目录下
如图所示目录结构:

1、编辑Android.mk文件

2、编辑grade(app)文件

3、编辑test.c文件

4、使用编译好的.so库里面的函数

本结果运行在Android 5.1 系统上

再次运行在Android 8.0系统上

看以清楚知道,其实我们的APK包里面就没有libMainTest.so库,所以APP在8.0上会出现奔溃的现象。so...

1、在src/main目录下创建一个cmake文件夹
include:里面包含需要一些头文件
cmakeTest.c:需要编译的源文件
2、在app目录下创建一个文件:CmakeLists.txt

3、编辑grade(app)

4、编辑cmakeTest.c文件

4、引用编译好的libcmakeTest.so

Android 8.0.0系统:

Android 5.1.1系统:

Android Studio JNI编程


操作步骤:

配置好NDK开发环境

  1. 指明ndk路径

    可以在local.properties中手动输入ndk路径,或者用Studio菜单栏File--Project Structure--Android NDK Location中点击选中ndk路径。

  2. 修改build.gradle配置

    工程中共有两个build.gradle配置文件,我们要修改的是在<Project>\app\build.gradle这个文件(就是Module:app)。为其在defaultConfig分支中增加上

    ndk {  

        moduleName "JNITest"  //生成的so名字为libJNITest.so

        ldLibs "log""z""m"  

        abiFilters "armeabi""armeabi-v7a""x86"  

    }  


编写JNI程序步骤:

1.首先编写一个上层.java文件,用来调用底层JNI函数。在该文件内声明要调用的本地方法。

public class JNITest

{

static

{

System.loadLibrary("JNITest");

}

public static String getTextFromJNI()

{

return getText();

}

private native static String getText();

}

2.编写好上层JAVA程序后,点击Android Studio菜单栏Build--Make Project,生成JNITest.class文件。

3.dos进入<Project>\app\build\intermediates\classes\debug中,执行javah com.jni.JNITest,成功后便会看到生成一个.h文件。

4.将该.h头文件拷贝到jni目录中(如不存在jni目录,则在Studio中的main目录下右键生成一个jni目录)。

5.在jni目录下新建一个.c文件,进行c程序编写。


本文出自 “whatever957” 博客,请务必保留此出处http://whatever957.blog.51cto.com/6835003/1775236

以上是关于Android Studio手动配置Makefile、CMake的主要内容,如果未能解决你的问题,请参考以下文章

android studio相关配置

如何手动升级android studio?

Android Studio JNI编程

在android studio中配置运行时签名

android studio怎么恢复界面默认设置

android studio中配置X5 webview时的一个坑