[置顶] Android 2016新技术
版权声明:分享技术,传播快乐。如果本博客对你有帮助,请在我的博客首页为我打赏吧!
2016你需要了解Android有以下新兴的技术与框架,有些也许还不成熟,但是你应该去了解下,也许就是未来的方向。
Kotlin
作为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。 http://t.cn/R2DK0SL
React Native
Facebook推出的针对移动应用的跨平台解决方案,目前还不成熟,但是由于Facebook推出,光环效应引起不少目光,这是不是未来暂且还没结论,但是有必要了解学习下。 http://t.cn/RbHmtOk
MVP
MVP越来越多的被Android社区所讨论,有点是能够让代码更清晰,但同时也会增加很多类,写起来更麻烦,不过对于一些不是很庞大的项目却是非常适合的。这里提供一个最先采用MVP模式的开源项目: https://github.com/pedrovgs/EffectiveAndroidUI
MVVM
因为官方支持 DataBinding,把 MVVM 直接带到 Android 中。它非常高效的开发效率,让你只关心你的数据和业务,从此数据绑定会更加常见。 http://t.cn/RbHmnhE
插件化
一般App上线之后出现bug需要重新提交新版本才能解决,这个就太慢了,由于iOS的审核原因,插件化在iOS开发常见,阿里业务方面这个特别需要,比 如双十一出了bug,不能眼睁睁的看着bug出现不管吧,所以阿里系衍生出了一系列热修复的框架,dexposed、AndFix,具体可以见这里详 解。 http://lirenlong.github.io/hotfix/
RxJava
最近响应式编程框架RxJava越来越受大家待见,RxJava让你异步任务更简洁方便,以我对技术的敏感性认为RxJava可能会越来越普遍,推荐大家学习。这里有一系列详细的资料教你学习。 https://github.com/lzyzsd/Awesome-RxJava
当你下定决心,准备前行的时候,剩下的只有坚持了!
AndroidApp源码推荐
当你已经做Android开发一段时间,并苦于进入瓶颈,这个时候阅读一些优秀App的源码是最好的学习进阶方式,借鉴一些优秀App源码的设计能获益很大。
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
最后推荐大家使用RecyclerView替代listview(4.0以上都是可以支持的,现在大家的手机都是支持的),关于RecyclerView,我推荐个大家点干货,或许就是你想要的。
http://blog.csdn.net/jdsjlzx/article/details/50462247
http://blog.csdn.net/jdsjlzx/article/details/49966101
支持我,打赏吧!
[置顶] Android 2016新技术的更多相关文章
- Android 2016新技术
Android 2016新技术 版权声明:本文为博主原创文章,未经博主允许不得转载. 2016你需要了解Android有以下新兴的技术与框架,有些也许还不成熟,但是你应该去了解下,也许就是未来的方向. ...
- [置顶] Android开发笔记(成长轨迹)
分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...
- [置顶] Android AlarmManager实现不间断轮询服务
在消息的获取上是选择轮询还是推送得根据实际的业务需要来技术选型,例如对消息实时性比较高的需求,比如微博新通知或新闻等那就最好是用推送了.但如果只是一般的消息检测比如更新检查,可能是半个小时或一个小时一 ...
- [置顶] [Android源码分析]inquiry result引起的上层变化分析
在上一篇文章中,我们详细分析了android是如何解析蓝牙反馈上来的搜索到的设备信息,本文将会继续分析这些信息到了上层之后是如何处理. 8.inquiry result引起的上层变化 我们知道inqu ...
- [置顶] Android四大组件之BroadcastReceiver
Android四大组件之BroadcastReceiver Broadcast Receiver 广播接收器,是一种负责接收广播消息并对消息做出响应的组件,和Service一样并不提供与用户交互的UI ...
- [置顶] Android图片异步加载之Android-Universal-Image-Loader
将近一个月没有更新博客了,由于这段时间以来准备毕业论文等各种事务缠身,一直没有时间和精力沉下来继续学习和整理一些东西.最近刚刚恢复到正轨,正好这两天看了下Android上关于图片异步加载的开源项目,就 ...
- [置顶]
Android 状态栏那些小坑?
背景:因为之前老板上次问我我们的app能不能自定义上面的状态栏我说可以啊!当时没管,今天试了下果然很多坑,之前github上也有很多大佬写了一个开源库有兴趣的可以点进去看下支持DrawLayout沉侵 ...
- [置顶]
Android 适配真要命?
原始尺寸场景 相信大家对上面也有所有耳闻另外就是如何计算屏幕的密度一般都是按照勾股定理例如中等屏幕密度 480^2+800^2开根号 然后除以当前屏幕尺寸3.5-4.2之间尺寸. 对于刚出来的那些An ...
- [置顶] Android应用开发之版本更新你莫愁
传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229 今天我们学习如何实现Android应用的自动更新版本功能,这是在各种语言编写的应用中都 ...
随机推荐
- stm32串口输出丢失第一个字符的问题及原因
因为TC和TXE 标志位在复位的时候会被置1,导致第一次没有发送. 所以在初始化串口的时候可以增加一句 USARTx->SR=0;(如 USART1->SR=0;)
- 小程序 web 端实时运行工具
微信小程序 web 端实时运行工具 https://chemzqm.github.io/wept/
- 初始Java 第一课程DVD项目
DVDSet 类: DVD DVD 删除功能 实现DVD借出功能 DVD还回功能
- angularjs不同页面间参数的传递
1.在路由中定义要接收的参数 .state('userDetails', { url: '/userDetails?phone', //以?为标识接收参数 templateUrl: 'assets/v ...
- 50道 Sql语句题
Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 ...
- 《精通C#》第十七章
进程简单的说就是一个正在运行的程序,包含了运行该程序所需要的一切资源以及内存分配.线程是进程的基本执行单元,在进程的入口点(类似main())创建的第一个线程称之为主线程.只有一个主线程的进程是线程安 ...
- iOS开发:自定义控件实现手势解锁
自定义控件 1.提供initWithFrame:及initWithCoder:方法来初始化: 2.解锁控件只负责展示.触摸.绘图等,存储轨迹.判断轨迹等操作不是解锁控件要做的.因此要定义一个代理,将轨 ...
- UITableViewCell 顶格
首先在ViewDidLoad 或者ViewWillAppear里边写 if ([_tabView respondsToSelector:@selector(setSeparatorInset:)]) ...
- DB2语句详细资料
http://www.2cto.com/database/201307/225809.html 1.数据操作语言(DML:select,delete,insert,update) <>查询 ...
- js面向对象的使用方法
标准用法: function Sprite(){ //函数内容部设置属性 this.name='shimily'; } //原型上设置方法 Sprite.prototype.show=function ...