越来越强烈的感觉到学到的知识最好要通过笔记的形式记录下来,要不然时间久了就会忘掉,再用到的时候还要重新学习,实为浪费。之前自己学到的一些知识没有立刻将记录下来,现在想想真是浪费了。痛下决心,从此,好好写博客,记录学习轨迹。刚好今天公司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目录下)
然后运行 choosecombo命令 会出来一系列让你选择版本的东西,直接回车好了,不知此步是否为必须,我尝试过未执行该命令依然能编译成功。
再然后将你的c++的相关文件包括mk文件和头文件放入源码中的任一目录,进入该目录
最后执行mm -B等一会,完成后就得到.so的文件了,就可以放在android项目中的libs文件夹下的armeabi文件夹了供java调用了。
注意,生成的.so文件于位 /home/hxl/work/android/android4.4.2/mydroid/out/target/product/generic/system/lib文件夹下面了。
相关链接: