在命令行下用CMake交叉编译可在android中运行的so包
最近在写一个通过录屏生成gif的小应用,由于要用到NDK,所以开始去解这方面的知识,总的来讲也还算简单,不过对于之前从没接触过ndk的小白来说,一切都是需要摸索的,在一个不熟悉的领域有时候一个微小的问题也能让你摸个半天才能搞明白。我写博客的大部分原因就是为了记录下这些摸索的过程,以后要是忘记了还可以翻出来看,当然,要是还能帮到其他跟我一样的小白那就更好了。
下面进入正题,对于陌生的东西,当然是先google一翻了,随后发现Android Studio已经帮我们做了很多工作了,我们只需要做些简单的配置就可以做NDK开发了。大致有以下几步(具体的细节这里不讲):
- 1、下载好NDK、CMake
- 2、新建一个android工程
- 3、在build.gradle文件中配置c文件相关的路径以及CMakelists.txt路径等等
- 4、创建一个带native方法的java类
- 5、再编写一个与上述类对应的c文件
- 6、编写CMakeLists.txt文件
然后跑起来就差不多了,流程基本上就这样了,剩下的就是业务上的事了。
不过对于小白来说,照着教程做了一遍,工程跑起来了,预期结果也达到了,但还是一脸懵懂,不知道来龙去脉。用Android Studio的好处是高度智能化,开发者借助它可以快速地完成一些与业务无关的事,但也有一点我个人不喜欢,那就是不知道它到底做了些什么,像个黑盒子,只看到结果,看不到过程。所以几乎从一开始我就很想知道如果不依赖android stud