《Android经验分享》周刊第11期

《Android经验分享》收录国内外最近一周热门的技术博客以及优秀的类库,星期一傍晚将准时更新给大家

微信公众号:Android经验分享
QQ讨论群:386067289

本文已授权微信公众号:Android经验分享,在微信公众号平台原创首发。

热点新闻
1.安卓8.0多项新特性曝光:看片利器
离Google I/O 2017开发者大会还有两个月左右的时间,该大会最大的看点就是下一代安卓系统Android 8.0,按照以往的传统其代号应该是Android O,“O”有可能是Oreo(奥利奥),但目前还无法确定。现在关于安卓8.0的传闻开始崭露头角了,最新的传闻来自外媒9to5Google。

2.安卓8.0突然就来了!Android O预览版发布下载
安卓8.0突然发布了!谁也没有想到,谷歌突然发布了安卓8.0的预览版安卓O。谷歌已经面向开发者发布了首个Android O预览版,这也应该是安卓8.0系统的雏形。Android O的命名符合安卓系统的规律,安卓系统的代号往往是甜点的名字,而甜品的首字母则按照字母表来排列。目前尚未制定Android O的“O”是什么甜点,按照猜测,可能是“奥利奥”(Oreo)或者是“Oatmeal cookie”(燕麦饼干)。

热门博客
1.手机QQ Hybrid 的架构演进
涂强,英文ID是StrongTu,于2005年加入腾讯,主要开发PC版本的QQ,后来负责PC版QQ UI引擎的时候做过一些尝试,即在PC客户端上集成浏览器内核,做H5和native混合开发的框架性工作。

2. 一种Android客户端架构设计分享
技术发展日新月异,业界各种Android客户端架构设计,五花八门,但我们不能简单地说哪种架构更好,因为脱离业务谈架构是没有任何意义的,适合业务的才是好架构。而架构也不是一成不变的,随着业务的发展,也许当初设计的架构已不足以支撑目前的业务,那么就需要改变之前的架构。接下来将分享下我们Android客户端的架构设计,在App的某个业务发展阶段或许有一些参考意义。

3.Android可伸缩布局-FlexboxLayout(支持RecyclerView集成)
我们在开发的过程中会不可避免的引用一些第三方库,比如网络请求库、图片加载库等等。就拿图片加载库来说,程序中不会只有一个地方来引用到此库,可能有N个类会用到此库来显示图片。这种情况下,就可以通过一个中间层来引用“第三方图片加载库”。这样做的好处是不管第三方图片加载库换成Picasso还是Glide,只需改变中间层,其他的一行代码都不需要改动。阅读文章,了解详细方案。

4.Android性能优化(五)之细说Bitmap
Bitmap内存模型,Bitmap的内存回收,Bitmap占有多少内存?如何计算Bitmap占用的内存?Bitmap如何复用? Bitmap如何压缩? Bitmap的总结。

5.Android 调用系统功能实现图片选择器,你可能会遇到的问题汇总
图片选择器在手机应用中屡见不鲜,设置头像、聊天传图等常见类似场景都需要使用。为了保持不同设备上体验的一致性和较好的兼容性,比较稳妥的做法是在应用内自实现相机拍照、相册选图和图片裁剪功能。

6.关于Android RecyclerView的那些开源LayoutManager
Google默认为RecyclerView提供了LinearLayoutManager、StaggeredGridLayoutManager、GridLayoutManager,已经可以满足很多开发需求了,但是实际开发过程中,免不了出现一些更加新颖的交互设计。于是,便从Github上整理了一波关于RecyclerView可以使用的LayoutManager,在实际开发中需要用到时,遇到相似的效果时即可随手拈来,提高效率。

7.Android 系统中,那些能大幅提高工作效率的 API 汇总(持续更新中...)
“条条大路通罗马。”工作中,实现某个需求的方式往往不是唯一的,这些不同实现方式不仅表现在代码质量上,还影响着我们的工作效率。就像,在 Android 系统中,总有那么一些鲜为人知的 API 能够减少我们很多零碎的工作量。于是,就想凭着一些经验,整理一些常用的,找个地方归纳总结,也供日后翻阅。

