Trinea

前 10 位用户

他的收藏:

5.  AntiVM
6.  condom
7.  dexmaker
10.  Pokemap
11.  RxMarkdown
17.  Small
18.  RocooFix
19.  redex
20.  dexmaker
23.  Sofa
26.  jdeferred
29.  ACDD
32.  jadx
34.  javapoet
37.  RxPaper
39.  RxBinding
40.  fresco
41.  Dagger
42.  animate
43.  Utils
46.  esperandro

他的推荐:

挺有意思的文章,虽然不深入,但大体介绍了存储器的厂商历史以及目前的形势
关于 Systrace 的介绍
详细分析了各个阶段的性能消耗,介绍了 native 服务端 前端的优化方式。
哪些公司能够赢家通吃——网络效应,边际成本大幅降低,技术领先。分享和共享解释的很好,各有利弊。闲置利用的同时对服务和标准适个挑战,共享能更好控制服务但同时需要更多资源的投入,对资本回报率是个挑战。
专注在某个小领域做精的产品
O 对设备唯一 ID 控制越来越严了,等铺开,一波厂商唯一 ID 规则得改
这是乐视挪用易道资金 13 亿的第三视角了,文章犀利,值得看看
请求限流器、并发请求限流器、基于优先级的负载降级、基于 Worker 利用率的负载降级
即时相机翻译,所见即所译
通过阻止接入的推送 SDK 链式唤醒其他 App,防止同一时刻过度消耗系统资源,从而提高自生 App 的性能体验
Android 内存回收原理分析
会换行的 LinearLayout
美团的也来了
介绍 Google “追踪圣诞老人” App 通过 abi splits、图片压缩、无用代码扫描、图片内存占用大小优化以及一些其他方式去精简 APK 大小
介绍利用 Google 挖掘痛点、确认痛点、了解现有产品、了解商业模式、在模仿基础上创新、产品完成后如何推广
可以买块树莓派搞搞
跟小程序类似无需下载,用完即走,不过在技术实现上完全是两类东西。可以更好的跟 Google 搜索引擎结合,对于 App 来说模块化不管产品还是技术设计上都能更清晰明了
Atlas 最早是 14 年因插件化逐渐被外部知晓,目前已经是手淘重要的容器化框架,承载手淘 20 个协作团队开发的 60+ 业务组件,支持组件化、动态更新、热修复等
这个版本在构建和设计支持上还是有挺大改进的
滴滴海外地图选型及设计、漫游网络处理、多业务下的 Android 项目组件化演进等。
所有 PPT 下载地址:https://github.com/QConChina/QConShanghai2016
观数据,查趋势,变方向
微信 Android 热修复框架
蚂蚁金服开源的 Android 编译辅助工具 Freeline,将之前漫长的编译过程缩短到秒级。集 Buck 和 Layoutcast 的优点,跨平台、全版本支持。
Android 4.1 对于 UI 绘制性能提升项目的介绍,包括 Vsync、Triple Buffer、Choreographer。 通过类似时钟中断的 Vsync 信号通知 CPU 实时处理; 通过 Triple Buffer 解决 16ms 内 CPU、GPU 未处理完导致延时问题; 通过 Choreographer 实现不同 Vsync 信号达到时,不同级别绘制回调的统一中控处理,如 CALLBACK_INPUT 优先级最高,CALLBACK_ANIMATION 优先级其次,CALLBACK_TRAVERSAL 优先级最低。
介绍了多种 App 进程保活手段及适用范围
Security Guide for Developers (实用性开发人员安全须知)
介绍 Android N 的混合编译运行模式,以及它对热补丁机制的影响
为了方便自动分析内存解决 Stop Allocation Tracking 卡死的问题,从 Android Studio 源码和 Dalvik 虚拟机源码分析 Allocation Tracking 的过程,从而达到不影响手机本身性能的情况下获取申请对象信息
An overview of ES6 features.
ES2015 [ES6] cheatsheet containing tips, tricks, best practices and code snippets
详细介绍了 JS 中调用 OC 方法的流程。在 JS 层和 C 层都有一个 Bridge,里面保存了相同的模块配置表,包含了 OC 暴露给 JS 的方法信息。JS 调用 OC 方法时,通过 Bridge 里的配置表查询得到 Module ID、Method ID、Callback ID 等传递给 OC,OC 通过模块配置表找到对应的方法执行后,调用回调。

