腾讯Bugly

其他

动态下发 so 库在 Android APK 安装包瘦身方面的应用

调用的生命周期,后续维护成本低(这也是一般的插件化方案需要做到的目标)。同时缺点也是非常明显的:根据项目历史包袱的具体情况,模块拆解成本可能比动态化改造的收益还大。因此,代码隔离方案比较适合新增的
2020年2月18日
其他

对字符串匹配算法的一点理解

算法,大多都有它产生的动机。字符串匹配算法的发展,也符合这个规律,在不断重复”发现问题->解决问题”的过程中越来越完善。下面通过几个简单的算法介绍来体会一下这个路径。
2019年4月18日
其他

Android app反调试与代码保护的一些基本方案

Android自问世以来得以迅速发展,各大手机厂商纷纷投入成本开发、设计开发自己的Android系统,从2016年开始,Android已经超越ios成为全球最有影响力的操作系统。针对于Android
2019年3月28日
其他

杂谈Android线程优先级

在没有明确设置的情况下,一个线程初始的优先级等于其parent的优先级。如果我们从UI线程来创建一个子线程的,那么这个子线程的优先级就等于UI线程的优先级。
2019年2月28日
其他

并发编程与锁的底层原理

更大的缓存容量,需要更大的成本。更快的速度,需要更大的成本。均衡缓存的空间、速度、成本,才能更有市场竞争力,也是现在我们看到的情况。当然,随着技术的升级,成本下降,空间、速度也就能继续稳步提高了。
2019年1月17日
其他

《移动端本地 H5 秒开方案探索与实现》

一般情况下,我们只要对照这个列表,对比差异就基本能搞定绝大部分前端性能问题了。不过我们在里面仔细再分析下,对首屏启动速度影响最大的就是网络请求,包括请求
2018年5月24日
其他

手Q Android缓存监控与优化实践

2.强行清理,可能导致功能异常。系统内部代码逻辑可能会受到影响,而且影响无法预期。手Q当前使用ClassLoader查找资源的业务功能会受到影响。后期新增业务无法预期,清理会导致系统功能失效。
2018年3月22日
其他

《手Q Android线程死锁监控与自动化分析实践》

上图中提取了字符串“SQLiteConnectionPool.waitForConnection”为等待LockSupport锁的共同特征,在线程的等待锁中加入同一个“dbconnection”锁。
2018年3月8日
其他

《Pluto - iOS 上一个高性能的排版渲染引擎》

文字(TextItem),图片(ImageItem),按钮(ButtonItem)。如果这些组件不满足需求,还可以通过扩展组件来完成封装。实现自定义控件的大概流程如下:
2018年2月8日
其他

Android JNI出坑指南

在natvie线程中调用了AttachCurrentThread连接到虚拟机,但线程退出前未调用DetachCurrentThread取消连接,会导致线程无法正常退出,有类似错误日志:”thread
2017年11月30日
其他

《Android 创建线程源码与OOM分析》

另外一个需要考虑的事,如果没有指定stackSize,默认的是多少呢?Java层的Thread类默认stackSize是0,传给native层也是0,于是在native层有这样一段代码。
2017年11月9日
其他

《Android基础:Fragment,看这篇就够了》

//将str从Fragment传递给Activity}在Fragment的onAttach()中,将参数Context强转为OnFragmentInteractionListener对象:
2017年10月19日
其他

Android 7.0中ContentProvider实现原理

}ContentResolver在每个进程中都存在有且唯一的实例,其在ContextImpl构造函数中就已经初始化了,其初始化的实际对象ApplicationContentResolver。
2017年10月12日
自由知乎 自由微博
其他

《手管iPhoneX的适配总结》

SafeArea帮助我们将View设置在整个屏幕的可视化部分,即使把NavigationBar设置为透明的,系统也认为SafeArea是从NavigationBar的bottom开始的。
2017年10月12日
其他

iOS 11 安全区域适配总结

