源码中编译.so文件

越来越强烈的感觉到学到的知识最好要通过笔记的形式记录下来,要不然时间久了就会忘掉,再用到的时候还要重新学习,实为浪费。之前自己学到的一些知识没有立刻将记录下来,现在想想真是浪费了。痛下决心,从此,好好写博客,记录学习轨迹。刚好今天公司android技术老大新教了一项新技能,记录一下,以防遗忘,本人新手,欢迎批评指正。

    项目中有时需要写一些c++的代码,编成.so的文件供java程序调用,而c++文件中用到android源码中的一些c++的代码,因此需要在源码环境中编译。

  首先必须要用android源码,我的源码位于/home/hxl/work/android/android4.4.2/mydroid目录下,当然是linux系统了。linux命令行中进入该目录下,

运行命令source build/envsetup.sh,该命令的意思是执行build目录下的envsetup.sh文件。(本人的build目录在myandroid目录下)

源码中编译.so文件_第1张图片

然后运行 choosecombo命令 会出来一系列让你选择版本的东西,直接回车好了,不知此步是否为必须,我尝试过未执行该命令依然能编译成功。

源码中编译.so文件_第2张图片


再然后将你的c++的相关文件包括mk文件和头文件放入源码中的任一目录,进入该目录

最后执行mm -B等一会,完成后就得到.so的文件了,就可以放在android项目中的libs文件夹下的armeabi文件夹了供java调用了。

注意,生成的.so文件 /home/hxl/work/android/android4.4.2/mydroid/out/target/product/generic/system/lib文件夹下面了。

相关链接:http://blog.csdn.net/luoshengyang/article/details/6566662


你可能感兴趣的:(源码中编译.so文件)