LCUI 2.1.0 发布,Android 支持计划已确认

来源: OSCHINA
编辑: 司徒永超
2020-07-06 12:32:00

LCUI 2.1.0 发布了。LCUI 是一个用 C 语言编写的图形界面开发库,可用于构建简单的桌面应用程序。

更新概要

本次更新共计支出 90 美元用于悬赏,合并了 4 个拉取请求,参与的贡献者有:vbalyasnyyjduo。此外,LCUI 在 OpenCollective 上新增了一位赞助者,共计获得 50 美元捐款。

问题修复

  • wasm-ld: error: duplicate symbol: self (2b0424c)
  • display: rect_array 未被释放 (224c433)
  • gui: 部件销毁后未标记无效区域 (8e1f136)
  • gui: TextView_SetTextW() 段错误 (#195) (a10df88)
  • ime: 设置输入框文本光标时段错误 (0b644e1)
  • linux: 在窗口处于最小尺寸时渲染会出现段错误 (#200) (#201) (fa23f89)
  • mainloop: 将事件触发器从 OpenMP 并行循环中移出以解决主线程阻塞问题 (#204) (#205) (6978f46)

新功能

Android 支持计划

作者已确认将 Android 支持列入开发计划,但由于作者并不是 Android 开发者,也不打算学习 Android 开发,所以,这项工作将由开源社区中的 Android 开发者完成,当然这并不是无偿的,完成这项工作的开发者将会获得一定数额的奖金。

之所以选择以悬赏的方式吸引贡献者,是因为在此前的几次版本更新中,有不少开发工作是以悬赏任务的形式交给其他开发者完成的,效果还不错,这也足以证明开源社区中有很多潜在的贡献者,他们有能力为开源项目做贡献,只不过是缺少足以驱使他行动的理由,而悬赏则是满足理由的最为简单直接的一种方式。

LCUI 在此之前一直是个人项目,可能是因为大家考虑到作者时间和精力有限,除了在 OSCHINA 评论区发点评论外,很少有除此以外的有实际意义的互动,例如:提出功能需求、改进意见、贡献代码。这种状态不利于开源项目的长期发展,因此,作者想借此机会尝试推动 LCUI 转变为由社区驱动的项目,让更多人能够推动项目发展,而不只是作者一个人。

接下来以问答的形式进一步说明。

为什么决定添加 Android 支持?

相信有些人也有相似的体会,安卓的某些应用占用存储空间和内存很大,明明它的界面很简单,性能却非常差,用起来着实让人火大,喷它也没意义,所以,为搞清楚原因,作者想基于 LCUI 写个 Android 应用来体验实际效果,以便确认是 Android 开发者技术水平的问题,还是他们用的 UI 框架有问题,又或者只是因为硬件配置低。

添加 Android 支持有什么意义?

  • 拓宽 LCUI 的受众范围
  • 让作者可以写 Android 应用
  • 给 C 开发者多一种消遣方式,无聊时可以用 C 写个 Android 应用来打发时间
  • 给 Android 开发者多一种选择,虽不能正式用在生产应用中,但可以用来研究和折腾

悬赏奖金有多少?

估计需要 1000 美元,除去 10% 的平台服务费和转账手续费,实际能获得 900 美元,奖金大部分由赞助者提供,也就是说实际奖金有可能超过 1000 美元,也可能低于 50 美元,如果你能完成这项工作但觉得奖金少的话,可以利用自己的知名度、人脉以及各种途径去推广,吸引更多的人赞助这项工作,毕竟能够拉到赞助也是一种能力。

那你这不就是炒作吗?

具体得看实际情况,如果有开发者要求的赏金低于 500 美元的话,作者会考虑直接全额支付赏金,当然,如果都要求 1000 美元以上那就只能等作者资金充足的时候再考虑了。

服务费这么高,为什么不考虑国内的赞助平台?

因为国外的赞助平台有很多流行开源项目在使用,积累的开发者也很多,在上面发布悬赏更容易推广吸引贡献者。而国内的话,某知名开源代码托管平台对这方面的支持欠缺,只有简单的打赏功能,虽然近期有举办过悬赏的活动,但活动奖金固定且活动只持续一小段时间,无法满足现在这种需求。至于其它类似平台,作者不了解。

如果我想负责这项工作,需要做什么准备?

先在 issuehunt.io 上提交你的期望奖金,然后在 issue#210 页面中发评论表示愿意负责这项工作,等一段时间后由作者决定由谁负责。如果你有相关问题需要咨询,也可以写在评论中。

如何为这项工作赞助资金?

在 issuehunt.io 上追加奖金即可,如果你想为 LCUI 的未来开发工作提供资金赞助,也可以在 OpenCollective 上进行赞助。

如果这项工作一直没人赞助怎么办?

现在的主要目的是找到有意向做这项工作的开发者,了解到他们期望的奖金数额,至于赞助的事情要等之后再考虑。

做这项工作能获得什么好处?

  • 获得一定奖金
  • 积累 C 和 Android 开发经验
  • 向开源社区的开发者展示你的技术水平
  • 你的名字和链接将被展示在 README 文档和官网首页中

从上述的几个好处来看,这项工作最适合时间充足、有一定编程能力但需要积累实战经验的计算机专业学生,能让他们在锻炼编程能力的同时顺便赚点零花钱。

这项工作的内容是什么?

工作清单如下:

  • 驱动
    • 视频驱动
    • 触屏驱动
    • 键盘驱动
    • 主循环(UI 线程)
  • 接口
    • DPI 获取接口
    • 屏幕分辨率获取接口
    • 系统信息获取接口
  • 文档
    • 技术文档,介绍安卓端支持技术实现方案
    • 开发文档,介绍如何基于 LCUI 开发 Android 应用,以及如何调试
  • 示例
    • 添加 Android 示例项目,移植现有的 helloworld 示例程序即可
  • CI 服务
    • 编译 Android 示例项目为 apk,并将其上传到 GitHub Actions 制品列表 (Artifacts) 以供下载
    • 在 Android 模拟器安装运行 apk,并将截图发送到 commit 页面的评论中,或 GitHub Actions 制品列表中
  • 其它
    • 代码结构合理,命名规范,易于阅读和维护,至少能让作者看懂

关于 Android 端的驱动,可以参考 SDL 的源码:

https://github.com/SDL-mirror/SDL/tree/master/src/video/android

这点程度的 Android 支持还不够,后续还有其它计划吗?

先等这项工作完成后再考虑,届时将会规划项目发展路线图。

展开阅读全文
点击加入讨论🔥(12) 发布并加入讨论🔥
本篇精彩评论
挺好的方式,赞👍
2020-07-06 13:54
2
举报
您好,请问这个图形界面开发库是依赖opgl还是自己内部实现画像素到显示器硬件的?是用什么接口画的?画到显示器硬件是什么原理?
2020-07-09 11:43
1
举报
支持
2020-07-06 13:31
1
举报
赞!👍
2020-07-06 13:14
1
举报
12 评论
8 收藏
分享
返回顶部
顶部