yuxingxin

Google Play 应用内购最佳实践

在出海应用开发过程中,通常会接入 Google Play支付,而常见的三个覆盖场景:即新购、恢复和异常处理,是构建一个稳健支付系统所必须的。下面我将基于Google Play Billing Library,对这三个场景的实现细节、关键API和最佳实践进行详细拆解。 场景一:用户新购买流程 (New Purchase Flow) 这是最基础的“快乐路径”,流程的每一步都至关重要。 详细步...

Android三方开源库之BlockCanary源码分析

我们手机屏幕帧率通常是60,也就意味着每秒钟有60个画面出现,即16.6ms就要有一个画面渲染出来,Android系统每隔16.6ms发出一个Vsync信号,触发对View进行渲染,如果在这个时间内渲染成功,那么画面正常显示,否则就会出现丢帧的情况,如果掉帧频率很高,也就导致了卡顿。 我们回顾一下View刷新机制,App启动时,会通过ActivityThread类的main方法,创建一个主...

Android Framework源码分析之屏幕刷新机制以及Choreographer

生活中,我们经常遇到别人说手机画面卡,这里的卡对应我们开发者来说,表示的就是掉帧(jank)或者画面撕裂(tearing),我们先来说说一些概念: 帧(Frame):动画中的单幅画面,相当于电影胶片中的一个镜头,一帧就是一幅静止的画面,连续帧动起来就是我们看到的动画。 帧率(Frame Rate):每秒传输的图片画面的帧数,也可以理解为画面每秒钟刷新几次...

Android Framework源码分析之Activity、Window、View之间的关系

每当我们显示一个界面的时候,都是通过start一个Activity的方式,对于显示布局内容,也只是通过在onCreate方法里面setContentView就可以,剩下的都是Activity帮我们做了,我们自始至终也没有创建过window或者view,那么这背后都发生了什么 ?这篇文章梳理一下这三者的关系 setContentView 我们从setContentView源码开始: //...