如果你的APP中使用的是自定义的navigationbar,隐藏掉系统的navigationbar,并且tableView的frame为(0,0,SCREENWIDTH,
2017年9月21日
其他

腾讯祭出大招VasSonic,让你的H5页面首屏秒开!

虽然动态直出方案下,页面首屏无法通过离线预推等方式进行加载优化,但前面优化积累的经验给我们提供了思路:要优化白屏问题,核心还是得从提升资源加载速度方向入手。所以我们重点在资源加载方面进行了深度优化。
2017年8月17日
其他

移动 H5 首屏秒开优化方案探讨

的方式还带来兜底的好处,在一些意外情况离线包出错的时候可以直接访问线上版本,功能不受影响,此外像公共资源包更新不及时导致版本没有对应上时也可以直接访问线上版本,是个不错的兜底方案。
2017年8月17日
其他

iOS App 启动性能优化

find,然后等上那么几分钟(是的你没有看错,真的需要好几分钟甚至需要更长的时间),就可以得到一个列表了。由于这个工具还不是100%靠谱,可根据这个列表,在Xcode中手动检查并删除不再用到的类。
2017年8月10日
其他

QQ会员基于 Hybrid 的高质量 H5 架构实践

第二、如何让H5开发更快?好的产品是运营出来的,沃尔玛每周都有打折,电商有6.18和双11双12,同样QQ会员也需要有持续的H5运营活动以保持用户的活跃和留存,而H5组件化是我们提高开发效率的手段。
2017年8月3日
其他

页面结构化在 Android 上的尝试

例如上图的tabContainer,imgsContainer,listContainer,每一个模块都有自己的渲染模板(xml),请求的数据的CGI(数据源),自身的事件绑定(listener)
2017年7月20日
其他

Android 平台 Native 代码的崩溃捕获机制及实现

信号的检测进程陷入内核态后,有两种场景会对信号进行检测:进程从内核态返回到用户态前进行信号检测进程在内核态中,从睡眠状态被唤醒的时候进行信号检测当发现有新信号时,便会进入下一步,信号的处理。(3)
2017年7月6日
其他

H5 和移动端 WebView 缓存机制解析与实战

在data/应用package下生成database与cache两个文件夹,请求的Url记录是保存在webviewCache.db里,而url的内容是保存在webviewCache文件夹下。
2017年6月15日
其他

Android GC 原理探究

调用子类实现的成员函数FinishPhase执行GC结束阶段。所以不论是并发还是非并发,都会引起stopworld的情况出现,并发的情况下单次stopworld的时间会更短,基本区别和。3.5
2017年4月13日
其他

那些年,我们一起写过的“单例模式”

cache,大图、拼图模板等的管理PerformanceLog:性能打点DataReport:数据上报最后是其实不太适合使用饿汉模式,可以修改为懒汉模式的类:LoginManager:登录管理和
2017年3月9日
其他

WKWebView 那些坑

UIGraphicsBeginImageContextWithOptions(self.bounds.size,YES,self.contentScaleFactor);
2017年1月19日
其他

彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法

缓存数据标记为已过期只是告诉客户端不能再直接从本地读取缓存了,需要再发一次请求到服务器去确认,并不等同于本地缓存数据从此就没用了,有些情况下即使过期了还是会被再次用到,具体下面会讲到。
2016年12月15日
其他

美团大众点评 Hybrid 化建设

自身会做一些缓存,只要打开过的资源,他都会试着缓存在本地,第二次需要访问的时候他直接从本地读取,但是这个读取其实是不太稳定的东西,关掉之后,或者说这种缓存之后,系统会自动把它清掉,我们没法进行控制。
2016年12月1日
其他

Redex 初探与 Interdex:Andorid 冷启动优化

这个优化项会完全打乱原有的dex分布,甚至dex的数量也会发生改变,用来校验分dex是否注入成功的Foo类,以及补丁patch也被打乱,对启动时分dex注入,补丁等逻辑都有很大影响。
2016年11月24日
其他

基于 Webpack & Vue & Vue-Router 的 SPA 初体验

//在实例创建之后同步调用。此时实例已经结束解析选项,这意味着已建立:数据绑定,计算属性,方法,watcher/事件回调。但是还没有开始
2016年9月8日
其他

【Dev Club 话题讨论】程序员的成长离不开哪些软技能?

喜欢分享,然后每次写作的过程都是对内容理解一个提升的过程,分享以后,再和其他同学一起讨论,反馈,更加增进对内容的理解。刚开始也写不好,然后慢慢坚持、锻炼。一点一点就成就了现在的自己。
2016年9月8日
其他

【Dev Club 分享】H5 视频直播那些事

分享内容简介:目前视频直播,尤其是移动端的视频直播已经火到不行了,基本上各大互联网公司都有了自己的直播产品,所以对于直播的一些基本知识和主要技术点也要有所了解,本次分享就向大家介绍一下其中的奥秘。
2016年8月11日
其他

深入理解 ButterKnife,让你的程序学会写代码

就是要给生成的代码添加一个属性咯?不不不,是添加一组注入关系,后面生成代码时,注解管理器就需要根据这些解析来的关系来组织生成的代码。所以,要不要再看一下生成的代码,看看还有没有新的发现?
2016年7月14日
其他

移动App入侵与逆向破解技术-iOS篇

AnAppClass,say); }到这里为止,我们已经知道了怎么在目标程序注入自己的代码,那么我们怎么知道需要hook哪些方法?怎么找到关键点进行实际的破解呢?下面讲一下常见的app入侵分析方法
2016年7月7日
其他

HTML 5 视频直播一站式扫盲

表示一个实例,即将来要生成的文件名可以先自己随便设置一个。更多配置可以参考:https://github.com/arut/nginx-rtmp-module/wiki/(复制此链接到浏览器打开)
2016年6月30日
其他

手把手教你逆向分析 Android 程序

imageview,然后编译,再反编译,取出相应的smali等文件,比如贴到已经反编译好的地图的里面,把开启这个苍老师图片下载的启动代码放到合适位置,最后再把地图重新打包签名,就ok
2016年5月12日
其他

TRIM:提升磁盘性能,缓解Android卡顿

手机,在使用不到一年之后都会“卡顿”得让人抓狂!根据我们初步的测试数据,手机长期所使用产生的磁盘碎片可以使得磁盘的写入效率下降为原来的50%。是不是有一种“吓死本宝宝了”的感觉。
2016年3月3日
其他

浅析 Android 的窗口

mView.dispatchDetachedFromWindow(); } ... destroyHardwareRenderer(); setAccessibilityFocus(null,
2016年2月1日
其他

Android 开发绕不过的坑:你的 Bitmap 究竟占多大内存?

的像素点阵,还不就是个矩阵,真是你中有我,我中有你的交情啊。那么什么时候用矩阵呢?大图小用用采样,小图大用用矩阵。还是用前面模糊图片的例子,我们不是采样了么?内存是小了,可是图的尺寸也小了啊,我要用
2016年1月14日
其他

H5 缓存机制浅析 移动端 Web 加载性能优化

缓存不能禁用。缓存容量是12MB,不分HOST,过期的缓存会最先被清除。如果都没过期,应该优先清最早的缓存或最快到期的或文件大小最大的;过期缓存也有可能还是有效的,清除缓存会导致资源文件的重新拉取。
2015年12月10日