android.mk是在啥情况下生成的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android.mk是在啥情况下生成的相关的知识,希望对你有一定的参考价值。

当你需要使用JNI的时候,你需要创建一个native工程。android.mk就是一个makefile配置文件,帮你把C/C++的代码编译成动态库so的。

创建的方式有两种:

在工程根目录里手动创建一个目录叫jni,在里面新建一个Android.mk,然后创建c,cpp文件,把他们配置到Android.mk里。

右键工程,选择Android Tools->Add Native Support自动生成。



扩展资料:

创建Android库

Android 库在结构上与 Android 应用模块相同。可以提供构建应用所需的一切内容,包括源代码、资源文件和 Android 清单。

不过,Android 库将编译到可以用作 Android 应用模块依赖项的 Android 归档 (AAR:Android Archive Resource) 文件,而不是在设备上运行的 APK。

与 JAR 文件不同,AAR 文件可以包含 Android 资源和一个清单文件,这样,除了 Java 类与方法外,还可以捆绑布局和可绘制对象等共享资源。

库模块在以下情况下非常有用:

构建使用某些相同组件(例如 Activity、服务或 UI 布局)的多个应用。

构建存在多个 APK 变体(例如免费版本和付费版本)的应用并且需要在两种版本中使用相同的核心组件。

参考资料来源:百度百科-Android

参考技术A

当你需要使用JNI的时候,你需要创建一个native工程。Android.mk就是一个makefile配置文件,帮你把C/C++的代码编译成动态库so的。创建的方式有两种:

    在工程根目录里手动创建一个目录叫jni,在里面新建一个Android.mk,然后创建c,cpp文件,把他们配置到Android.mk里

    右键工程,选择Android Tools->Add Native Support自动生成:

本回答被提问者和网友采纳

Android.mk转Android.bp

参考技术A 背景:

不少APP在P上是Android.mk,在10上变成Android.bp,我们在MK的时候需要对其进行转换。

转换方法:

利用Android自带的工具进行转换

使用自带工具前提:

1.Source full build 过(最好)

2.在out/soong/host/linux-x86/bin/目录下存在androidmk文件。

  如果不存在androidmk文件,使用m -j blueprint_tools命令生成

具体转换方法:

1.cd out/soong/host/linux-x86/bin/

2.执行命令:androidmk <android.mk文件> > <android.bp文件>

  例子:

  1.cd out/soong/host/linux-x86/bin/

  2.androidmk ./mk2bp/Android.mk > ./mk2bp/Android.bp

  例子中step2说明:

  由于out/soong/host/linux-x86/bin/路径下文件太多,不好识别转换后的文件,所以自己建了个mk2bp文件夹,放要转换的Android.mk。方便查看而已

  至于放Android.mk放哪,随便。

如果遇到内容复杂一点的Android.mk,可能工具转换会出错。待进一步研究。

以上是关于android.mk是在啥情况下生成的的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse、Android NDK、android.mk - 访问被拒绝

Android.mk解析

Android.mk这个文件在哪里呢

NDK开发中问题

Android.mk转Android.bp

Android:JNI与NDKNDK构建的脚本文件配置