8.震惊!如此多的 Android 开发技巧!
一些很不错的Android开发技巧,这个项目翻译自 android-tips-tricks去掉了一些我认为不重要的,对我使用过的东东做了评价,同时翻译了一些自己没有注意到的知识点的文章。

9.Android 新推出基于物理的动画库,完全诠释什么叫做弹簧效果
Android 最近推出一个新的基于物理学的动画支持库,命名为:SpringAnimation(弹簧动画),发布在 Support Library 25.3.0 里面。昨天,Google Android 研发工程师「Nick Butcher」在 Twitter 上发布推文予以公布,并在 gist 给出了一个简单示例代码,演示 SpringAnimation的核心操作。

10.美团点评移动网络优化实践
网络优化对于App产品的用户体验至关重要,与公司的运营和营收息息相关。这里列举两个公开的数据:“页面加载超过3秒,57%的用户会离开。“Amazon页面加载延长1秒,一年就会减少16亿美金营收。

受欢迎的类库
1.ChangeTabLayout
一款炫酷的TabLayout

2.ChannelTagView
一个新闻频道管理 view

3.AutoScrollViewPager
轻量级的可以无限且自动滑动的 ViewPager

4.XXPictureCompress
一个 jni 图片压缩库 使用简单 一句话调用 无第三方依赖, 框架很小, 效果比鲁班要好

5.XXDialog
一个万能dialog

6.CoordinatortablayoutDemo
简单模仿 Airbnb app 的首页导航

7.ILayoutAnimationController
自定义LayoutAnimationController,一行代码搞定布局动画!

8.InputMethodHolder
A keyboard listener for Android which by hooking the InputMethodManager. 通过 hook 监听系统键盘显示

9.AppUpdate
Android 检测更新库

10.AppMethodOrder
一个能让你了解所有函数调用顺序的 Android 库(无需侵入式代码)

完整项目

1.CloudReader
云阅:一款基于网易云音乐UI,使用Gank.Io及豆瓣api开发的符合Google Material Design的Android客户端。项目采取的是MVVM-DataBinding架构开发,现主要包括:干货区、电影区和书籍区三个子模块。DIY网易云音乐原来是如此Cool~

技术要点:

1、基本遵循Google Material Design设计风格。
2、干货集中营内容与豆瓣电影书籍内容。
3、MvvM-DataBinding的项目应用。
4、NavigationView搭配DrawerLayout的具体使用。
5、透明状态栏使用与版本适配。
6、高仿网易云音乐歌单详情页。
7、RxBus代替EventBus进行组件之间通讯。
8、ToolBar的全方面使用。
9、Glide加载监听,获取缓存,圆角图片,高斯模糊。
10、水波纹点击效果详细使用与适配。
11、RecyclerView下拉刷新,上拉加载。
12、基于DataBinding的ViewHolder。
13、基于DataBinding的BaseActivity和BaseFragment。
14、Fragment懒加载模式。
15、SwipeRefreshLayout结合RecyclerView下拉刷新上拉加载。
16、CoordinatorLayout+Behavior实现标题栏渐变。

效果预览图:
1.jpg
2.jpg

周刊外话
1.2017 年初、阿里、腾讯、百度、华为、京东、搜狗和滴滴面试题汇集(更新篇)
前一段时间和大牛们交流了一下,据反馈现在Android岗位也没有以前那么多了,没这么好找了,面临2016年寒冬季节,大量公司模仿O2O模式导致死掉企业的很多,在加之培训机构大量的培训人,导致供大于求,当然这不意味着饱和,只是市场更趋于合理一些(只要技术好不用怕的)。以下是(2016、2017 、阿里、腾讯、百度、华为、京东、搜狗和滴滴面试题汇集)

更多精彩文章请关注微信公众号"Android经验分享":这里将长期为您分享Android高手经验、中外开源项目、源码解析、框架设计和Android好文推荐!

扫一扫加我哦

推荐阅读更多精彩内容