平安科技移动开发二队技术周报(第三十一期)

平安科技移动开发二队技术周报(第三十一期)

@author ASCE1885的 Github 微博 CSDN 知乎

平安科技移动开发二队技术周报(第三十一期)_第1张图片

Android开发

1)Android应用架构

Android开发生态圈的节奏非常之快。每周都会有新的工具诞生,类库的更新,博客的发表以及技术探讨。如果你外出度假一个月,当你回来的时候可能已经发布了新版本的Support Library或者Play Services。

2)EventBus源码研读 (上) (中) (下)

EventBus 是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent, Handler, BroadCast 在 Fragment,Activity,Service,线程之间传递消息.优点是开销小,使用方便,可以很大程度上降低它们之间的耦合,使得我们的代码更加简洁,耦合性更低,提升我们的代码质量。类似的库还有 Otto ,今天就带大家一起研读 EventBus 的源码.

3)Android内存优化杂谈

Android内存优化是我们性能优化工作中比较重要的一环,这里其实主要包括两方面的工作:

  • 优化RAM,即降低运行时内存。这里的目的是防止程序发生OOM异常,以及降低程序由于内存过大被LMK机制杀死的概率。另一方面,不合理的内存使用会使GC大大增多,从而导致程序变卡。
  • 优化ROM,即降低程序占ROM的体积。这里主要是为了降低程序占用的空间,防止由于ROM空间不足导致程序无法安装。

4)React-native Android 热更新

继上次React-native Android 初次踩坑之旅的分享之后,这次分享的内容是React-native Android 热更新实现。本文目录:

  • 网上已知方案
  • 分析与发现
  • 新的热更新方案

5)面试时,问哪些问题能试出一个Android应用开发者真正的水平?

一般面试时间短则30分钟,多则1个小时,这么点时间要全面考察一个人难度很大,需要一些技巧,这里我不局限于回答题主的问题,而是分享一下我个人关于如何做好Android技术面试的一些经验。

6)React Native for Android 热部署图片解决方案

热部署时,我们期望升级包中包含js代码与图片资源。bundle的热部署网上已经有两种方案了,一种是用反射,一种是利用RN自带函数,将bundle初始化时直接放到指定目录下,之后通过替换bundle文件实现代码热部署。我们希望图片也可以实现热部署,下面是一个比较简单的解决方案。

iOS开发

1)漫谈iOS程序的证书和签名机制

接触iOS开发半年,曾经也被这个主题坑的摸不着头脑,也在淘宝上买过企业证书签名这些服务,有大神都做了一个全自动的发布打包(不过此大神现在不卖企业证书了),甚是羡慕和崇拜。于是,花了一点时间去研究了一下iOS这套证书和签名机制,并撰文分享给需要的朋友。

2)iOS开发-KVO的奥秘

在iOS开发中,苹果提供了许多机制给我们进行回调。KVO(key-value-observing)是一种十分有趣的回调机制,在某个对象注册监听者后,在被监听的对象发生改变时,对象会发送一个通知给监听者,以便监听者执行回调操作。最常见的KVO运用是监听scrollView的contentOffset属性,来完成用户滚动时动态改变某些控件的属性实现效果,包括渐变导航栏、下拉刷新控件等效果。

3)Objective-C 自动生成分类属性方法

分类,在 iOS 开发中,是常常需要用到的。在分类里添加属性也是常有的事,但分类中无法添加实例变量,编译器也无法为提供分类中属性的 getter 和 setter 方法了。一般而言,需要手动来实现这两个方法,如果只是用来存储变量的话,关联对象很容易做到这一点。

4)Auto Layout的最佳实践

Auto Layout是个很棒的工具,作为开发者,它可以让我们保持神志清醒,还能让我们这些懒人们在设置frame的时候远离“神奇数字”。

但是任何技术都不是完美无缺的,我必须得说我花了太多的时间来debug那些缺失的约束条件,或者对于一些藏在层级结构深处的视图,添加一个冲突的约束条件就会把整个布局毁掉,当这些事情发生的时候简直是天崩地裂!

5)Swift 2 throws 全解析 - 从原理到实践

本文从 Swift 2 中新加入的 throws 关键字的用法入手,通过在 SIL 和汇编层面的分析,深入剖析了 Swift 中异常机制这一新特性的背后机理。在此基础上,本文进一步对异常处理相关的 ErrorType 接口进行了一些研究。结合 Swift 2 中错误处理方式的特点,作者对 throws 这一关键字在实际使用时的场景和适用范围进行了示例和说明,并给出了一些建议。

技术纵横

1)我眼里的架构师

几年前,我对架构师的印象,停留在:画漂亮的设计图,研究高性能,技术攻关一把手。反正就是各种技术高手的标签都可以贴上去。最近两三年,和自己做的事情、职责多少有一点点关系,思路发生了一些变化,总结下来,我觉得架构师的关注点应该是:

  • 架构团队
  • 架构技术
  • 架构流程规范
  • 架构产品
  • 架构客户

2)作为一个程序员,进步完全取决于自己

我做程序员已经32年了,而且我一直努力让自己学习各种技术来保持进步。我知道很多像我这个年纪的人自从拿到计算机学士学位以后就再也没有学习过任何新知识,因此他们最终会被淘汰。我花了6年的时间学习化学,但是一旦当我成为一名程序员,我发现我需要了解在我工作之外发生了些什么,而且我有不断学习的欲望并一直在尝试各种各样的编程。

3)手机淘宝 521 性能优化项目揭秘

为了让用户更顺畅更方便地实现这一切,做到“如丝般顺滑”,双十一前夕手机淘宝成立了“521”(我爱你)性能优化项目,在日常优化基础之上进行三个方面的专项优化攻关,分别是1)H5页面的一秒法则;2)启动时间和页面帧率提升20%;3)Android内存占用降低50%。优化过程中遇到的困难,思考后找寻的方案,实施后提取的经验都会在下面详细地介绍给读者。

4)为什么有些大公司技术弱爆了?

今年年初,到一家互联网公司实习,该公司是国内行业龙头。不过技术和管理方面,却弱爆了。那里的程序员,每天都在看邮件,查问题工单。这些问题,多半是他们设计不当,造成的。

5)实际经历告诉你,写一本技术书能赚多少钱

我的书出版后,经常有朋友问我赚了多少钱。我有时说没多少钱,有时说按付出回报比来看那点版税对不住付出的辛苦。有的朋友微微一笑很倾城,表示理解;有的朋友笑着撇撇嘴,那意思是我没有实话实说。

欢迎关注我们团队的技术公众号

平安科技移动开发二队技术周报(第三十一期)_第2张图片

你可能感兴趣的:(平安科技移动开发二队技术周报(第三十一期))