技术标签: 学习计划
今天看了一篇文章,说的是程序员的宿命就是不断地学习!
我是个喜欢不断学习新知识,探索新东西的人,无论是对于技术还是生活,我都有着足够的好奇心,我觉得只有这样,人生才会更快乐一些。然而,在学习的过程中,归纳和总结知识,整合资源的能力也是非常重要的。所以,今天正好有点时间,就整合一下Android学习路上进阶的内容。
在文章开始之前想先分享两篇不错的文章。
我的 Android 开发实战经验总结 ——简书上看到的一篇不错的文章
http://www.jianshu.com/p/4f152bc8f4f3
还有一篇是Android学习之路 stormzhang 张哥的文章。
Android开发如何进阶?
http://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=403072488&idx=1&sn=12a1deee3c00da644ad3844032a2374f&scene=0#wechat_redirect
接下来是我整理的 Android进阶学习内容:
okhttp
square 开源的 http 工具类
项目地址:https://github.com/square/okhttp
文档介绍:http://square.github.io/okhttp/
特点:(1) 支持 SPDY( http://zh.wikipedia.org/wiki/SPDY )协议。SPDY 协议是 Google 开发的基于传输控制协议的应用层协议,通过压缩,多路复用(一个 TCP 链接传送网页和图片等资源)和优先级来缩短加载时间。
(2) 如果 SPDY 不可用,利用连接池减少请求延迟
(3) Gzip 压缩
(4) Response 缓存减少不必要的请求
Retrofit
RESTFUL API 设计
项目地址:https://github.com/square/retrofit
文档介绍:http://square.github.io/retrofit/
EventBus
greenrobot 的开源项目
项目地址:https://github.com/greenrobot/EventBus
原理剖析文档:EventBus
文档介绍:https://github.com/greenrobot/EventBus#general-usage-and-api
特点:(1) 支持在不同类型的线程中处理订阅,包括发布所在线程,UI 线程、单一后台线程、异步线程
(2) 支持事件优先级定义,支持优先级高的订阅者取消事件继续传递,支持粘性事件,是不是跟系统的有序广播、粘性广播很像啊
(3) 不是基于 annotations
(4) 性能更优
(5) 体积小
(6) 支持单例创建或创建多个对象
(7) 支持根据事件类型订阅
Otto
Square 的开源项目,基于 Guava 的 Android 优化
项目地址:https://github.com/square/otto
文档介绍:http://square.github.io/otto/
EventBus 与 Otto 的功能及性能对比文档
EventBus 与 Otto 性能对比 Demo Apk
Android-Universal-Image-Loader
图片缓存,目前使用最广泛的图片缓存,支持主流图片缓存的绝大多数特性。
项目地址:https://github.com/nostra13/Android-Universal-Image-Loader
原理剖析文档:Android-Universal-Image-Loader
Demo 地址:https://github.com/Trinea/TrineaDownload/blob/master/universal-imageloader-demo.apk?raw=true
文档介绍:http://www.intexsoft.com/blog/item/74-universal-image-loader-part-3.html
picasso
square 开源的图片缓存
项目地址:https://github.com/square/picasso
文档介绍:http://square.github.io/picasso/
特点:(1)可以自动检测 adapter 的重用并取消之前的下载
(2)图片变换
(3)可以加载本地资源
(4)可以设置占位资源
(5)支持 debug 模式
fresco
一款强大的图片缓存工具,由 Facebook 开发
项目地址:https://github.com/facebook/fresco
文档介绍:http://frescolib.org/
特点:(1) 两个内存缓存加上磁盘缓存构成了三级缓存
(2) 支持流式,可以类似网页上模糊渐进式显示图片
(3) 对多帧动画图片支持更好,如 Gif、WebP
(4) 更多样的显示,如圆角、进度条、点击重试、自定义对焦点
(5) 更多样的加载,如支持 EXIF、全面支持 WebP
(6) 支持 Android 2.3+
Glide
Glide 是一个 android 平台上的快速和高效的开源的多媒体资源管理库,提供 多媒体文件的压缩,内存和磁盘缓存, 资源池的接口。
它可以最大性能地在 Android 设备上读取、解码、显示图片和视频。Glide 可以将远程的图片、视频、动画图片等缓存在设备本地便于提高用户浏览图片的流畅体验。
项目地址:https://github.com/bumptech/glide
特点:
(1) GIF 动画的解码
(2) 本地视频剧照的解码
(3) 支持缩略图
(4) Activity 生命周期的集成
(5) 转码的支持
(6) 动画的支持
(7) OkHttp 和 Volley 的支持
butterknife
利用 annotation 帮你快速完成 View 的初始化,减少代码
项目地址:https://github.com/JakeWharton/butterknife
文档介绍:http://jakewharton.github.io/butterknife/
ButterKnifeZelezny
用于快速生成ButterKnifeView 注入代码的 Android Studio/IDEA 插件
项目地址:https://github.com/inmite/android-butterknife-zelezny
Dagger
依赖注入,适用于 Android 和 Java
项目地址:https://github.com/square/dagger
原理剖析文档:Dagger
文档介绍:http://square.github.io/dagger/
文章浏览阅读3.7k次。前言这篇文章是这个月发布的,采用的方法和参考文献较新,具有一定的参考价值。通过阅读这篇应用型的创新论文,可以很好的对比之前的综述,找到自己的研究创新点。摘要特种视频(本文特指暴力视频)的智能分类技术有助于实现网络信息内容安全的智能监控。针对现有特种视频多模态特征融合时未考虑语义一致性等问题,本文提出了一种基于音视频多模态特征融合与多任务学习的特种视频识别方法。首先,提取特种视频的表观信息和运动信息随时空变化的视觉语义特征及音频信息语义特征;然 后,构 建 具 有 语义保持的共享特征子空间,以实现_融合多种特征的多任务分类
文章浏览阅读290次,点赞5次,收藏5次。加密后的文件在企业内部环境中可以正常打开和编辑,但一旦脱离受控环境,未经授权则无法打开或显示乱码,从而有效防止了文件非法获取和滥用。总之,天锐绿盾文档加密系统通过源头加密、权限管理、行为审计、文件外发控制等多种手段,为各类型文件提供可靠的安全防护,确保企业数据资产在复杂的网络环境下得到充分的安全保障。对于设计行业的CAD图纸等高价值敏感数据,天锐绿盾能够无缝集成到绘图软件中,确保无论是本地保存还是网络传输,图纸始终处于加密状态,仅授权用户可以正常查看和修改。天锐绿盾 | 办公透明加密、数据防泄漏。
文章浏览阅读148次。由于我是最小化安装,需要在安装后进行一些配置1. 设定启动级别[root@home ~]# systemctl set-default multi-user.target2. 设定网络[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0TYPE=EthernetPROXY_METHOD=noneBROWSER_..._redhat 7 初始化配置
文章浏览阅读2k次。在AndroidManifest.xml中,activity android:label="@string/app_name" android:name=".HomeActivity" android:theme="@style/android:Theme.Wallpaper"> intent-filter
文章浏览阅读222次,点赞3次,收藏9次。两者都创建线程的方式,不同之处在于前者是类,后者是接口。使用的时候重写他们即可。
文章浏览阅读753次,点赞2次,收藏2次。寄存器是计算机中的一种短时存储器,通常用于存储临时数据和指令。它的速度比内存要快得多,因为它直接位于 CPU 内部。寄存器通常很小,只能存储几个字节的数据。..._寄存器是什么
文章浏览阅读352次。方法1:public static decimal ToDecimal(this string obj) { if (string.IsNullOrWhiteSpace(obj)) { return 0; } double result = 0; if (obj.ToUpper().Contains("E")) { _c# 可科学计数转为decimal
文章浏览阅读1.1k次。网名tmtony,95年毕业广州中山大学,在外企埋头做了四年的MIS系统开发,主要使用汇编语言、VFP、VB及ORACLE进行软件开发, 99年在利玛公司任高级程序员,开始使用ACCESS和SQL SERVER开发大型CAPMS8 ERP系统, 实施了近六家大型企业的ERP系统, 01年在国土局任职,主要负责GIS 、WEBGIS以及OA系统的开发,同时使用ASP建设政府网站,02年到今任职汇龙科
文章浏览阅读137次。#1、什么是Linux?在开始之前,相信我们都听说过几种常见操作系统,DOS操作系统,Windows操作系统,Unix操作系统,以及Linux操作系统。现在我们就可以来讲讲Linux这个以高效性和灵活性著称的操作系统,它是基于源代码的方式进行开发的。是一套免费使用和自由传播的类似UNIX的操作系统,这个系统是全世界各地成千上万的程序员设计和实现的。它不仅支持多任务和多线程的操作,而且在大部分的..._1、 linux基本命令的使用: (1) 在根目录下创建一个workspace目录,且在该目录下创
文章浏览阅读406次。Baumer工业相机堡盟工业相机如何通过BGAPISDK设置硬件触发模式(C++)_工业相机触发电压
文章浏览阅读496次,点赞2次,收藏5次。【实验结论】#2-28实现一个简单的菜单程序,运行时显示“Menu:A(dd) D(elete) S(ort) Q(uit),Selete one:”提示用户输入。A表示增加,D表示删除,S表示排序,Q表示退出。输入为A、D、S时分别提示“数据已经增加、删除、排序。”,输入Q时程序结束。(1)if...else...语句,break,continue控制 #includ..._编写一个完整的程序,实现一个简单的菜单程序c++
文章浏览阅读2.9k次。Python开发软件可根据其用途不同分为两种,Python代码编辑器和Python集成开发工具,两者配合使用极大的提高Python开发人员的编程效率。掌握调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等操作。_pythontutor