skia库 Android平台编译
一,编译前的准备
由于Smart_Gis安卓客户端的需要,所以需要把skia库编译成安卓平台Arm64_v8a版本的so库。由于要求是Android NDK版本 12以上,Android API 21以上的支持。
所以在本次编译过程中全部需要使用64位的操作系统,NDK及编译器,编译环境为 操作系统:wondows 10 企业版,安卓NDK版本:android-ndk-r14b Windows版本,skia版本:github下载,depot_tools版本: https://skia.org/下载,Python版本:2.7。
在本次编译过程中遇到的最大的困难是在编译的过程中必须要翻墙到google的服务器下载很多相应的编译构建所需的文件,本人翻墙下载编译构建文件的过程中出现了无数次的下载失败,血和泪。
二,配置系统环境变量
1,安装python2.7,必须是2.7,其他版本不行,添加python安装目录到系统环境变量。
2,配置depot_tools系统环境变量,将depot_tools安装目录拷贝到系统path环境变量里面。2,配置depot_tools系统环境变量,将depot_tools安装目录拷贝到系统path环境变量里面。
按照官方编译指南https://skia.org/user/build 的指导,需要先下载`skia库源码和depot-tools工具包`,官方下载指南在https://skia.org/user/download上,然而这种方法需要翻墙,两个包大小加起来有40M,翻墙下载也很慢,因此可以转到github去下载,地址如下: Skia:https://github.com/google/skia
Depot-tools:https://github.com/coreos/depot_tools
下载完两个包之后,解压两个包,把depot-tools目录添加到系统Path环境变量,把skia-master重命名为skia。这样就完成了两个包的配置。
三,编译安卓so库三,编译安卓so库
这一步是按照官方指南,下载依赖包。要下载的依赖包的信息都在skia目录的`DEPS`文件里,可以看到这些依赖包都要从谷歌的代码仓库下载,因此要翻墙,否则无法进行下去。翻墙之后,打开powershell或cmd,cd到skia目录,执行命令:`python tools/git-sync-deps`。如果不出错误地完成,那就代表依赖包正常下载到位,可以准备编译了。在控制台里面进入skia目录下执行以下命令bin\gn gen out\arm64 --args='is_component_build=truetarget_os="android"is_debug=truendk_api=21ndk="E:\android-ndk-r14b-windows-x86_64\android-ndk-r14b\" target_cpu="\arm64"\'
out/arm是动态库生成的位置,这个可以自己指定
ndk_api也要结合自己的需要来更改
ndk路径请更改为自己的ndk路径
target_cpu是自己生成的指令平台,可以是arm,arm64,armx64,armx86等。
开始编译,执行命令:
sudo ninja -C out/arm64
该命令执行成功后会在out/arm64下生成一个libskia.so。