你能在本篇文章中收获什么?
- 认识目前流行的框架
- rx系列全家桶
- 高性能的图片压缩上传
- 网络图片性能优化
- AndroidM 动态权限管理
- 内存泄漏优化
- RecyclerView适配器优化
- 注解释放双手
- 超简洁的http请求
- 一次布局,全尺寸适配
- android路由框架 支持中间件
- 秒级编译android Studio Run
本篇文章基于2016年已经很成熟&热门的第三方框架的一个提炼.所以库都附带GitHub地址.是新人进阶丶新项目启动丶重构框架等必备脚手架工具.避免重复造轮子才是我们的初衷.(我们从不写代码,我们只是Github的搬运工.)
- 本篇同步Github仓库:https://github.com/BolexLiu/MyNote (欢迎star)
- 加入大鸡排QQ群一起撸码成长:110801914
-
注:以下排名不分先后次序
他们是什么?一句话告诉你
- 注:一句话仅是他们的简介,若是你并不熟悉它们,还请参考GitHub给出的示例或其他文章.本篇不详细介绍,只做资源聚合与简介
RxJava
- 观察者模式的事件消息交互框架
RxAndroid
- 支持在Android 中通过Rx切换到主线程
RxBus
- 提供如EventBus一般使用的Rx框架
RxPermissions
- 提供在Rx上来管理Android M (Android6.0)的动态权限框架
RxLifecycle
- 解决Rx因为观察者在订阅后Fragment持有context导致内存泄漏的问题
Eventbus
- 翻译为事件总线,用于解决android中的事件交互和回调.同Rx一样也是观察者模式
retrofit
- android中的通讯注解框架,用于发送http请求.配合Rx能达到高效的开发速度
butterknife
- AS中通过自动导入生成注解,解放findViewById的痛苦.并且它是编译时注解,效率爆高
BaseRecyclerViewAdapterHelper
- 如名字一样他是RecyclerView的适配器超类库.支持各种姿势写adapter,轻松减少大量重复代码.
glide
- 目前最好的之一的图片加载框架.压缩质量高丶效率高丶性能好是他的特点
AndroidAutoLayout
- 国内大神张鸿洋出的布局框架.很不错.减少大量布局调优工作
zxing
- 老牌二维码扫描框架
compressor
- 图片压缩框架,压缩率很高.支持配置.Api友好
RxBinding
- 可以实现数据层与View层的绑定,当数据发生变化,View会自动更新UI。还有其他功能非常强大(MVVM)
LitePal
- ORM数据框架比原生好用.
Jsoup
- 一个Html解析框架.用于爬网页后进行剔除数据
ASimpleCache
- 一个为android制定的 轻量级的 开源缓存框架。轻量到只有一个java文件(由十几个类精简而来)。
ARouter
- 用于在Android平台,从外部(浏览器等),内部直接导航到页面、服务的中间件,你值得拥有.
freeline
- 蚂蚁聚宝团队在Android平台上的动态替换的编译方案,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想, 并对代码及资源编译流程做了深入的性能优化。
对Android平台,我们通常所说的在线热更新就是,例如对已经发布在应用市场上的宿主APK,当我们从crash统计平台上发现某个函数调用有bug,导致经常性crash,这时,可以在本地开发一个补丁APK,并发布到服务器中,宿主APK下载这个补丁APK并集成后,就可以很容易修复这个crash
-
安卓热更新之Nuwa实现步骤
http://blog.csdn.net/snailbaby_soko/article/details/69524380
- 美团Android热更新开源框架Robust的使用教程:
http://blog.csdn.net/snailbaby_soko
热修复
-
Android 热修复 Tinker接入及源码浅析
-
Android 热修复 Tinker 源码分析之DexDiff / DexPatch:
-
Android热修复学习之旅——HotFix完全解析:
ReactNative
-
React-native完整实例—妹子图片查看:
-
RN开发
Kotlin:
-
作为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。在 Android 开发上,使用 Kotlin 并不会让你付出什么代价
http://ragnraok.github.io/using-kotlin-to-write-android-app.html
Dagger
- 依赖注入并不是什么新技术,但是使用在 Android 确实一个新的尝试。Android App 越来越被当成严肃的大型项目来构建,很多在以前大型服务器开发上使用的技术都被应用到了移动开发。Android 开发分模块开发,使用 Dagger 来松耦合模块。特别值得一体的是,Dagger 2 现在由 Google 亲自接管。
Material Design:
已经红遍了大江南北,这方面的讨论实在太多了,而且各种支持库都有了,特别是 Google 官方出了一个支持库 Android Design Support Library。
Sketch3
-
这是一个专为设计移动端 UI 的设计工具,作为开发者,不用懂那么复杂的 PS 使用,也可以做非常专业设计:
Design Support Library
-
关于这个网上已经有很多资料了,补充几个学习的好链接。
-
MD的资源文件
https://material.io/guidelines/resources/sticker-sheets-icons.html
-
实例源码
https://link.zhihu.com/?target=https%3A//github.com/chrisbanes/cheesesquare
-
GitHub循序渐进、非常易懂的教程
https://inthecheesefactory.com/blog/android-design-support-library-codelab/
-
比较完整的教程
http://blog.csdn.net/feelang/article/details/46348079
MVP
MVP越来越多的被Android社区所讨论,有点是能够让代码更清晰,但同时也会增加很多类,写起来更麻烦,不过对于一些不是很庞大的项目却是非常适合的。
这里提供一个最先采用MVP模式的开源项目:
https://github.com/pedrovgs/EffectiveAndroidUI
MVVM
因为官方支持 DataBinding,把 MVVM 直接带到 Android 中。它非常高效的开发效率,让你只关心你的数据和业务,从此数据绑定会更加常见。
RxJava
最近响应式编程框架RxJava越来越受大家待见,RxJava让你异步任务更简洁方便,以我对技术的敏感性认为RxJava可能会越来越普遍,推荐大家学习。这里有一系列详细的资料教你学习。 https://github.com/lzyzsd/Awesome-RxJava
另外几个动态加载及热部署框架汇总
1.DroidPlugin
用途:动态加载
使用案例:360手机助手
GitHub地址:https://github.com/Qihoo360/DroidPlugin
ppt介绍:https://github.com/Qihoo360/DroidPlugin/tree/master/DOC
Demo:https://github.com/SpikeKing/wcl-plugin-test-app
详解:
http://blog.csdn.net/yzzst/article/details/48093567
2.AndFix
用途:热修复
GitHub地址:https://github.com/alibaba/AndFix
讲解:
http://blog.csdn.net/yzzst/article/details/48465031
http://blog.csdn.net/qxs965266509/article/details/49816007
http://blog.csdn.net/yaya_soft/article/details/50460102
3.dexposed
用途:热修复
GitHub地址:https://github.com/alibaba/dexposed
讲解:
http://blog.csdn.net/yzzst/article/details/47954479
http://blog.csdn.net/yzzst/article/details/47659987
http://www.jianshu.com/p/14edcb444c51
4.Small
用途:动态加载
GitHub地址:https://github.com/wequick/Small
Demo:https://github.com/cayden/MySmall
- DynamicAPK
用途:动态加载、热修复
案例:携程
GitHub地址:https://github.com/CtripMobile/DynamicAPK
详解:http://www.infoq.com/cn/articles/ctrip-android-dynamic-loading
6.ClassPatch
用途:热修复
GitHub地址:https://github.com/Jarlene/ClassPatch
详解:http://blog.csdn.net/xwl198937/article/details/49801975
7.ACDD
用途:动态加载
GitHub地址:https://github.com/bunnyblue/ACDD
8.HotFix
用途:热修复
GitHub地址:https://github.com/dodola/HotFix
该项目是基于QQ空间终端开发团队的技术文章实现的
9.Nuwa
用途:热修复
GitHub地址:https://github.com/jasonross/Nuwa
详解:http://www.jianshu.com/p/72c17fb76f21/comments/1280046
10.DroidFix
用途:热修复
GitHub地址:https://github.com/bunnyblue/DroidFix
详解:http://bunnyblue.github.io/DroidFix/
11.AndroidDynamicLoader
用途:动态加载
GitHub地址:https://github.com/mmin18/AndroidDynamicLoader
Demo:https://github.com/mmin18/AndroidDynamicLoader/raw/master/host.apk
AndroidApp源码推荐
iosched
iosched项目是Google I/O的官方app,绝佳的学习项目。
https://github.com/google/iosched
android-UniversalMusicPlayer
也是Google官方作品,代码量不大、注释清晰,简单但全功能的音乐播放器。
https://github.com/googlesamples/android-UniversalMusicPlayer
android-topeka
这个项目是Google前段时间刚发出来,通过这个app,你还可以学到如何设计你app的交互和视觉以更好的和MaterialDesign搭配。
https://github.com/googlesamples/android-topeka
Google的项目有些时候对于初学者有点困难,下面就推荐两个完整的轻量的学习项目。
9GAG
9GAG是我个人的开源练习项目,教你使用Studio、Gradle以及一些流行的开源库快速开发一个不错的Android客户端。
https://github.com/stormzhang/9GAG
AnimeTaste
代码家开源的一个线上关注动画的一个App,同样适合初学者学习。
https://github.com/daimajia/AnimeTaste
Awesome-MaterialDesign
Awesome-MaterialDesign - MaterialDesignCenter改名为Awesome-MaterialDesign,优化了布局,新增了不少库。
https://github.com/lightSky/Awesome-MaterialDesign
ui库
非常多的ui及特效
https://github.com/wasabeef/awesome-android-ui
ChipsLibrary
在Android EditText中实现打Tag功能。
https://github.com/AndroidDeveloperLB/ChipsLibrary
bitmapMesh - 拉窗帘效果。
ObservableScrollView - 在滚动的视图观测滚动事件的Android库 它易于与在Android 5.0 Lollipop中引入的工具条Toolbar相交互,并能够帮助实现Material Design apps的外观。
https://github.com/ksoichiro/Android-ObservableScrollView