redex

字节跳动团队发布Android Framework笔记,知乎上已获万赞

|▌冷眼眸甩不掉的悲伤 提交于 2020-12-18 02:10:55
Android Framework 的知识有多重要,其广泛的应用在各个领域。像掉帧监控,函数插装,慢函数检测,ANR 监控,启动监控,都需要对 Framework 有比较深入的了解,才能知道怎么去做监控,利用什么机制去监控,函数插桩插到哪里,反射调用该反射哪个类哪个方法哪个属性 另外 Framework 作为 Android 框架层,为 App 提供了众多 API 去调用 ,但是很多机制都是 Framework 包装好了给 App 来用的,如果不知道这些机制的原理,那么很难去在这基础上做优化。 举个例子,如果你了解 Android App 的启动机制,优化启动速度的时候会更得心应手: 定制什么样的 StartingWindow;什么时候可以拿到图片的宽高;DelayLoad 怎么做才会更合适;Service 什么时候启动可以不影响启动速度;Activity onResume 回调的时候真的可见了么?Redex 为什么会加快应用启动速度? 再比如我们经常说的 Handler,MessageQueue,Looper。看源码你就可以更好的理解那些概念: ThreadLocal 做什么的;Thread 和 Handler 的关系;为什么不能在子线程更新 UI? 还有很多栗子,这里就不一一论述学习Android Framework的重要性了。 如何学习Android Framework

大牛耗时一年:深入探索 Android 包体积优化,共三万字建议收藏上

北慕城南 提交于 2020-04-05 17:47:48
由于文章特别长,建议先收藏再阅读。 在 Android 性能优化的知识体系当中,包体积优化一直被排在优先级比较低的位置,从而导致很多开发同学对自身应用的大小并不重视。在项目发展的历程中,一般可划分为如下三个阶段: 初创期 => 成长期 => 成熟期 通常来说,当应用处于成长期的中后阶段时,才会考虑去做系统的包体积优化,因此,只有在这个阶段及之后,包体积优化带来的收益才是可观的。 那么,包体积优化能够给我们带来哪些 收益 呢?如何全面对应用的包体积进行 系统分析 及 针对性优化呢?在这篇文章中,我们将一起进行深入地分析与探索。 1、瘦身优化及 Apk 分析方案介绍 1、瘦身优势 我们首先来介绍下,为什么我们需要做 APK 的瘦身优化? 主要有 三个方面 的原因: (1)下载转化率 APK 瘦身优化在实际的项目中优先级是比较低的,因为做了之后它的好处不是那么明显,尤其是那些还没有到 稳定期 的项目,我们都知道,App 的发展历程是从 项目初期 => 成长期 => 稳定期,对于处于 发展初期与成长期 的项目而言,可能会做 启动优化、卡顿优化,但是一般不会做 瘦身优化,瘦身优化 最主要的好处是对应用 下载转化率 的影响,它是 App 业务运营的重要指标之一,在项目精细化运营的阶段是非常重要的。 因为如果你的 App 与其它同类型的 App 相比 Apk 体积要更小的话,那么你的 App

Please install double-conversion library when building redex

谁说胖子不能爱 提交于 2020-01-02 17:49:49
问题 I am trying to build redex - unfortunately it fails with: checking for ceil in -ldouble-conversion... no configure: error: Please install double-conversion library But I installed this library: ➜ double-conversion git:(master) ✗ sudo scons install [sudo] password for ligi: scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... scons: `install' is up to date. scons: done building targets. I installed it from https://github.com/google/double

Is my understanding of a reducible expression i.e. redex correct?

浪尽此生 提交于 2019-12-24 08:25:59
问题 Programming in Haskell by Hutton says: An expression that has the form of a function applied to one or more arguments that can be ‘reduced’ by performing the application is called a reducible expression, or redex for short. Is a reducible expression i.e. redex exactly a function application where the function is not the result of another function application, equivalently, a function application where the function is either a function name or a lambda expression? Is either of the above two

Compiling Facebook Redex on OSX Yosemite

感情迁移 提交于 2019-12-12 02:53:52
问题 So I installed redex on Ubuntu last night and everything went smoothly. I'm having trouble today setting it up on my Mac. There are 3 errors I'm getting at this autoreconf -ivf && ./configure && make && make install step. Please install double-conversion library Please install google-glog library Please install google-gflags library I dont get these all at once. I got the first one so I followed the solution here but that didn't work so I just deleted that check from the configure.ac file.

Please install double-conversion library when building redex

被刻印的时光 ゝ 提交于 2019-12-06 09:38:00
I am trying to build redex - unfortunately it fails with: checking for ceil in -ldouble-conversion... no configure: error: Please install double-conversion library But I installed this library: ➜ double-conversion git:(master) ✗ sudo scons install [sudo] password for ligi: scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... scons: `install' is up to date. scons: done building targets. I installed it from https://github.com/google/double-conversion I had the same problem and found the solution online. What you have to do is open "configure.ac"