- 博客(206)
- 收藏
- 关注
转载 《手Q Android线程死锁监控与自动化分析实践》
一、问题背景手Q每个版本上线以后研发同学都会收到各种问题反馈。在跟进手Q内部用户反馈的问题时,发现多例问题,其表象和原因如下:1、问题表象:“未读不消失”、“图片不展示”、“菊花一直在转” 。。。2、问题原因:死锁导致的功能不可用。这类由死锁造成的功能不可用的问题,具有表象简单但影响非常严重的特点。一般用户在遇到这类问题后,除了采取杀掉进程重启的策略,没有其他办法继续使用应用。由此...
2018-03-30 15:01:06
2965
1
原创 QUIC协议初探-iOS实践
本文来自于腾讯Bugly公众号(weixinBugly), 作者:emilymmwang,未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/NbewZ1NU49qSjIcdFrpotw | 导语 本文主要介绍了QUIC协议,以及初步研究的过程,用实践证明了QUIC协议在iOS平台的可行性1、QUIC介绍(1)QUIC(Quick UDP
2018-01-09 17:47:50
7576
2
原创 《Android外部存储》
外部存储作为开发中经常接触的一个重要系统组成,在Android历代版本中,有过许许多多重要的变更。我也曾疑惑过,为什么一个简简单单外部存储,会存在存在这么多奇奇怪怪?------>请看本文
2017-12-26 11:12:48
3068
原创 Android JNI出坑指南
本文来自于腾讯Bugly公众号(weixinBugly), 作者:qingcuilu,未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/AtxEEN13z_sdbZTpJsKWLw在Android编程中,出于硬件交互,跨平台,安全性,第三方库等方面的考虑,我们需要Java与C/C++互相调用,这就需要借助Java平台的JNI接口(Java Native Inte
2017-12-26 09:44:55
2719
原创 《iPhone X ARKit Face Tracking》
iPhone X前置深度摄像头带来了Animoji和face ID,同时也将3D Face Tracking的接口开放给了开发者。有幸去Cupertino苹果总部参加了iPhone X的封闭开发,本文主要分享一下iPhone X上使用ARKit进行人脸追踪及3D建模的相关内容。
2017-12-04 11:07:19
3766
原创 《Android 创建线程源码与OOM分析》
企鹅FM近几个版本的外网Crash出现很多OutOfMemory(以下简称OOM)问题,Crash的堆栈都在Thread::start方法上。该文详细分析了发生原因。
2017-11-15 16:33:04
4150
原创 《你知道android的MessageQueue.IdleHandler吗?》
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/KpeBqIEYeOzt_frANoGuSg yangu导语 干货!干货!或许可以是一种处理问题的新思路哟~~ 前言我们知道android是基于Looper消息循环的系统,我们通过Handler向Looper包含的MessageQueue投递Me
2017-10-30 18:13:38
5170
2
原创 Android 7.0中ContentProvider实现原理
本文描述了ContentProvider发布者和调用者这两在Framework层是如何实现的。作为Android的四大组件之一,ContentProvider作为进程之间静态数据传递的重要手段,其在系统级别的应用中起了重大的作用。毫无疑问,ContentProvider核心机制之一也是Binder,但是和其它3大组件又有区别。因为ContentProvider涉及数据的增删查改,当数据量比较大的时候......
2017-10-17 09:53:10
2269
原创 《iOS APP 性能检测》
colawyeeqiu | 导语 最近组里在做性能优化,既然要优化,就首先要有指标来描述性能水平,并且可以检测到这些指标,通过指标值的变化来看优化效果,于是笔者调研了iOS APP性能检测的一些方法,在此总结一下。首先,要明确性能检测都需要关注哪些指标,笔者列举了以下几个主要的,后面会详细说:启动时间内存占用量,内存告警次数CPU使用率页面渲染时间,刷新帧率网络请求时间,流量消耗
2017-10-16 11:06:37
16905
1
原创 《iOS 11 安全区域适配总结》
本文主要是对iOS 11下企鹅 FM APP中tableView内容下移20pt或下移64pt的问题适配的一个总结。内容包括五个部分:问题的原因分析、adjustContentInset属性的计算方式、什么情况下的tableView会发生内容下移、有哪些解决方法、解决这个问题时遇到的另外一个小问题。
2017-09-26 10:17:36
3268
原创 [特斯拉组件]ios高性能PageController
UIPageViewController的DataSource和Delegate的接口过于简单,对于比较复杂的情况(比如除了分页以外还有其他View的情况下)无法处理。参照下面的例图,我有一个tab下面有小黄条,跟着手势横向滑动的同时也横向滑动,这里系统的UIPageViewController无法支持。其外,我还需要子页面纵向滑动时候去修改Cover和Tab的frame。所以UIPageViewControlle
2017-09-19 15:20:50
1962
原创 微信iOS收款到账语音提醒开发总结
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址: http://mp.weixin.qq.com/s/yYCaPMxHGT9LyRyAPewVWQTS语音合成方案分为离线合成方案和在线合成方案,离线合成方案省去网络请求,合成速度更快,节省网络流量,但是合成音的听起来比较机械,语速和停顿的处理较差一些。
2017-09-08 17:51:27
7899
2
原创 React Native按需加载 手Q狼人杀探索之路
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/mUzq4NaBHeF3T-NStLzuRw 作者:peterlmeng导语最近特别火的狼人杀和最近特别火的React Native会擦出什么样的火花呢?本文和您一同探讨RN性能优化的现实场景。项目简介:狼人杀游戏是多人实时性游戏,对流畅度等性能都有要
2017-09-01 18:37:35
2258
原创 iOS App 启动性能优化
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/Kf3EbDIUuf0aWVT-UCEmbA 作者:samsonxu导语本文介绍了如何优化iOS App的启动性能。本文分为四个部分: - 第一部分科普了一些和App启动性能相关的前置知识 - 第二部分主要讲如何定制启动性能的优化目标 - 第三
2017-08-18 09:59:05
8220
6
原创 Android 开发者必知必会的权限管理知识
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/OQRHEufCUXBA3d3DMZXMKQ导语本文主要讲解了Android 权限管理方面几个点:Android 权限背景知识;权限检查及权限兼容;跳转到app管理权限页面一、Android 权限背景知识提到Android 权限管理,业内人士都知道
2017-08-11 09:50:49
2341
原创 你可能需要为你的 APP 适配 iOS 11
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/AZFrqL9dnlgA6Vt2sVhxIw作者:sonialiu 导语:iOS 11 为整个生态系统的 UI 元素带来了一种更加大胆、动态的新风格。 本文介绍iOS11中在UI方面做了哪些更新,有些更新可以为用户提供更加完美的体验,但也有的可能会给目
2017-08-03 17:00:52
3405
原创 页面结构化在 Android 上的尝试
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/M45DM5Ix7a2fmrsE8VPvxg作者:bizaitan 导语:MVP开发模式可以帮助项目结构解耦,但其庞大的方法数增加,较为笨重设计对于手Q项目并不很适合。参考之前Web开发经验,提出以页面结构化的解耦方式组织代码。下面讲讲Lego在And
2017-07-24 15:51:41
1253
3
原创 iOS 11: CORE ML—浅析
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/OWD5UEiVu5JpYArcd2H9ig 作者:liujizhou 导语:在刚刚过去的WWDC上,苹果发布了Core ML这个机器学习框架。现在,开发者可以轻松的使用Core ML把机器学习功能集成到自己的应用里,让应用变得更加智能,给用
2017-07-18 16:39:10
2751
原创 Android 平台 Native 代码的崩溃捕获机制及实现
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/g-WzYF3wWAljok1XjPoo7w一、背景在Android平台,native crash一直是crash里的大头。native crash具有上下文不全、出错信息模糊、难以捕捉等特点,比java crash更难修复。所以一个合格的异常捕获组件也要
2017-07-12 10:31:35
5472
原创 H5直播避坑指南
企鹅电竞项目,直播和视频播放是其中的核心。面对着产品同学不断的询问:为什么h5的体验这么差?为什么不能和app的播放体验保持一致?我们对着h5不明确的文档和不同浏览器的怪异表现欲哭无泪。 经过一系列的调研爬坑,斩荆披棘,我们一步步提升了体验,做到了和app基本一致的体验。在摸索优化背后,我们也想把这些问题和解决方法总结下来,让其他同学做到直播的时候可以自豪的说,这就是我们的h5直播体验
2017-06-27 15:32:01
3226
1
原创 Android 混淆那些事儿
本文主要讲述了代码混淆和资源混淆的原理,Studio默认的混淆方案,混淆的参数,以及如何对Apk进行代码混淆(自定义混淆文件)和资源混淆(结合微信混淆和美团混淆两种方案),避免Apk被逆向。
2017-06-27 15:27:26
1612
原创 H5 和移动端 WebView 缓存机制解析与实战
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/qHm_dJBhVbv0pJs8Crp77w 作者:叶建升 个人主页:http://www.linkedin.com/in/jiansheng-ye-b3319778/导语在web项目开发中,我们可能都曾碰到过这样一个棘手的问题:线上项目需要更
2017-06-19 11:18:14
2401
转载 快速上手 Kotlin 的 11 招
本文转载自 Kotlin 公众号(KotlinX) 作者:bennyhuo最近经常会收到一些 “用 Kotlin 怎么写” 的问题,作为有经验的程序员,我们已经掌握了一门或者多门语言,那么学 Kotlin 的时候就经常会有类似 “ ‘再见’用日语怎么说?”、“ ‘你好’ 用西班牙语怎么说?” 的问题,所以我决定把一些常用的语法对照列举出来,如果大家熟悉 Java,那么快速上手 Kotlin
2017-06-13 15:47:07
785
原创 教你 Debug 的正确姿势——记一次 CoreMotion 的 Crash
作者:林蓝东最近的一个手机 QQ 版本发出去后收到比较多关于 CoreMotion 的 crash 上报,案发现场如下:但是看看这个堆栈发现它完全不按照套路出牌啊!乍一看是挂在 CoreMotion 里面的CLStartStopAdvertisingBeacon函数,看似是 iBeacon 相关的问题,但实际上是具体函数的符号解不出来,注意 CLStartStopAdvertisingBeacon
2017-06-12 16:05:55
1524
原创 小程序组件化框架 WePY 在性能调优上做出的探究
作者:龚澄导语性能调优是一个亘古不变的话题,无论是在传统H5上还是小程序中。因为实现机制不同,可能导致传统H5中的某些优化方式在小程序上并不适用。因此必须另开辟蹊径找出适合小程序的调估方式。本文旨在介绍两点在小程序开发过程当中碰到的一些性能问题以及 WePY 的一些优化方案。小程序组件化框架 WePY 介绍请阅读:《打造“微信小程序”组件化开发框架》预先加载原理传统H5中也可以通过预加载来提升用户
2017-06-05 16:09:15
4294
原创 基于 TensorFlow 在手机端实现文档检测
作者:冯牮前言本文不是神经网络或机器学习的入门教学,而是通过一个真实的产品案例,展示了在手机客户端上运行一个神经网络的关键技术点在卷积神经网络适用的领域里,已经出现了一些很经典的图像分类网络,比如 VGG16/VGG19,Inception v1-v4 Net,ResNet 等,这些分类网络通常又都可以作为其他算法中的基础网络结构,尤其是 VGG 网络,被很多其他的算法借鉴,本文也会使用 VG
2017-06-01 10:02:40
4698
4
原创 Bugly 多渠道热更新解决方案
作者:巫文杰Gradle使用productFlavors打渠道包的痛有很多同学可能会采用配置productFlavors来打渠道包,主要是它是原生支持,方便开发者输出不同定制版本的apk,举个例子:android { ... defaultConfig { minSdkVersion 8 versionCode 10 } productF
2017-05-22 14:28:58
1372
原创 HTTPS 原理浅析及其在 Android 中的使用
作者:曹丰斌 本文首先分析HTTP协议在安全性上的不足,进而阐述HTTPS实现安全通信的关键技术点和原理。然后通过抓包分析HTTPS协议的握手以及通信过程。最后总结一下自己在开发过程中遇到的HTTPS相关的问题,并给出当前项目中对HTTPS问题的系统解决方案,以供总结和分享。如有不当之处,欢迎批评和指正。1.HTTP协议的不足 HTTP1.x在传输数据时,所有传输的内容都是明文,客户端和服务器
2017-05-22 14:27:46
5248
原创 Swift 对象内存模型探究(一)
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/zIkB9KnAt1YPWGOOwyqY3Q作者:王振宇 HandyJSON 是 Swift 处理 JSON 数据的开源库之一,类似 JOSNModel,它可以直接将 JSON 数据转化为类实例在代码中使用。 由于 Swift 是一种静态语言
2017-05-15 14:31:19
2247
1
原创 微信 SQLite 数据库修复实践
1、前言众所周知,微信在后台服务器不保存聊天记录,微信在移动客户端所有的聊天记录都存储在一个 SQLite 数据库中,一旦这个数据库损坏,将会丢失用户多年的聊天记录。而我们监控到现网的损坏率是0.02%,也就是每 1w 个用户就有 2 个会遇到数据库损坏。考虑到微信这么庞大的用户基数,这个损坏率就很严重了。更严重的是我们用的官方修复算法,修复成功率只有 30%。损坏率高,修复率低,这两个问题都需要我
2017-05-08 11:29:49
4833
原创 关于 Block 中捕获 self 的分析
问题最近遇到一个已经使用了weak-strong dance的block依旧强引用了self的情况,好在block没被VC持有只是延迟释放,但这里的关键是用了weak_self的blcok理应不会强持有self才对,莫非之前的代码都有问题?下面是”有问题的”代码(为方便理解已删掉部分无关代码)- (void)requestQBossYellowDiamondAdvWithId:(int)appid
2017-05-08 11:28:39
1142
原创 Android APK 瘦身 - JOOX Music项目实战
导语JOOX Music是腾讯海外布局的一个音乐产品,2014年发布以来已经成为5个国家和地区排名第一的音乐App。东南亚是JOOX Music的主要发行地区,由于JOOX Music所面对的市场存在很多的低端机型,并且这些市场的网络环境相对来说是比较差的,为了提升下载转化率,对JOOX Music进行APK瘦身是必不可免的。JOOX Music版本大小变化JOOX Music(后面简称JOOX)现
2017-05-08 11:25:32
1951
1
原创 【腾讯Bugly干货分享】Android减包 - 减少APK大小
本文是对Google官方文档 Reduce APK Size 的翻译,点击“阅读原文”可以查看英文原文。 译者简介:damonxia(夏正冬),天天P图Android工程师用户经常会避免下载看起来体积较大的应用,特别是在不稳定的2G、3G网络或者在以字节付费的网络。这篇文章描述了怎样减少你的APK大小,这会让更多的用户愿意下载你的应用。理解APK的结构在讨论怎样减少应用大小之前,先了解A
2017-05-04 12:39:22
4875
1
原创 【腾讯Bugly干货分享】Android 新一代多渠道打包神器
关于作者: 李涛,腾讯Android工程师,14年加入腾讯SNG增值产品部,期间主要负责手Q动漫、企鹅电竞等项目的功能开发和技术优化。业务时间喜欢折腾新技术,写一些技术文章,个人技术博客:www.ltlovezh.com 。ApkChannelPackage是一种快速多渠道打包工具,同时支持基于V1和V2签名进行渠道打包。插件本身会自动检测Apk使用的签名方法,并选择合适的多渠道打包方式,对
2017-05-02 11:57:01
5563
2
原创 【腾讯Bugly干货分享】Android 插件技术实战总结
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/1p5Y0f5XdVXN2EZYT0AM_A前言安卓应用开发的大量难题,其实最后都需要插件技术去解决。现今插件技术的使用非常普遍,比如微信、QQ、淘宝、天猫、空间、携程、大众点评、手机管家等等这些大家在熟悉不过的应用都在使用。插件技术可以给项目开发带来巨大
2017-04-24 11:27:24
8603
2
原创 【腾讯Bugly干货分享】经典随机Crash之二:Android消息机制
本文作者:鲁可——腾讯SNG专项测试组 测试工程师 背景承上经典随机Crash之一:线程安全问题的模型好几次灰度top1、top2 Crash发生场景:在很平常、频繁的使用页面,打开一个界面,马上返回,piaji,挂了,估计用户心中有千万只草泥马在奔腾,手机QQ究竟怎么呢?找到开发童鞋,还是熟悉的对话:请教:这个Crash能复现吗?开发答:场景就在这,就是复现不了啊这里有个空指针,那我就
2017-04-17 16:33:30
1809
原创 【腾讯Bugly干货分享】经典随机Crash之一:线程安全
本文作者:鲁可——腾讯SNG专项测试组 测试工程师 背景Android QQ 在2016下半年连着好几个版本二灰 Crash 率都很高,如果说有新需求,一灰的 Crash 率高,还能找点理由,可是开发童鞋解过一灰的 Crash 单后,为啥二灰还有这么高的 Crash 率,我们还有覆盖全 SNG、不少外 BG 明星产品的终端稳定性测试工具 NewMonkey 随身版(NewMonkey系腾讯内
2017-04-10 10:41:31
3631
2
原创 【腾讯Bugly干货分享】舞动的表情包——浅析GIF格式图片的存储和压缩
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/v0pffOhjFWnVbU2lXjuEmw导语GIF(Graphics Interchange Format)原义是“图像互换格式”,是CompuServe公司在1987年开发出的图像文件格式,可以说是互联网界的老古董了。GIF格式可以存储多幅彩色图像,
2017-04-10 10:28:32
2664
原创 【腾讯Bugly干货分享】Android内存优化总结&实践
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/2MsEAR9pQfMr1Sfs7cPdWQ导语智能手机发展到今天已经有十几个年头,手机的软硬件都已经发生了翻天覆地的变化,特别是Android阵营,从一开始的一两百M到今天动辄4G,6G内存。然而大部分的开发者观看下自己的异常上报系统,还是会发现各种内存
2017-03-27 11:42:13
2875
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人