前言 Dagger2是现在非常火的一个依赖注入框架,目前由Google维护,在Github上面已经有12K star了.Dagger2的入门门槛其实是比较高的,据了解,目前有很多Android工程师对Dagger2还不甚了解,没有用上Dagger2或者是用法有问题,本文的主旨就是让Android工程师快速掌握Dagger2并且优雅简洁地使用Dagger2.这里为大家奉上一份Dagger2 在Android上的最佳实践教程. 注意: Dagger2框架的上手难度是比一般的框架更难一些的,所以在练习…
前言 CSS样式排序是指按照一定的规则排列CSS样式属性的定义,排序并不会影响CSS样式的功能和性能,只是让代码看起来更加整洁.CSS代码的逻辑性并不强,一般的开发者写CSS样式也很随意,所以如果不借助工具,不太容易按照既定的顺序来定义CSS属性,这是前端程序员很少给CSS样式属性排序的最主要原因. 尽管给CSS样式属性排序需要花费一些精力,但从代码的可读性和可维护性角度来考虑,这些付出还是值得的.如果CSS属性按照一定的规则排序,在开发过程中可以防止属性的重复定义,代码的检查者也能很清晰地查看…
0x00 前言简述 SSL/TLS 简单说明 描述: 当下越来越多的网站管理员为企业站点或自己的站点进行了SSL/TLS配置, SSL/TLS 是一种简单易懂的技术,它很容易部署及运行,但要对其进行安全部署的情况下通常是不容易. 如果想掌握如何配置一个安全的 web 服务器或应用,往往需要系统管理员…
关于Dagger2是啥,用法网上已经有很多了.不过听说你已经很多次Dagger2从入门到放弃了,来来,让我这个老中医给你治一治.老夫手法纯熟,不会让你有任何痛苦的,放心读下去吧. 本文同步自 博主的私人博客 wing的地方酒馆 诊断 咳咳,看你这架势病的不清,应该是陌生代码恐惧症,你看看下面的代码.会不会害怕. private ShipDetailPresenter mShipDetailPresenter; mShipDetailPresenter = DaggerShipDetailComp…
最近出去面试,总会被问到我们项目现在采用的什么开发框架,不过据我的经验网络框架(volley)+图片缓存(uIl)+数据库(orm)+mvp,不过现在这套框架比较好了,现在采用什么呢?Rxjava + retrofit + dagger2 + mvp.好,那我们接下来说说由这几种库来组成我们一个常用的开发框架(当然其他的还有一些什么推送什么的我们另当别论). 借用google的一个MVP的说明图 项目总览 与常规的 MVP 不同的是,在 modle 层和 view 层通过EventBus 连接,…
闭包(Closure) 闭包是一个函数和词法环境的组合,函数声明在这个词法环境中 词法作用域 看下面一个例子 function init() { var name = 'Mozilla'; // name是局部变量 function displayName() { // displayName()是内部函数,一个闭包 alert(name); // 使用外部函数声明的变量 } displayName(); } init();   init()创建了一个局部变量name和一个函数displayNa…
相信很多读者关于==和equals懂了又懵,懵了又懂,如此循环,事实上可能是因为看到的博客文章之类的太多了,长篇大论,加上一段时间的洗礼之后就迷路了.本篇文章再一次理清楚.当然如果觉得本文太啰嗦的话,当然我也考虑到了,因为我也不喜欢长篇大论啰里啰嗦比比叨叨胡搅蛮缠的文章,毕竟大家入门java 的时候就知道个大概了,因此记住一句话就好了:equals本身和 == 没有区别,对于基本数据都是比较值,对于引用类型,则比较的是所指向的对象的地址!其他类在继承Object类之后对equals方法重写,所以…
java8已经在日常开发编码中非常普遍了,掌握运用好它可以在开发中运用几行精简代码就可以完成所需功能.今天将介绍CompletableFuture的在生产环境如何使用实践.CompletableFuture类作为Java 8 Concurrency API改进而引入,熟悉的同学应该了解在Java 9 也有对CompletableFuture有一些改进,橘子之后再进入讲解.阅读这篇文章需要知道的前置知识点有,函数式编程,线程池原理等.还不熟悉的同学可以看看之前的文章,话不多说,开始吧. 为了更好的…
Spring如何解决的循环依赖,是近两年流行起来的一道Java面试题. 其实笔者本人对这类框架源码题还是持一定的怀疑态度的. 如果笔者作为面试官,可能会问一些诸如"如果注入的属性为null,你会从哪几个方向去排查"这些场景题. 那么既然写了这篇文章,闲话少说,发车看看Spring是如何解决的循环依赖,以及带大家看清循环依赖的本质是什么. 正文 通常来说,如果问Spring内部如何解决循环依赖,一定是单默认的单例Bean中,属性互相引用的场景. 比如几个Bean之间的互相引用: 甚至自己…
作为一名Java程序员,我们需要知道Java代码是怎么运行的.最近复习了深入理解Java虚拟机这本书,做了一下笔记,希望对大家有帮助,如果有不正确的地方,欢迎提出,感激不尽. java 代码运行主要流程 本文主要讲解流程如下: java源文件编译为class字节码 类加载器把字节码加载到虚拟机的方法区. 运行时创建对象 方法调用,执行引擎解释为机器码 CPU执行指令 多线程切换上下文 编译 我们都知道,java代码是运行在Java虚拟机上的.但是java是一门面向对象的高级语言,它不仅语法非常复…
源码学习第一步,Spring源码编译 之所以写这么一篇文章是因为群里的小伙伴在编译源码时碰到了问题,再加上笔者自身正准备做一个源码的注释版本,恰好也需要重新编译一份代码,至于为什么要将源码编译到本地就不用多说了吧? 比如,你可以任意的添加注释,一边读源码一边记笔记,甚至你可以修改源码,更好的调试程序等等.但是如果你坚持通过导入依赖或者引入jar包的方式来学习源码,我觉得也可以,没有最好的,只有最适合自己的! 本文的主要目的是帮助那些在源码学习之初就被源码编译劝退的同学重拾信心! 话不多说,我们开…
摘要:在近日于上海召开的第六届Gopher China大会上,华为云微服务首席架构师田晓亮分享了<华为云的Go语言云原生实战经验>,讲述如何构建韧性.高可靠.安全的云原生应用系统,并孵化云原生应用开发框架Go chassis,以提升团队开发效能. Gopher China作为国内最权威和最实力干货的Go大会,致力于为广大的Gopher提供一线分享交流机会,也为众多一线互联网公司大咖深入探讨Go语言的应用发展提供契机. 在近日于上海召开的第六届Gopher China大会上,华为云微服务首席架构…
Android精选源码 Android仿照36Kr官方新闻项目课程源码 一个优雅美观的下拉刷新布局,众多样式可选 安卓版本的VegaScroll滚动布局 android物流详情的弹框 健身饮食记录助手,自带离线食品营养数据库 使用ReactNative开发的阅读器,可以查看在线书籍信息,下载 下拉刷新控件,多种下拉刷新效果 Android自定义 View - 仿淘宝 淘抢购进度条 一款好用.可自定义状态的数据状态切换布局 Material Design 设计面包屑 (Breadcrumbs) 导…
转载 : https://github.com/Tim9Liu9/TimLiu-Android?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io#%E5%8D%AB%E6%98%9F%E8%8F%9C%E5%8D%95 目录 UI UI 卫星菜单 节选器 下拉刷新 模糊效果 HUD与Toast 进度条 UI其它 动画 网络相关 响应式编程 地图 数据库 图像浏览及处理 视频音频处理 测试及调试 动态更新热更新 消息推送…
TimLiu-Android 自己总结的Android开源项目及库. github排名 https://github.com/trending,github搜索:https://github.com/search 目录 UI 卫星菜单 节选器 下拉刷新 模糊效果 HUD与Toast 进度条 UI其它 动画 网络相关 响应式编程 地图 数据库 图像浏览及处理 视频音频处理 测试及调试 动态更新热更新 消息推送 完整项目 插件 出名框架 其他 好的文章 收集android上开源的酷炫的交互动画和视觉…
各种Android UI开源框架 开源库 转 https://blog.csdn.net/zhangdi_gdk2016/article/details/84643668 自己总结的Android开源项目及库. github排名 https://github.com/trending,博主总结的很好,很全面,开源库地址:https://github.com/zhangdigdk/TimLiu-Android, 目录 UI UI 卫星菜单 节选器 下拉刷新 模糊效果 HUD与Toast 进度条 U…
Android 开源项目及库汇总(2) ListenToCode 2.7 2018.10.10 15:43 字数 8527 阅读 1001评论 0喜欢 29 地图 百度地图– Android百度地图 线路规划,模拟运动轨迹,及全景效果. AirMapView– 支持多个本地地图提供者包括谷歌地图V2和亚马逊地图V2.如果设备没有任何受支持的本地地图提供者,AirMapView会回退到基于web的地图提供者(目前谷歌地图). 数据库 ORMLite– ORMLite做的最棒但是学习成本有点儿高,O…
2016 年已经过去一半,你在年初制定的成长计划都实现了吗? 学海无涯,技术成长不是一簇而就的事情.本期 fir.im Weekly 推荐 王下邀月熊_Chevalier的 我的编程之路--知识管理与知识体系,适合所有的开发者阅读. 还有作者的关于 2016里一些 Android 最佳实践列表--Opinionated,其中集成 Medium 上关于最佳实践的 Checklist,并加入了一些个人看法,包涵Language.UI.Network.Storage.DataBase.SysProc.…
前言 该文章是笔者参加 Android 巴士线下交流会成都站 的手写讲稿虚拟场景,所以大家将就看一下. 开始 大家好,我是刘世麟,首先感谢安卓巴士为我们创造了这次奇妙的相遇.现场的氛围也让我十分激动. 职场竞争力,从来都是我们关注的话题,所以我今天给大家分享一下:<Android 初学者,如何快速提升职场竞争力>. 在今年 4 月,全球互联网引来了一个历史性的转折点:随着流量分析工具 StatCounter 的报告,Android 首次超越 Windows,成为用户访问互联网最常用的操作系统!…
前言 该文章是笔者参加 Android 巴士线下交流会成都站 的手写讲稿虚拟场景,所以大家将就看一下. 开始 大家好,我是刘世麟,首先感谢安卓巴士为我们创造了这次奇妙的相遇.现场的氛围也让我十分激动. 职场竞争力,从来都是我们关注的话题,所以我今天给大家分享一下:<Android 初学者,如何快速提升职场竞争力>. 在今年 4 月,全球互联网引来了一个历史性的转折点:随着流量分析工具 StatCounter 的报告,Android 首次超越 Windows,成为用户访问互联网最常用的操作系统!…
Google Developing for Android 三 - Performance最佳实践 发表于 2015-06-07   |   分类于 Android最佳实践 原文 Developing for Android, III:The Rules: Performance 在Android中,性能和内存的关系很密切,因为系统的整体内存大小会影响所有进程的性能,因为垃圾回收器会对运行期间的性能产生很大的影响.下面的重点是运行期间的性能问题而不是内存. 避免在动画和交互期间繁重的操作 正如在…
Google Developing for Android 二 - Memory 最佳实践   |   分类于 Android最佳实践 原文:Developing for Android, II The Rules: Memory 在决定应用的行为,是否有好的用户体验以及整体的设备体验来说,内存的使用可能是独立因素中最重要的.内存因素包括应用的内存占用,以及内存搅动(导致的垃圾回收会对运行期间的性能有影响). 避免在循环中分配内存 内存分配虽然不可避免,但是应尽可能的避免,特别是在平凡的调用的代…
据说,每一个 iOSer 都想要一张中国首届 Swift 开发者大会的门票: 那么,福利来了-- fir.im 作为中国首届 Swift 大会的唯一钻石赞助商,有最后 2 张价值 600 多的门票(已火到买不到)想送给你,来现场与国内外一线大牛开发者面基. 想要的人有点多,这次靠实力不靠运气,"命题作文"如下: 使用 fir CLI . Jenkins . Gradle 插件上传 Swift 应用至 fir.im fir.im 的实用工具库有这么几大插件会让你上传应用也爽飞天: fir…
收集整理这份资料灵感来自于 trip_to_iOS, 征得同意引用了该资料的开头描述 收集整理这份资料主要帮助初学者学习 Android 开发, 希望能快速帮助到他们快速入门, 找到适合自己学习资料, 节省再去收集学习资料时间. 这份资料我会不断的更新完善, 同时也欢迎更多具有丰富经验的Android开发者将自己常用的工具.学习资料.学习心得等分享上来, 我将定期筛选合并, 该份学习资料有不足的地方, 也请指出, 我会谦虚接受改正, 希望我能与大家一起来学习, 谢谢. 感谢 @GitHubDai…
最新的Android平台中(Android 2.3起),新增加了一个新的类,叫StrictMode(android.os.StrictMode).这个类可以用来帮助开发者改进他们编写的应用,并且提供了各种的策略,这些策略能随时检查和报告开发者开发应用中存在的问题,比如可以监视那些本不应该在主线程中完成的工作或者其他的一些不规范和不好的代码. StrictMode有多种不同的策略,每一种策略又有不同的规则,当开发者违背某个规则时,每个策略都有不同的方法去显示提醒用户.在本文中,将举例子说明如何使用…
Cassandra 是什么? Apache Cassandra 以其可扩展性和容错分布式数据库系统而被人所熟知.Cassandra 起源于Facebook 最初创建于 Amazon Dynamo 和谷歌 BigTable 的一个项目,并从此成长为一个在苹果和 Netflix 等公司大量使用的开源系统.以下是一些 Cassandra 的关键属性: 高扩展性和高可用性(Cassandra 集群是分散的,因此没有单点故障) 可以近似线性的(集群扩大一倍,吞吐量扩大2倍) 非常高的写入吞吐量和良好的读取…
<一,> oracle 11g r2 RAC提供了以下功能: 高可用:shared-everything 模式保证了单节点的故障不会停止服务,集群中的其他节点将快速接管 可扩展性:多节点分担负载,可以提供远超单机数据库能提供的处理能力.且增删节点可以在线完成,不需要停机 易用性:多个数据库可以加入到一个集群中 低成本:RAC可以部署在标准硬件上,硬件上节省的成本抵消了购买license的成本 Oracle 11g r2 还提供了一个叫RAC One Node的新功能.Oracle发现一些RAC…
http://hb.qq.com/a/20110914/000054.htm http://www.android100.org/html/201204/25/1097.html http://www.2cto.com/kf/201503/381354.html StrictMode使用详解 2015-03-10      0个评论    来源:eclipse_xu   收藏    我要投稿 StrictMode StrictMode最常用来捕捉应用程序的主线程,它将报告与线程及虚拟机相关的策略…
与解码相关的主要代码在上一篇博客中已经做了介绍,本篇我们会先讨论一下如何控制解码速度再提供一个我个人的封装思路.最后回归到界面设计环节重点看一下如何保证播放器界面在缩放和拖动的过程中保证视频画面的宽高比例. 一.解码速度 播放器播放媒体文件的时候播放进度需要我们自己控制.基本的控制方法有两种: 根据FPS控制视频的播放帧率,让音频跟随. 控制音频的播放解码速度,让视频跟随. 媒体文件在编码的时候,正常情况下视频数据和音频输出是交替写入的.换句话说,解码每一帧视频数据伴随需要播放的音频数据也应该被…
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/45022631: 本文出自:[张鸿洋的博客] 1.引言 对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现: 自定义一个CustomView(extends View )类 编写values/attrs.xml,在其中编写styleable和item等标签元素 在布局文件中CustomView使用自定义的属性(注意namespace) 在CustomView的构造方法中…