首页
学习
活动
专区
工具
TVP
发布

腾讯Bugly的专栏

专栏作者
268
文章
583362
阅读量
261
订阅数
微信 WCDB 进化之路 - 开源与开始
本文来自:微信移动客户端开发团队公众号(WeMobileDev) 我们来了 ---- 今天,WCDB(WeChat Database)通过了公司的最终审核,作为腾讯微信的一个开源组件分享给大家。 从WCDB初建,到不断摸索、优化,再到整理代码、文档,最终看着她在 GitHub 上静静等待着“Make Public”被按下,心情犹如看着女儿出嫁的父亲。趁此机会,正好回顾一下 WCDB 这个“微信的数据库”的成长,分享我们的心路历程,也希望以此让大家更了解WCDB。 各自探索 ---- 最早期的微信,各个平台
腾讯Bugly
2023-04-23
1.1K0
微信移动端数据库组件WCDB系列(二) — 数据库修复三板斧
本文来自:微信移动客户端开发团队公众号(WeMobileDev) 前言 长久以来SQLite DB都有损坏问题,从Android、iOS等移动系统,到Windows、Linux 等桌面系统都会出现。由于微信所有消息都保存在DB,服务端不保留备份,一旦损坏将导致用户消息被清空,显然不能接受。 我们即将开源的移动数据库组件 WCDB (WeChat Database),致力于解决 DB 损坏导致数据丢失的问题。 之前一篇文章《微信 SQLite 数据库修复实践》介绍了微信对SQLite数据库修复以及降低损坏率的
腾讯Bugly
2023-04-23
1.1K0
微信 Android 热补丁实践演进之路
继插件化后,热补丁技术在2015年开始爆发,目前已经是非常热门的 Android 开发技术。其中比较著名的有淘宝的 Dexposed、支付宝的 AndFix 以及 QZone 的超级热补丁方案。微信对热补丁技术的研究并不算早,大约开始于2015年6月。经过研究与尝试现有的各个方案,我们发现它们都有着自身的一些局限性。微信最终采用不同于它们的技术方案,走出了自己的实践演进之路。 另外一方面,技术应当只是热补丁方案中的一环。随着对热补丁的多次尝试与应用,微信建立起自身的流程规范,同时也不断的尝试拓展它的应用场景
腾讯Bugly
2023-04-17
2560
安装包立减1M--微信Android资源混淆打包工具
上一篇文章我们讲述了Android减少安装包体积的一些tips,本文主要对前文提到的资源混淆做一个简单的分析。微信中的资源混淆工具主要为了混淆资源ID长度(例如将res/drawable/welcome.png混淆为r/s/a.png),同时利用7z深度压缩,大大减少了安装包体积,同时也增加了逼格,提升了反破解难度。 写在前言 资源混淆工具大约是在2014年4月实现,并在微信5.4中使用,减少了大约1M的空间。然后在8月在公司内部开源,现以推广到QQ邮箱、QQ空间、手机管家等多个产品中使用。 具体源码与使用
腾讯Bugly
2023-04-02
4550
微信Android模块化架构重构实践
本文来自:微信移动客户端开发团队公众号(WeMobileDev) 微信Android架构历史 微信Android诞生之初,用的是常见的分层结构设计。这种架构简单、清晰并一直沿袭至今。这是微信架构的v1.x时代。 图1-架构演进 到了微信架构的v2.x时代,随着业务的快速发展,消息通知不及时和Android 2.3版本之前webview内存泄露问题开始突显。由于代码、内存、apk大小都在增长,对系统资源的占用越来越多,导致微信进程容易被系统回收。因此微信开始转向多进程架构,独立的通信进程保持长连接的稳定性
腾讯Bugly
2023-04-02
5840
微信移动端数据库组件WCDB系列(一)-iOS基础篇
本文来自:微信移动客户端开发团队公众号(WeMobileDev) 前言 ---- WCDB(WeChat DataBase)是微信官方的移动端数据库组件,致力于提供一个高效、易用、完整的移动端存储方案。 它包含三个模块: WCDB-iOS/Mac WCDB-Android 数据库损坏修复工具WCDBRepair 目前正在筹备开源中。 背景 ---- 对于iOS开发者来说,数据库的技术选型一直是个令人头痛的问题。 由于Apple提供的CoreData框架差强人意,使得开发者们纷纷将目光投向开源社区,寻找更好
腾讯Bugly
2023-04-02
1.9K0
小程序发布三个多月后的一点思考
导语 今年1月9日凌晨,微信正式发布了小程序。小程序发布以后,引起了行业的关注,看好的人还是蛮多的。第一天上线,就有媒体说:“小程序上线了,我把APP都卸载了”。也有说:“小程序将引发一场大的革命”。 在之前小程序内测时,我也在微信群里与各位开发同学一起讨论过,大家也都普遍看好小程序的前景: 【Dev Club 讨论】聊一聊微信“小程序” 可是人有悲欢离合,月有阴晴圆缺。 好景不长,没几天,又有媒体说罗胖跑了,不玩小程序了。那些当时卸载app的,又默默的把APP装回去了。 当然也有不少支持者站在不同的角
腾讯Bugly
2023-04-02
3240
微信 SQLite 数据库修复实践
本文来自:微信移动客户端开发团队公众号(WeMobileDev) 1、前言 众所周知,微信在后台服务器不保存聊天记录,微信在移动客户端所有的聊天记录都存储在一个 SQLite 数据库中,一旦这个数据库损坏,将会丢失用户多年的聊天记录。而我们监控到现网的损坏率是0.02%,也就是每 1w 个用户就有 2 个会遇到数据库损坏。考虑到微信这么庞大的用户基数,这个损坏率就很严重了。更严重的是我们用的官方修复算法,修复成功率只有 30%。损坏率高,修复率低,这两个问题都需要我们着手解决。 2、SQLite 损坏原因及
腾讯Bugly
2023-04-02
1.7K0
微信终端跨平台组件 Mars 系列 - 我们如约而至
导语 昨天上午,微信在广州举办了微信公开课Pro。于是,精神哥这两天的朋友圈被小龙的“八不做”刷屏了。小伙伴们可能不知道,下午,微信公开课专门开设了技术分论坛。在分论坛中,微信开源了跨平台的网络组件Mars。 之前Bugly也为大家介绍过Mars的一些相关模块的内容: 微信终端跨平台组件 mars 系列(一) - 高性能日志模块xlog 微信终端跨平台组件 mars 系列(二) - 信令传输超时设计 今天,微信的小伙伴和大家一起聊聊Mars的设计原则以及发展史。 背景 2012 年中,微信支持包括 An
腾讯Bugly
2023-04-02
8450
微信终端跨平台组件 mars 系列(二) - 信令传输超时设计
前言 mars 是微信官方使用 C++ 编写的业务性无关、平台性无关的终端基础组件,目前在微信 Android、iOS、Windows、Mac、Windows Phone 等多个平台中使用,并正在筹备开源,它主要包含以下几个独立的部分: COMM:基础库,包括 socket、线程、消息队列、协程等基础工具; XLOG:通用日志模块,充分考虑移动终端的特点,提供高性能、高可用、安全性、容错性的日志功能;(详情点击:高性能日志模块xlog ) SDT:网络诊断模块; STN:信令传输网络模块,负责终端与服务器的
腾讯Bugly
2023-04-02
8210
微信终端跨平台组件 mars 系列(一) - 高性能日志模块xlog
本文来源: 微信客户端开发团队 前言 mars 是微信官方的终端基础组件,是一个使用 C++ 编写的业务性无关,平台性无关的基础组件。目前已接入微信 Android、iOS、Mac、Windows、WP 等客户端。现正在筹备开源中,它主要包括以下几个部分: comm:可以独立使用的公共库,包括 socket、线程、消息队列等 xlog:可以独立使用的日志模块 sdt:可以独立使用的网络诊断模块 stn:可以独立使用的信令分发网路模块 本文章是 mars 系列的第一篇:高性能跨平台日志模块。 正文 对于移动开
腾讯Bugly
2023-04-02
1.3K0
微信Tinker的一切都在这里,包括源码(一)
最近半年以来,Android热补丁技术热潮继续爆发,各大公司相继推出自己的开源框架。Tinker在最近也顺利完成了公司的审核,并非常荣幸的成为github.com/Tencent上第一个正式公开的项目。 回顾这半年多的历程,这是一条跪着走完,坑坑不息之路。或许只有自己真正经历过,深入研究过, 才会真正的明白 热补丁不是请客吃饭 对热补丁技术本身,还是对使用者来说都是如此。它并不简单,也有着自己的局限性,在使用之前我们需要对它有所了解。我希望通过分享微信在这历程中的思考与经验,能帮助大家更容易的决定是否在自
腾讯Bugly
2023-04-02
2810
微信 iOS SQLite 源码优化实践
前言 随着微信 iOS 客户端业务的增长,在数据库上遇到的性能瓶颈也逐渐凸显。在微信的卡顿监控系统上,数据库相关的卡顿不断上升。而在用户侧也逐渐能感知到这种卡顿,尤其是有大量群聊、联系人和消息收发的重度用户。 我们在对 SQLite 进行优化的过程中发现,靠单纯地修改 SQLite 的参数配置,已经不能彻底解决问题。因此从6.3.16版本开始,我们合入了 SQLite 的源码,并开始进行源码层的优化。 本文将分享在 SQLite 源码上进行的多线程并发、I/O 性能优化等,并介绍优化相关的 SQLite 原
腾讯Bugly
2023-04-02
9190
Android app反调试与代码保护的一些基本方案
| 导语 本文介绍Android app代码(java + ndk)的反调试的方法和保护代码增加逆向难度的一些基本方法。 Android自问世以来得以迅速发展,各大手机厂商纷纷投入成本开发、设计开发自己的Android系统,从2016年开始,Android已经超越ios成为全球最有影响力的操作系统。针对于Android app的逆向方法和逆向工具很多,所以反调试对于Android的代码保护扮演着很重要的角色。本文从四个方面介绍一下Android反调试的一些方法。 ps:反调试并不能完全阻止逆向行为,只是在
腾讯Bugly
2019-05-16
3K0
直击GDC,腾讯WeTest发布CMatrix云游戏服务平台,为企业提供技术解决方案
2019年3月20日-22日, GDC游戏开发者大会(GameDevelopers Conference,以下简称GDC)于旧金山召开。每年的GDC大会上,来自世界各地,数以万计的游戏开发者们都会分享最新的研发技术,共同探索游戏行业未来的趋势。而在今年,云游戏再度登上热门话题的舞台。 CMatrix腾讯云游戏服务平台(以下简称腾讯CMatrix)受英特尔公司邀请,共同参展本届GDC大会,给大家带来Android云游戏技术解决方案,并提供了现场体验。同时,围绕 “Android云游戏”,来自腾讯CMatri
腾讯Bugly
2019-05-16
1.2K0
微信iOS收款到账语音提醒开发总结
一、背景 为了解决小商户老板们在频繁交易中不方便核对、确认到账的痛点,产品MM提出了新版本需要支持收款到账语音提醒功能。这篇文章总结了开发过程中遇到的坑和一些小技巧。 二、技术方案 后台唤醒App 收款到账语音提醒需要收款方在收到款后,播放一段TTS合成语音播报金额,微信在前台时可以通过模板消息将需要播报的金额带下来,再请求TTS数据并播放,但是app在挂起或者被kill掉的情况下要如何请求语音数据并播放呢? iOS提供了两种方式唤醒处于挂起或已经被kill掉的app。分别是Silent Notificat
腾讯Bugly
2018-03-23
3.4K1
微信 Android 视频编码爬过的那些坑
Android的视频相关的开发,大概一直是整个Android生态,以及Android API中,最为分裂以及兼容性问题最为突出的一部分。摄像头,以及视频编码相关的API,Google一直对这方面的控制力非常差,导致不同厂商对这两个API的实现有不少差异,而且从API的设计来看,一直以来优化也相当有限,甚至有人认为这是“Android上最难用的API之一” 以微信为例,我们录制一个540p的mp4文件,对于Android来说,大体上是遵循这么一个流程: ---- ---- 大体上就是从摄像头输出的YUV帧
腾讯Bugly
2018-03-23
1.4K0
小程序组件化框架 WePY 在性能调优上做出的探究
导语 性能调优是一个亘古不变的话题,无论是在传统H5上还是小程序中。因为实现机制不同,可能导致传统H5中的某些优化方式在小程序上并不适用。因此必须另开辟蹊径找出适合小程序的调估方式。 本文旨在介绍两点在小程序开发过程当中碰到的一些性能问题以及 WePY 的一些优化方案。 小程序组件化框架 WePY 介绍请阅读:《打造“微信小程序”组件化开发框架》 预先加载 原理 传统H5中也可以通过预加载来提升用户体验,但在小程序中做到这一点实际上是可以更简单方便却又更容易被忽视的。 传统H5在启动时,page1.htm
腾讯Bugly
2018-03-23
1.2K0
揭秘:微信是如何用libco支撑8亿用户的
导语 ibco是微信后台大规模使用的c/c++协程库,2013年至今稳定运行在微信后台的数万台机器上。libco在2013年的时候作为腾讯六大开源项目首次开源,我们最近做了一次较大的更新,同步更新在https://github.com/tencent/libco 上。libco支持后台敏捷的同步风格编程模式,同时提供系统的高并发能力。 libco支持的特性 无需侵入业务逻辑,把多进程、多线程服务改造成协程服务,并发能力得到百倍提升; 支持CGI框架,轻松构建web服务(New); 支持gethostbyna
腾讯Bugly
2018-03-23
1K0
微信小程序开发思考总结——腾讯“信用卡还款”项目实践
小程序概述 昨天晚上,微信团队对外宣布,微信小程序开放公测。开发者可登陆微信公众平台申请,开发完成后可以提交审核,公测期间咱不能发布。 我们前一段时间也进行了小程序开发,现在来对之前的开发体验做一个总结。 1. 小程序是什么? 微信小程序是一种介于原生app、和web app的hybrid。通过微信进行加载,实现类似原生app的流畅。相对原生app来说,小程序更加轻量、更新实时、跨平台;相对web app来说,小程序资源离线,体验更流畅。 微信小程序的设计目标是通过尽可能简单、高效的方式让开发者可以在微
腾讯Bugly
2018-03-23
1.1K0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
【玩转EdgeOne】征文进行中
限时免费体验,发文即有奖~
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档