开源是个好东西,马化腾除了王者荣耀还是干了些好事情的。腾讯最近开源的一些比较热门的项目,可以学习了解下哈
0、Android 热修复框架 Tinker ★Star 8967
imageTinker是Android的热修复解决方案库,它支持dex,库和资源更新,无需重新安装apk。有一些问题,Tinker不能动态更新:
无法更新AndroidManifest.xml,例如添加Android组件。;不支持一些三星型号与os版本的android-21;由于Google Play开发者分发协议,我们无法动态更新我们的apk(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/tinker</u>)
1、微信客户端跨平台组件 Mars ★Star 8874
imageMars 是微信官方的终端基础组件,目前已接入微信 Android、iOS、Mac、Windows、WP 等客户端。主要包括以下几个部分:
● comm:可以独立使用的公共库,包括socket,线程,消息队列,协程等;
● Xlog软件:日志组件,可靠性高,高性能
● SDT:网络诊断组件
● STN:信令分发网络模块,也是Mars最主要的部分。图。(详情:<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/mars</u>)
2、微信移动数据库框架 WCDB(WeChat Database) ★Star 3123
WCDB(WeChat Database)是一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持iOS, macOS和Android,WCDB于6月9日正式对外开源。
开源地址:<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/wcdb</u>
imageWCDB for iOS/macOS 基本功能
- WINQ(WCDB语言集成查询): 通过WINQ,开发者无须为了拼接SQL的字符串而写一大坨胶水代码。
- ORM(Object Relational Mapping): WCDB支持灵活、易用的ORM。开发者可以很便捷地定义表、索引、约束,并进行增删改查操作。
- 多线程高并发: WCDB支持多线程读与读、读与写并发执行,写与写串行执行。
- 加密:WCDB提供基于SQLCipher的数据库加密。
- 损坏修复: WCDB内建了Repair Kit用于修复损坏的数据库。
- 反注入: WCDB内建了对SQL注入的保护。
WCDB for Android 基本功能
- 基于SQLCipher的数据库加密
- 使用连接池实现并发读写
- 内建 Repair Kit 可用于修复损坏数据库
- 针对占用空间大小优化的数据库备份/恢复功能
- 日志输出重定向以及性能跟踪接口
- 内建用于全文搜索的 mmicu FTS3/4 分词器
3、手机前端开发调试工具 vConsole ★Star 2393
vConsole 是一款由微信公众平台前端团队打造的前端调试面板,专治手机端看 log 难题。 目前 vConsole 自带有 2 个面板,默认为“日志”面板,负责展示 log。 第二个是“系统”面板,vConsole 会自动将一些基础信息(如系统版本)打印出来,方便开发者定位问题。若页面是在微信内置浏览器中打开的,vConsole 还会打印出微信版本号、当前网络类型等额外信息。(详情:<u style="box-sizing: border-box; list-style: inherit;">https://github.com/WechatFE/vConsole</u>)
4、微信团队前端开发工具 WeFlow ★Star 2233
image这是一个高效、强大、跨平台(macOS & Win)的前端工具,核心基于 tmt-workflow 工作流.(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/weixin/WeFlow</u>)
5、分布式后台服务引擎 MSEC ★Star 2221
image毫秒服务引擎(MSEC)由腾讯 QQ 团队开源。它是一个后端 DEV&OPS 引擎,包括RPC,名称查找,负载平衡,监控,发布和容量管理。毫秒服务引擎特性:
● 模块间访问采用RPC的方式,开发者不用关注网络与报文格式,像写单机程序一样开发分布式服务。
● 负载自动均衡与容错,对于单机故障、局部网络波动等状况自动应对,服务高可用性。
● 支持 C/C++/java/PHP 语言,如果选择 C/C++ 语言,支持协程,兼具开发和运行效率。
● Web 化的管理界面
● 简易部署,需要复杂部署的服务器都采用docker镜像的方式安装
● 相比使用其他开源组件拼凑起来的解决方案,毫秒服务引擎更加的体系化,对团队的规范更加到位(详情:<u style="box-sizing: border-box; list-style: inherit;">http://haomiao.qq.com/</u>)
6、随身调测平台GT ★Star 2183
GT(随身调)是 APP 的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment)。利用 GT,仅凭一部手机,无需连接电脑,您即可对APP进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、 开发日志的查看、Crash日志查看、网络数据包的抓取、APP 内部参数的调试、真机代码耗时统计等。如果您觉得GT提供的功能还不够满足您的需要,您还 可以利用 GT 提供的基础 API 自行开发有特殊功能的 GT 插件,帮助您解决更加复杂的 APP 调试问题。(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/GT</u>)
7、Unity3D 下 Lua 编程解决方案 xLua ★Star 1816
xLua为Unity3D增加Lua脚本编程的能力,xLua在功能、性能、易用性都有不少突破,这几方面分别最具代表性的是:
① 可以运行时把C#实现(方法,操作符,属性,事件等等)替换成lua实现;
② 出色的GC优化,自定义struct,枚举在Lua和C#间传递无C# gc alloc;
③ 编辑器下无需生成代码,开发更轻量;
(详情:<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/xLua</u>)
8、RPC开发框架Tars ★Star 1800
image它是基于名字服务使用 Tars 协议的高性能 RPC 开发框架,配套一体化的运营管理平台。Tars 是腾讯从 2008 年到今天一直在使用的后台逻辑层的统一应用框架 TAF(Total Application Framework),目前支持 C ++ 和 Java 两种语言。目前该框架在腾讯内部,各大核心业务都在使用,颇受欢迎,基于该框架部署运行的服务节点规模达到上万个。(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/Tars</u>)
9、MySQL集群PhxSQL ★Star 1759
imagePhxSQL是一个基于Paxos和Percona的高可用性和强大的一体化MySQL集群,PhxSQL以单Master多Slave方式部署,在集群内超过一半机器存活的情况下,可自身实现自动Master切换,且保证数据一致性。(详情:<u style="box-sizing: border-box; list-style: inherit;">https://github.com/tencent-wechat/phxsql</u>)
10、超轻量级 Web 手势库AlloyFinger ★Star 1734
可以看到hammerjs体积远远大于AlloyFinger,对于手机QQ web加载速度性能追求极致的同学来说,使用hammerjs的大小是不可以接受的!那么,为什么hammerjs这么大?看下架构设计便知♂(详情:<u style="box-sizing: border-box; list-style: inherit;">https://github.com/AlloyTeam/AlloyFinger</u>)架构设计:
image11、多机状态拷贝类库PhxPaxos ★Star 1244
PhxPaxos 是腾讯公司微信后台团队自主研发的一套基于 Paxos 协议的多机状态拷贝类库。它以库函数的方式嵌入到开发者的代码当中, 使得一些单机状态服务可以扩展到多机器,从而获得强一致性的多副本以及自动容灾的特性。 这个类库在微信服务里面经过一系列的工程验证,并且我们对它进行过大量的恶劣环境下的测试,使其在一致性的保证上更为健壮。(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/tencent-wechat/phxpaxos</u>)
12、Web组件化框架Omi ★1057
Omi是一款开放现代的Web组件化框架,有以下特性:
① 局部CSS:HTML+ Scoped CSS + JS组成可复用的组件。不用担心组件的CSS会污染组件外的,Omi会帮你处理好一切
② 超小的尺寸:7 kb (gzip),虽然文件尺寸小,但是兼容性很好!
③ 更新更自由:每个组件都有update方法,可自由更新。
④ 模板引擎可替换,开发者可以重写Omi.template方法来使用任意模板引擎
⑤ 完全面向对象
⑥ Omi提供了ES6+和ES5的两种开发方案
(详情:<u style="box-sizing: border-box; list-style: inherit;">https://github.com/AlloyTeam/omi</u>)
13、UI 前端框架 QMUI Web ★Star 888
QMUI Web 是一个专注 Web UI 开发,帮助开发者快速实现特定的一整套设计的框架。通过 QMUI Web,开发者可以很轻松地提高 Web UI 开发的效率,同时保持了项目的高可维护性与稳健。如果你的项目需要有一套完整的设计,并且可能有频繁的变动,那么 QMUI Web 框架将会是你最好的解决方案。(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/QMUI/QMUI_Web</u>)
14、curvejs ★Star 749
是腾讯AlloyTeam打造的一款魔幻线条框架,让线条成为一名优秀的舞者,让线条们成为优秀的舞团,HTML5 Canvas就是舞台。其原理就是使用 Perlin-Noise + Particle System + Bézier Curve + Color Transition 制作而成。使用curvejs实现类似变幻线功能只需要不到10行代码。 <u style="box-sizing: border-box; list-style: inherit;">https://github.com/AlloyTeam/curvejs</u>
15、基于C ++的RPC框架 PhxRPC ★Star 645
PhxRPC是微信后台团队推出的一个非常简洁小巧的RPC框架,编译生成的库只有450K(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/tencent-wechat/phxrpc</u>)
16、Web 开发调试工具AlloyLever ★533
AlloyLever 是腾讯 AlloyTeam 团队开源的一款 Web 开发调试工具。AlloyLever的功能:点击 alloylever 按钮之间切换显示或隐藏工具面板; Console会输出所有用户打印的日志如 console.[log/error/info/debug/debug] ;Console会输出所有的错误信息(脚本错误和网络请求错误) ;XHR 面板会输出所有(XMLHttpRequest)AJAX 请求和服务器端返回的数据; Resouces 面板会输出所有的 Cookie 信息和 LocalStorage ;TimeLime 面板会输出页面相关的生命周期里的时间段耗时情况(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/AlloyTeam/AlloyLever</u>)
17、bk-cmdb ★Star 452
蓝鲸配置平台是一款面向应用的 CMDB,在 ITIL 体系里,CMDB 是构建其它流程的基石,而在蓝鲸智云体系里,配置平台就扮演着基石的角色,为应用提供了各种运维场景的配置数据服务。现有功能如下:用户管理、业务管理、拓扑(集群、模块)管理、资源池管理、主机管理、日志查询(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/bk-cmdb</u>)
18、分布式开发框架Pebble-RPC ★Star 351
Pebble是一个分布式开发框架。基于该框架,可以让开发者只需专注于业务逻辑的实现,而不需要关注基础功能的开发,如网络通信,数据存储,集群管理等。使用pebble配套的运营系统,可方便的进行游戏开区开服,版本升级,扩容缩容等操作。当前发布的Pebble版本,是一个Linux平台C++版本的后台开发框架。整个分布式开发框架包括:服务管理、集群管理、RPC通信、协程、广播、进程框架。(详情:<u style="box-sizing: border-box; list-style: inherit;">https://github.com/TencentOpen/Pebble</u>)
19、UI自动化测试框架 GAutomator ★Star 337
GAutomator 是一 Unity 手游的UI 自动化测试框架。
Windows Os 和软件要求: Windows 7(32/64位),Windows 8或更高版本;python 2.7;Android SDK(或adb),在设备上启用ADB设置,并使用usb与您的PC连接您的Android设备。Linux和软件要求:Ubuntu 14.04 LTS;python 2.7;Android SDK(或adb),在设备上启用ADB设置,并使用usb与您的PC连接您的Android设备。
Android:Android 4.3(API级别18)或更高版本。(详情:<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/GAutomator</u>)
20、WeDemo ★Star 297
WeDemo 为微信团队开源项目,用于帮助微信开发者完成微信登录、微信分享等功能的接入和开发。开发者可参考源代码完成开发,也可以直接将代码应用到自己的App开发中,安全、便捷地在App中实现微信分享、微信登录功能。(详情:<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/WeDemo</u>)
21、AI开发框架组件 Behaviac ★Star 297
imageBehaviac 是游戏 AI 的开发框架组件,也是游戏原型的快速设计工具。支持行为树BT,状态机 FSM,HTN 等多种范式,方便的编辑和调试。支持全平台,适用于客户端和服务器,助力游戏快速迭代开发。 编辑器可以运行在 PC 上,操作方便直观可靠,支持实时和离线调试;编辑器可以导出 xml,bson 等多种格式,更可以导出 C++,C# 源码,提供最高效率。 运行时支持全平台,有 C++ 和 C# 两个版本,原生支持 Unity。 (详情:
https://github.com/Tencent/behaviac)
22、Fanvas ★Star 214
Fanvas是一个把swf转为html5 canvas动画的系统,由两部分组成:Actionscript实现的解析器、js运行库。(详情:<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/Fanvas</u>)
23、HaboMalHunter ★Star 161
HaboMalHunter 是 Habo Malware 分析系统(https://habo.qq.com)的子项目,可用于Linux系统上的自动恶意软件分析和安全评估。该工具可用于 Linux x86 / x64 平台上 ELF 文件的静态和动态分析。(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/HaboMalHunter</u>)
24、基于ACE的服务框架 TEAF ★157
TEAF(Tencent Easy ACE Framework),基于 ACE 的高性能服务框架,单进程多线程模型,支持 select/epoll 等多种网络 IO 模型,同时支持 tcp 和 udp 协议,支持二进制(pb等)和文本格式(json等,易于理解),相对多进程模型的框架来说更易维护,更轻量。业务侧只需要开发自己的逻辑处理即可实现高性能的业务后台服务器。已经在腾讯互娱(IEG)大部分平台类产品中成熟应用,比如 idip,游戏人生,心悦,帮帮,新终端游戏中心 aj,cross 等,公司其他 BG 也有很多产品在使用。(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/Teaf</u>)
25、QT4A ★Star 67
QT4A(Android的快速测试)是适用于 Android 应用程序的 QTA 测试自动化驱动程序。支持Android 2.3 - 6.0 版本,需要设备根。支持多设备同时测试;支持跨进程,跨应用测试;支持进行过控件混淆的安装包(需要映射文件);支持自定义控件(如果有代码混淆需要映射文件)(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/QT4A</u>)
26、辅助测试工具 WeTest-Assistant ★Star 49
WeTest 助手包括性能测试和远程调试两大功能。手游客户端性能测试常用性能维度,CPU,内存,FPS,流量一次性全部收集, 图表化展示,数据可按场景化分类,并且支持离线和在线两种模式,地铁上都可以做测试,Web上看报告。 支持ROOT和非ROOT安卓手机,支持越狱iOS系统。(详情:<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/WeTest-Assistant</u>)
27、QT4i ★Star 44
QT4i是iOS应用程序的QTA测试自动化驱动程序。主要特性:轻松易用、支持iOS Native控件,webview控件和自定义控件;平台支持,高效维护。(详情:<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/QT4i</u>)
28、KNVProtoEngine ★Star 44
KNV是一个模式自由的高性能树型协议处理引擎,是对Key-Value的一个通用结构化扩展。(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/Tencent/KNVProtoEngine</u>)
29、优图人脸识别 Python_sdk ★Star 32
优图人脸识别(Face Recognition), 是由腾讯优图团队研发的,基于人的脸部特征信息进行身份识别的一种生物识别技术。它提供了"人脸检测与分析"、"人脸比对"、"人脸验证"、"人脸识别"等一整套技术方案。(详情:
<u style="box-sizing: border-box; list-style: inherit;">https://github.com/TencentYouTu/python_sdk</u>)
网友评论