type
status
date
slug
summary
tags
category
icon
password

源码地址

这两个都可以,如果不能科学上网,建议使用github上的镜像.

编译

bin/gn gen out/Static --args='is_official_build=false' bin/gn gen out/Shared --args='is_official_build=false is_component_build=true'
如果出现问题,就使用python脚本更新依赖:
python2 tools/git-sync-deps
然后就是:
ninja -C out/Shared

为Android编译

bin/gn gen out/arm --args='ndk="/tmp/ndk" target_cpu="arm"' bin/gn gen out/arm64 --args='ndk="/tmp/ndk" target_cpu="arm64"'
ndk的地址写自己电脑上的地址. 如果需要so库,还是需要加上is_component_build=true

单独编译测试APP

  • viewer: 包含各种demo,按D键可以切换后端实现
    • bin/gn gen out/Release --args='is_debug=false' ninja -C out/Release viewer
  • HelloWorld: 绘制一些简单的形状
    • bin/gn gen out/Release --args='is_debug=false' ninja -C out/Release HelloWorld
  • SkiaSDLExample: SDL + Skia
    • bin/gn gen out/Release --args='is_debug=false' ninja -C out/Release HelloWorld
  • editor: 一个纯文本编辑器
    • bin/gn gen out/Release --args='is_debug=false' ninja -C out/Release editor

需要注意的地方

is_official_build

如果这个属性为true,则会在你电脑上的系统环境取寻找一些依赖库,比如libjpeg,libpng等,如果你设置成true,编译过程中发现一些库不存在或者函数错误等,建议直接把is_official_build设置成false.这样就用skia项目中的源码依赖了,就不会出问题了.

is_component_build

设置为true,则编译成多个小的动态链接库,比如各种so文件.如果需要使用skia,建议设置成true.

参考文档

  1. https://skia.org/user/build
 
skia中的SkBitmapskia-基本图形的绘制
姜康
姜康
一个软件工程师
公告
type
status
date
slug
summary
tags
category
icon
password
🎉博客网站重新制作了🎉
👏欢迎更新体验👏