android-jni 总结系列 -- so库打包给别的工程用

我有一个工程,叫CameraView  里面用jni 首先把libyuv打包成so库。

然后在另一个mk文件里面引用这个so库 (libyuv_shared.so),生成一个新的so库(picT.so)。该库的主要功能为从java层传入两个surface 和yuv格式的画面(其实是摄像头的preview数据),然后直接显示 在这两个surface上。

这个工程是之前为了分屏显示摄像机拍到的画面,现在用于skyview-s 工程中。

在skyview-s中引入的时候我首先编写了一个新的传入两个surfaceview的java类作为接口。

然后在里面再次定义了native函数。接着把cameraview工程中生成的libyuv_shared.so 和 picT.so 都拷到了skyview-s工程的lib中(我估计libyuv_shared.so 不用再拷了)。如果这样直接build是不行的,一般会报错。我猜测是因为picT.so在生成的时候 关联的.h文件都是CameraView这个工程的包名为前缀的。因此我又将CameraView的src打包成camera.jar文件引入skyview-s 工程中。这样做后picT.so 就能工作了。引入jar跟别的sdk给的包的做法也是一致的。

后期可以再优化下camera.jar 

你可能感兴趣的:(android-ndk)