Android ndk开发 -利用ndk-build android


#### 2.在Terminal下输入命令自动生成头文件


(需确保安装jdk)


* 进入java目录:cd app/src/main/java  
 ![](https://img-blog.csdnimg.cn/d427f27aa64e4489aaa60e5365d3370d.png#pic_center)
* 生成头文件 :javah -jni -encoding utf-8 包名+类名  
 ![](https://img-blog.csdnimg.cn/0463a85eaf824d81920248f60d1badd6.png#pic_center)  
 结果:  
 ![](https://img-blog.csdnimg.cn/6a465a9ac6b347c9a51e83d63cad2563.png#pic_center)  
 生成的头文件:  
 ![](https://img-blog.csdnimg.cn/132b8d0a525b4489a75d7657a87b80f7.png#pic_center)


#### 3.在app目录下创建一个jni文件,将生成的.h文件复制到jni目录下


* 然后创建一个.c文件  
 ![](https://img-blog.csdnimg.cn/b7d9ad9e4cff443581af19792ced2fbe.png)


#### 4.创建并编辑Android.mk,Application.mk


* Android.mk



#Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := test //库名
LOCAL_SRC_FILES :=demo.c //用到的.c文件
include $(BUILD_SHARED_LIBRARY)


* Application.mk



APP_PLATFORM := android-16
APP_ABI := all


#### 5.在 Terminal 配合app目录下输入 ndk-build 进行编译


![](https://img-blog.csdnimg.cn/519f42e09dee4e34b9033206dcaa78f7.png)  
 生成图:  
 ![](https://img-blog.csdnimg.cn/895a4bb3135c48bca97a3c8dcc2578fe.png#pic_center)



> 
> 题外话:春天的南京真的很美,各式各样的花相继开放~
> 
> 
> 


## 写在最后


在技术领域内,没有任何一门课程可以让你学完后一劳永逸,再好的课程也只能是“师傅领进门,修行靠个人”。“学无止境”这句话,在任何技术领域,都不只是良好的习惯,更是程序员和工程师们不被时代淘汰、获得更好机会和发展的必要前提。


**如果你觉得自己学习效率低,缺乏正确的指导,可以扫码,加入我们资源丰富,学习氛围浓厚的技术圈一起学习交流吧!**


![](https://img-blog.csdnimg.cn/28c5f8f461de4b06806e483c4d81611b.png)  
 加入我们吧!群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。




  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这些都是 Android NDK 内部的 `Android.mk` 文件。其中,`./android-ndk-r25c/sources/android/native_app_glue/Android.mk` 是用于编译 Native Activity 示例应用程序的 `Android.mk` 文件;`./android-ndk-r25c/sources/android/support/Android.mk` 是包含一些 Android 支持库的 `Android.mk` 文件;`./android-ndk-r25c/sources/android/ndk_helper/Android.mk` 是包含一些辅助函数和类的 `Android.mk` 文件;`./android-ndk-r25c/sources/android/cpufeatures/Android.mk` 是用于编译 `cpufeatures` 库的 `Android.mk` 文件,该库提供了一些 CPU 相关的信息和功能;`./android-ndk-r25c/sources/cxx-stl/llvm-libc++abi/Android.mk` 和 `./android-ndk-r25c/sources/cxx-stl/llvm-libc++/Android.mk` 是用于编译 C++ STL 库的 `Android.mk` 文件,分别对应 libc++abi 和 libc++ 两个 STL 库;`./android-ndk-r25c/sources/third_party/googletest/Android.mk` 是用于编译 Google Test 测试框架的 `Android.mk` 文件;`./android-ndk-r25c/sources/third_party/shaderc/Android.mk` 是用于编译 Shaderc 编译器的 `Android.mk` 文件,该编译器可以将 GLSL 代码编译成 SPIR-V 代码;`./android-ndk-r25c/sources/third_party/shaderc/libshaderc/Android.mk` 是用于编译 Shaderc 库的 `Android.mk` 文件;`./android-ndk-r25c/sources/third_party/shaderc/libshaderc_util/Android.mk` 是用于编译 Shaderc Util 库的 `Android.mk` 文件,该库提供了一些辅助函数和类;`./android-ndk-r25c/sources/third_party/shaderc/third_party/Android.mk` 是用于编译 Shaderc 编译器依赖的第三方库的 `Android.mk` 文件,包括 glslang 和 spirv-tools 两个库;`./android-ndk-r25c/sources/third_party/shaderc/third_party/glslang/Android.mk` 是用于编译 glslang 库的 `Android.mk` 文件;`./android-ndk-r25c/sources/third_party/shaderc/third_party/spirv-tools/Android.mk` 是用于编译 spirv-tools 库的 `Android.mk` 文件;`./android-ndk-r25c/sources/third_party/vulkan/src/build-android/jni/Android.mk` 是用于编译 Vulkan 库的 `Android.mk` 文件。 如果您要在 Android NDK 中编写自己的 `Android.mk` 文件,可以参考这些示例文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值