最近一段时间一直在开发基于Android平台的一款专业图像处理软件,由于Android平台对应用程序的内存限制以及java的处理效率问题,需要用到NDK+Skia的方式来进行,采用Skia直接绘制屏幕要比用Java对象绘制屏幕少消耗至少一半的内存,其实在Android内部,仔细查看源代码的话,其实Android平台本身的图像引擎就是基于Skia 2D图像引擎的,但由于Skia 本身不是很稳定,所以Skia并没有被包含在NDK的发布包中。
下面我说说在使用Skia引擎时的注意事项:
1、网上很多人建议静态编译,从我自己的经验来看,这种方法其实并不好,因为我们在项目中一般都会结合Java对象和NDK来使用Skia,静态编译可能会造成一些难以预料的问题。
2、关于Skia库libskia.so,可以直接从相关设备上提取,不过由于Skia库的不稳定性,版本依赖非常严重。 adb pull /system/lib/libskia.so 这样的命令就可以。
3、编译自己的动态库时,需要包含正确版本的Skia源文件,一定不能混用,比如用3.1版本的源文件来编译用于4.0版本的动态库,这样非常容易出问题。
4、在做Skia相关的应用时,一定要做好版本关联。可以使用git下载不同版本的Android的skia源文件。
5、skia的源文件在Android源代码/external/skia目录下。
阅读(12050) | 评论(2) | 转发(1) |