##教程
1. [适配 Android N 多窗口特性的 5 个要诀](http://chinagdg.org/2016/04/5-tips-for-preparing-for-multi-window-in-android-n/)
Android N 的一大新特性是支持多窗口,为此开发者应该做哪些准备工作呢?这里 Google 工程师 Ian Lake 告诉你 5 大要诀.使用多窗口分屏功能,能够并排地同时看到两个应用。你可能非常兴奋,想知道这是如何做到的,于是立刻去查阅文档,看看是什么新 API 实现了这一独特功能。
2. [从案例学习RxAndroid](http://blog.chengdazhi.com/index.php/140)(By Dominic)
如果你在阅读这篇文章,相信你一定很想了解RxJava以及如何在Android应用中使用它。可能你已经见过RxJava的代码了,但仍然有些疑惑,愿你能在这篇文章里找到答案。当我第一次使用RxJava的时候我只是在照搬代码,这些代码能跑起来,但是我对RxJava的基础部分仍然存在误解,而且我找不到好的源码来学习。所以为了理解RxJava,我不得不一点一点学习,踩了不少坑。
3. [Android MVP 详解(上)](http://www.jianshu.com/p/9a6845b26856)(By DIY-green)
MVP 在 Android 上的使用其实已经有挺长一段时间了,长到似乎有点“过时”了(目前风头正劲的是MVVM),那为什么现在还要讲 MVP。今天我想要讨论它的主要原因有如下几点:1\. MVP 并未过时,值得我们研究 2\. 目前关于 MVP 的资料都不算太详尽 3\. 由于能力和时间有限,本人拖到最近才下定决心写
4. [Android MVP 详解(下)](http://www.jianshu.com/p/0590f530c617#) (By DIY-green)
总体架构可以被分成四个部分 :Presentation:负责展示图形界面,并填充数据,该层囊括了 View 和 Presenter (上图所示的Model我理解为 ViewModel -- 为 View 提供数据的 Model,或称之为 VO -- View Object)。
5. [理解Android编译命令](http://gityuan.com/2016/03/19/android-build/)
准备好编译环境后,编译Android源码的第一步是 source build/envsetup.sh,其中source命令就是用于运行shell脚本命令,功能等价于”.”,因此该命令也等价于. build/envsetup.sh。在文件envsetup.sh声明了当前会话终端可用的命令,这里需要注意的是当前会话终端,也就意味着每次新打开一个终端都必须再一次执行这些指令。起初并不理解为什么新开的终端不能直接执行make指令,到这里总算明白了。
6. [理解Android进程创建流程](http://gityuan.com/2016/03/26/app-process-create/)
本文要介绍的是进程的创建,先简单说说进程与线程的区别。进程:每个App在启动前必须先创建一个进程,该进程是由Zygote fork出来的,进程具有独立的资源空间,用于承载App上运行的各种Activity/Service等组件。进程对于上层应用来说是完全透明的,这也是google有意为之,让App程序都是运行在Android Runtime。大多数情况一个App就运行在一个进程中,除非在AndroidManifest.xml中配置Android:process属性,或通过native代码fork进程。
7. [微信Android客户端后台保活经验分享](http://t.cn/Rq2EKfL)
国产机器大多缺乏GMS,在国内GCM也不稳定(心跳原因),第三方通道需要考虑安全问题和承载能力,最后微信选择使用自己的长连接。而国外, GCM作为辅助,微信无法建立长连接时,才使用GCM。之前看到大家在聊各种Java网络框架,而微信实际上都是没用上的。早年的微信,直接通过Java socket 实现。微信v5.0后,考虑各系统平台的统一,开始使用自研c++组件。
8. [探索react native首屏渲染最佳实践](http://t.cn/Rq2Jfd2)
react native给了我们使用javascript开发原生app的能力,在使用react native完成兴趣部落安卓端发现tab改造后,我们开始对由react native实现的界面进行持续优化。目标只有一个,在享受react native带来的新特性的同时,在体验上无限逼近原生实现。
9. [从零开始的Android新项目4 - Dagger2篇](http://blog.zhaiyifan.cn/2016/03/27/android-new-project-from-0-p4/)
Dagger - 匕首,顾名思义,比ButterKnife这把黄油刀锋利得多。Square为什么这么有自信地给它取了这个名字,Google又为什么会拿去做了Dagger2呢(不都有Guice和基于其做的RoboGuice了么)?希望本文能讲清楚为什么要用Dagger2,又如何用好Dagger2。
10. [APK瘦身记,如何实现高达53%的压缩效果](http://t.cn/RqwozhY)
APK是Android系统安装包的文件格式,关于这个话题其实是一个老生常谈的题目,不论是公司内部,还是外部网络,前人前辈已经总结出很多方法和规律。不过随着移动端技术近两年的飞速发展,一些新的思维方式和优化方法也逐渐涌现和成熟起来。笔者在实践过程中踩过一些坑,收获了一些经验,在这里做个思考和总结,所以随笔给大家,希望对大家从事相关工作的时候有所帮助和参考,同时也是抛砖引玉,希望大家共同探讨这个开放性的话题。
11. [Android应用安全开发之浅谈加密算法的坑](http://t.cn/RqwK8Hz)
Android开发中,难免会遇到需要加解密一些数据内容存到本地文件、或者通过网络传输到其他服务器和设备的问题,但并不是使用了加密就绝对安全了,如果加密函数使用不正确,加密数据很容易受到逆向破解攻击。还有很多开发者没有意识到的加密算法的问题。
12. [5个导致主线程卡顿较鲜为人知的元凶](http://blog.nimbledroid.com/2016/03/21/ways-to-hang-main-thread-zh.html)
广大安卓开发者都知道主线程是APP用来响应用户交互的线程,因此应该避免执行耗时操作。通常来说,耗时方法导致主线程卡住超过16*N毫秒时,APP界面将会丢掉N帧。让我们把这些耗时长的方法称作卡顿函数(Hung Method)。在本文中,我们首先看一个典型的卡顿函数案例,接着仔细分析5个较鲜为人知的导致主线程卡顿原因。
##开源库&项目
1. [android-architecture](https://github.com/googlesamples/android-architecture)
Google 官方开源的关于 Android App 架构的示例项目
2. [FlexLayout](https://github.com/mmin18/FlexLayout)
比 LinearLayout 和 RelativeLayout 更强大的布局,而且可以在 layout params 中使用 java 表达式
3. [CatLoadingView](https://github.com/Rogero0o/CatLoadingView)
效果很酷的加载动画 View
4. [Conductor](https://github.com/bluelinelabs/Conductor)
full-featured framework
5. [welcome-coordinator](https://github.com/txusballesteros/welcome-coordinator)
可以帮助你在应用中创建很棒效果的的库
6. [RxAndroidBle](https://github.com/Polidea/RxAndroidBle)
RxJava + BLE = Powerful
7. [kotlin-jetpack](https://github.com/nsk-mironov/kotlin-jetpack)
用 kotlin 写的一系列有用的扩展方法
8. [StatusBarUtil](https://github.com/laobie/StatusBarUtil)
一个为Android App 设置状态栏的工具类
9. [Takt](https://github.com/wasabeef/Takt)
一个可以测量 FPS 的库
##工具
1. [jabba](https://github.com/shyiko/jabba)
JDK 版本管理器,支持Oracle JDK 和 Zulu OpenJDK
##视频
1. [Android 性能模式 第三季(中文)](http://chinagdg.org/google-videos/?vid=XMTUxMjc1NjQwMA==&plid=26946826)
##技术之外
1. [一个前端的自我修养](http://t.cn/Rq2EI3g)
2. [真正的聪明人,都是怎样从普通人中脱颖而出的?](http://t.cn/RqwnFad)
- 前言
- Android开发技术周报 Issue#90
- Android开发技术周报 Issue#89
- Android开发技术周报 Issue#88
- Android开发技术周报 Issue#87
- Android开发技术周报 Issue#86
- Android开发技术周报 Issue#85
- Android开发技术周报 Issue#84
- Android开发技术周报 Issue#83
- Android开发技术周报 Issue#82
- Android开发技术周报 Issue#81
- Android开发技术周报 Issue#80
- Android开发技术周报 Issue#79
- Android开发技术周报 Issue#78
- Android开发技术周报 Issue#77
- Android开发技术周报 Issue#76
- Android开发技术周报 Issue#75
- Android开发技术周报 Issue#74
- Android开发技术周报 Issue#73
- Android开发技术周报 Issue#72
- Android开发技术周报 Issue#71
- Android开发技术周报 Issue#70
- Android开发技术周报 Issue#69
- Android开发技术周报 Issue#68
- Android开发技术周报 Issue#67
- Android开发技术周报 Issue#66
- Android开发技术周报 Issue#65
- Android开发技术周报 Issue#64
- Android开发技术周报 Issue#63
- Android开发技术周报 Issue#62
- Android开发技术周报 Issue#61
- Android开发技术周报 Issue#60
- Android开发技术周报 Issue#59
- Android开发技术周报 Issue#58
- Android开发技术周报 Issue#57
- Android开发技术周报 Issue#56
- Android开发技术周报 Issue#55
- Android开发技术周报 Issue#54
- Android开发技术周报 Issue#53
- Android开发技术周报 Issue#52
- Android开发技术周报 Issue#51
- Android开发技术周报 Issue#50
- Android开发技术周报 Issue#49
- Android开发技术周报 Issue#48
- Android开发技术周报 Issue#47
- Android开发技术周报 Issue#46
- Android开发技术周报 Issue#45
- Android开发技术周报 Issue#44
- Android开发技术周报 Issue#43
- Android开发技术周报 Issue#42
- Android开发技术周报 Issue#41
- Android开发技术周报 Issue#40