需要注意的是 JS Bridge 并不会主动把数据传递给 OC Bridge,而是添加到一个队列中,当 OC 过来调用 JS 任意方法时,再把这个队列返回给 OC。具体如下图:

竞争激烈、用户习惯
从底层框架、学习成本、易用性、性能、工具链等多方面对 React Native 和 Weex 进行对比
ArchSummit 深圳 2016 Slides 下载合集,各端都有些不错的 Share

一个十几年开发经验的老司机对一些热点如 OO 与 FP、微服务、重构的看法,很多观点不谋而合。如:

  1. 设计的基本原则一直通用,不分语言。
  2. FP 早期能更快速完成任务,但 OO 比 FP 更适合复杂场景和大工程。
  3. 微服务的拆分粒度是个需要把握的度,过大不能充分解耦,过小则破坏了问题本身整体性同时使得系统复杂。
  4. 重构更多是系统模块层次结构性的重构,系统重新设计重新划分模块,对于系统内重构因为对外部职责单一所以可整体替换。

介绍了 Facebook 用 FlatBuffers 优化信息流等,介绍 FlatBuffers 的存储格式及 FlatBuffers 的好处,包括:

  1. 解析速度更快
  2. 内存占用更少
  3. 更灵活,可单独快速读取部分属性不用群不解析
  4. 跨平台、库很小、编译时类型校验
FlatBuffers 是一个高效的跨平台序列化类库,效率远高于常用的 JSON,可以在 C++、C#、C、Go、Java、JavaScript、PHP 和 Python 中使用。是 Google 开发的,是为了应用在游戏开发,以及其他注重性能的应用上。
从总体设计和原理上对 ImageLoader Picasso Glide 几个图片缓存进行对比,介绍他们各自的特性以及某些特性上的实现。

分享了携程目前移动端的网络服务情况。分析了网络服务可能的问题以及对应的优化。优化手段包括:

  1. 优化 DNS 解析和缓存
  2. 根据网络质量动态改变网络请求策略及配置
  3. 提供网络服务优先级和依赖机制
  4. 提供网络服务重发机制
  5. 减少数据传输量
  6. 通过 CDN 加速、动静资源分等手段优化海外网络性能
《ECMAScript 6 入门》是一本开源的 JavaScript 语言教程,全面介绍 ECMAScript 6 新增的语法特性,网站:http://es6.ruanyifeng.com/
Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules.
通过将修改后的类重新打一个 Patch Dex,并在 ClassLoader 加载 Dex 前将 Patch Dex 插入到 Dex 数组前面实现热修复,并解决类检查的 Preverify 问题。

此方案因为去掉了 Preverify,导致 Verify 与 Optimize 延迟到类加载时刻,会有一定性能损耗。

豌豆荚被阿里收购,致敬这个 Google Style 的公司。

经过六年,我相信的很多事情仍然没有改变。是的,我碰了不少钉子,明白努力不一定会有回报,好心也不一定能得到所有人的理解和认可... 但我并不想因此吸取什么「在中国不能这样或那样做事情」的教训。即使更难,我仍然会按照我认为对的方式去继续向前,这样子才能问心无愧。

创业没有终点,如果是一个使命驱动的团队或个人,根本没有「退出」这个选项。不管是最初创业,还是 2013 年选择保持独立、扩张品类,还是今天做出的选择,我们都会问自己,哪种选择才能帮助我们更好地达成我们的使命?成功与否,我始终认为要看自己追求的是什么,而不是某个世俗的标准。何况,即使按世俗的标准,我和我们的团队也是非常成功的,我们应该为自己创造的一切感到自豪。再过几年,豌豆荚拥有了更大的规模和影响力,我会很高兴在今天做出了这样的决定,让它发展得越来越好。

生命短暂,我还希望能创造出更有影响力的作品,继续专注在我真正 passionate 的事情上,帮更多的对世界保持兴趣的人去发现更大更美好的世界。也许在外界看起来,这些事情会更... 你懂的,但我觉得如果我没有做这些事情,哪怕赚了再多好几个数量级的钱,当我老去的时候,才会「因碌碌无为而感到悔恨」。那才是真正意义上的失败。

详细盘点了主流的开源数据库及存储方案和背后的设计思想以及适用场景,包括 MySQL、PostgreSQL、嵌入式存储引擎、memcached、Redis、Twemproxy、MongoDB、HBase、Cassandra、Spanner、中间件等等
关于国内几大互联网创始人、管理层、投资人的控制权争夺,以及如何保持创始人或者管理层的控制权建议,如:

网易的创始人,管理层,大股东丁磊一人独揽;

新浪的毒丸计划和管理层回购;

百度的牛卡方案,以及京东的AB股方案,同股不同权;

阿里的合伙人制度和投资方的授权。

天猫热修复对于启动阶段 Crash 的解决方法
由微信读书的 bang 开源的 JSPatch 是国内应用最广泛的 iOS 热修复方案,bang 详细介绍了 JSPatch 的起步、发展和下一步计划。替代早期的嵌入 Lua 引擎的 waxPatch,不断优化。
介绍了热补丁的作用,如在线修复 Bug、灰度发布、远程调试等。

全面对比了支付宝的 AndFix、QZone 的 Classloader 方案优缺点,如 AndFix 无法替换类,无法新增变量,兼容性麻烦,QZone 的方案对性能有影响同时 patch 包可能过大。同时简单介绍了他们自己的方案——全量替换新的 Dex 的实现及优缺点。

信息量很大,最后参考的文章里也有些不错的信息。

React Native 的 ES5 ES6 混用会让新手不知所然,如:

require VS import

React.createClass VS extends Component

module.exports VS export default

getInitialState VS constructor

利用 Java 的 Instrumentation 修改 Eclipse Plugin 运行时行为——通过 ASM 框架修改 Android 打包时的字节码,从而实现 App 日志手机,比如网络性能监控、Activity 生命周期监控等
Java Instrumentation 指的是可以用独立于应用程序之外的代理(agent)程序来监测和协助运行在JVM上的应用程序。Instrument 提供 premain 和 agentmain 方式,可分别在程序运行前和运行中监控虚拟机运行情况,同时可用来对程序做一些动态修改
简单介绍了 JSX 的不同场景的使用方式以及发布流程
Android 默认的 MultiDex 的方案可能会引起应用首次加载时出现明显的黑屏甚至明显的 ANR,微信对比了自己 Dex 类分包和加载方式的方案和 Facebook 的方案,并进行结合优化解决了这一问题
详细介绍了已经初步成型的菜鸟网络发展史以及目前的五大网络生态图
MultiDex 之前,64k 方法数与 LinearAlloc 线性内存大小的限制曾经是很头疼的问题,这里详细分析了这两个问题的原因以及预防方式
Android 多渠道打包工具,利用 Zip 文件格式中最后的 Comment 部分写入不同的渠道号,利用该技巧同样可以写入其他信息,如 Apk 来源的页面,可见 一种为 Apk 动态写入信息的方案
领导与管理的区别,如何更好的领导知识工作者,尤其是程序员这个团体

他分析的源码:

他提交的开源项目:

1.  aoe
4.  detekt
6.  atlas
7.  android
10.  MyDiary
12.  apk-parser
14.  crosswalk
16.  AndRouter
21.  Pury
22.  jaop
26.  Recovery
27.  Filmy
30.  Jgraph
32.  xposed-art
34.  Dali
38.  Onboarding
42.  LogReport
46.  ticker
47.  PokeFaker
48.  GiftCard
51.  TEmptyView
52.  RxGroups
53.  TurboDex
54.  VirtualApp
57.  touchdemo
61.  BookShelf
62.  SideBar
64.  Spotlight
65.  talalarmo
66.  RocooFix
67.  redex
70.  jdeferred
71.  dexposed
72.  jadx
73.  squidb
74.  javapoet
76.  Paper
81.  HotFix
83.  AndFix
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools