Android Architecture Components Part4:ViewModel

2018-06-23
阅读 7 分钟
3.6k
在Android Architecture Components(AAC)中ViewMode是为界置更改后继续存在的对象。例如界面的旋转导致界面配置信息改变。

Android Architecture Components Part3:Lifecycle

2018-06-17
阅读 7 分钟
4.6k
上期文章我们讲解了LiveData,知道它是一个可观察容器同时具备生命感知能力。那么它的生命感知能力又是如何实现呢?在使用LiveData进行注册observer时,是否记得其中的两个参数。其一是Observer的回调,另一个就是LifecycleOwner。它就属于Lifecycle中的一部分。

Android Architecture Components Part2:LiveData

2018-06-14
阅读 6 分钟
5.7k
感谢你的再次光临,欢迎来到Android Architecture Components(ACC)系列文章。上篇文章我们一起讨论了Room,通过Room我们能够方便的操作App的数据库。如果你的App对本地数据库有所依赖的话,Room你值得拥有。

Android Architecture Components Part1:Room

2018-06-08
阅读 5 分钟
5.3k
Android Architecture Components(AAC)首次发布与2017 GoogleI/O大会,经过近一年的维护,现在Google团队已经发布了稳定版(v1.1.1)。能够更好的帮助我们来构建自己的App应用,如果你还没有了解ACC现在时间刚刚好,来不及解释,赶紧上车吧。

ConstraintLayout使用汇总

2018-05-16
阅读 22 分钟
21.5k
在这里我要向大家介绍ConstraintLayout,它是一种布局方法,可以帮助我们在对Android进行布局时减少对布局层次的嵌套,进而提高app的性能。

Bitmap的图片压缩汇总

2018-03-29
阅读 11 分钟
7.9k
Bitmap是Android中一种重要的图片处理机制,它可以用来获取图片的相关信息,同时可以对图片进行裁剪、缩放等操作,也可以指定图片格式进行保存。相信对于OOM再熟悉不过了,OOM的产生是一个非常头疼的事情,如果在加载图片的时候未对大图进行处理,它将会占用非常大的内存,这样就非常容易产生OOM。所以我们必须要有意识...

Fresco源码分析之Controller

2017-12-28
阅读 13 分钟
3k
如果你是第一次看我的Fresco的源码分析系列文章,这里强烈推荐你先阅读我的前面两篇文章Fresco源码分析之DraweeView与Fresco源码分析之Hierarchy。好了,下面进入正题。在上篇文章中我们提到,在Fresco中关于图片的缓存、请求与显示逻辑处理都在Controller中。那么Controller到底是如何贯穿这些功能的呢?我们先从它的出...

Fresco源码分析之Hierarchy

2017-12-13
阅读 9 分钟
4.1k
上篇文章我们分析了Fresco中的DraweeView,对其中的一些原理以及方法进行了解析。在这过程中我们了解到,DraweeView中是通过DraweeHolder来统一管理的。而DraweeHolder又是用来统一管理相关的Hierarchy与Controller,如果想了解DraweeView相关的知识,可以先看下我的前一篇文章Fresco源码分析之DraweeView。今天这里进一...

Fresco源码分析之DraweeView

2017-12-05
阅读 8 分钟
5.4k
在Android中图片加载的框架很多,例如:Fresco、Picasso、Glide与Imageloader。它们都有各自的优点,但总的来说,使用起来方便简单、可配置性高与提供良好的缓存机制。由于平常主要用的还是Fresco,所以这里有必要对Fresco的原理进行深入研究。这样对于以后的使用与理解将会得到巨大的帮助。

tensorflow-梯度下降,有这一篇就足够了

2017-11-14
阅读 8 分钟
41.4k
最近机器学习越来越火了,前段时间斯丹福大学副教授吴恩达都亲自录制了关于Deep Learning Specialization的教程,在国内掀起了巨大的学习热潮。本着不被时代抛弃的念头,自己也开始研究有关机器学习的知识。都说机器学习的学习难度非常大,但不亲自尝试一下又怎么会知道其中的奥妙与乐趣呢?只有不断的尝试才能找到最适...

Kotlin最佳实践

2017-08-22
阅读 6 分钟
5.4k
前一段时间开发比较轻松,所以就研究了一下google主推的kotlin语言。我一直坚信,快速学习与掌握一门语言的最好方式就是实践,边开发项目边学习。这样才能快速的将学习的知识运用到实践中,从而发现问题,总结经验。如果你也想学习kotlin或者也正在学习kotlin,那么我们不妨可以携手共济,在实践中提升自己,快速掌握kot...

Android共享动画兼容实现

2017-07-17
阅读 9 分钟
6.9k
看了一下之前的文章记录,最近的文章是在3月12日写的,今天的7月16日。不知不觉已经4个月没有坐在电脑前认真的思考与静下心来做些总结。趁着刚刚王者荣耀超神的兴奋热度,接下来说说我对Android共享动画方面的一些心得。

基于Fresco的大图浏览

2017-03-06
阅读 5 分钟
8.3k
上个星期是个忙碌的一周,全周都在赶进度,可能是过年过的太舒畅了吧。现在终于有空来坐下来,安安静静的思考下这忙碌后的收获。在此也回顾一下,做个分享!

git使用杂记

2017-02-05
阅读 5 分钟
2.5k
作为一个开发者,如果现在还不知道git或者还不会使用git,那么你应该好好的反省。自己去好好看一遍的入门介绍吧。今天只是对自己在日常中使用git的一些常用命令的介绍与自己认为不错且能提高我们办公效率的命令。内容可能会有点杂乱,但绝对都是经典的命令,在此记下笔记,也希望能帮助来赏脸关顾的你们。

Android 自定义View

2016-11-14
阅读 12 分钟
4.6k
Android自定义View的详细步骤是我们每一个Android开发人员都必须掌握的技能,因为在开发中总会遇到自定义View的需求。为了提高自己的技术水平,自己就系统的去研究了一下,在这里写下一点心得,有不足之处希望大家及时指出。

Handler、Looper与MessageQueue源码分析

2016-10-19
阅读 9 分钟
4.3k
在Android中可以通过Handler来更新主线程中UI的变化,更新UI只能在主线程中进行更新,而为了让其他线程也能控制UI的变化,Android提供了一种机制Handler、Looper与MessageQueue一同协作来达到其他线程更新UI的目的。

Android Volley源码分析(一)

2016-10-14
阅读 15 分钟
3.2k
volley是一个非常流行的Android开源框架,自己平时也经常使用它,但自己对于它的内部的实现过程并没有进行太多的深究。所以为了以后能更通透的使用它,了解它的实现是一个非常重要的过程。自己有了一点研究,做个笔记同时与大家一起分享。期间自己也画了一张图,希望能更好的帮助我们理解其中的步骤与原理。如下:

React Native For Android

2016-08-29
阅读 5 分钟
4.2k
React Native有点大势所趋,所以前段时间研究了下它,看了它的官方文档同时也在Github浏览了前辈们的杰作,所以自己也写了一个简单的Demo也算是一个好的入门。配合官方文档与代码实例相信都能很快的进入React Native的世界。下面我介绍的不会很详细,是针对React Native语法有一定会基础的同学。

LoopView-循环轮播控件

2016-08-09
阅读 5 分钟
5.8k
这次我们来学习一下日常看到的广告轮播器,几乎每个App中都拥有这样的控件。这种使用频繁的控件,我们应该懂得它们的实现原理,这样我们在使用的工程中就能更加熟练与轻松。先来看下效果吧。

RecyclerView下拉刷新与上拉更多

2016-08-03
阅读 8 分钟
16.2k
在原来的文章中我提及了如何使用RecyclerView添加header与footer,今天我们来更深入的扩展一下使用RecyclerView实现常用的下拉刷新与上拉加载更多的功能。当然这些功能的实现也是基于前面的RecyclerView添加header与footer为基础来实现的,不是很了解的可以先看看前面的文章可能能更好的帮助理解。

RecyclerView添加header与footer

2016-07-05
阅读 9 分钟
9.3k
这次主要关于RecyclerView添加header和footer的实现方法,我们都知道,在使用ListView的时候我们能自由的给自己的ListView添加头部与尾部。使用addHeaderView()与addFooterView()方法实现。只要自己自定义布局文件,添加进去即可。但当我们使用RecyclerView的时候就会发现这两个方便的方法没有了。那么如果此时我们要实...

多线程下载

2016-06-26
阅读 3 分钟
3k
原理 多线程下载的原理就是将要下载的文件分成若干份,其中每份都使用一个单独的线程进行下载,这样对于文件的下载速度自然就提高了许多。 既然要分成若干部分分工下载,自然要知道各个线程自己要下载的起始位置,与要下载的大小。所以我们要解决线程的分配与各个线程定位到下载的位置。 封装 对于多线程下载我们可以将...

七大排序算法总结(java)

2016-06-19
阅读 3 分钟
5k
直接选择排序,整体思想是将数据分成两个区域,有序区与无序区。排序的时候是每次从无序区中选择出最小的数,然后插入到有序区中的最末尾,从而形成更大的有序区。直到无序区中的数为零,结束排序。

如何使Android Studio项目发布到Jcenter中

2016-06-14
阅读 5 分钟
6.4k
写这篇文章其实我是痛苦的,哎!说出来都是泪啊。。。今天在JFrog Bintray中不小心把我Repositories中原来的maven中的开源项目给删除了。导致原来的依赖全部没了,找了半天也没找到要怎么才能恢复。现在想到的也只能重新发布一下。可能还有很多人不知道如何实现像我们日常添加别人的依赖一样这样简单的方式。所以顺便在...

RecyclerView的拖动、滑动删除

2016-06-04
阅读 5 分钟
15k
前些时候提到了下RecyclerView的点击事件的处理,今天再来说说RecyclerView的拖动、滑动删除。看完了以后你会发现RecyclerView是多么的犀利。比ListView简单的多了。

Socket的简单通信

2016-05-28
阅读 4 分钟
4.9k
首先一句话简单的介绍Socket:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。所有我们下面要建立一个服务端与客户端的通信。

RecyclerView item点击你真的会么

2016-05-22
阅读 3 分钟
22.1k
现在RecyclerView都使用的相对频繁了,在开始使用RecyclerView的时候,大家都应该都遇到过RecyclerView居然没有帮我们实现Item点击事件,顿时感觉不知所措了。查阅API发现确实没有实现该事件,最后经过苦思冥想,还是模仿ListView的点击事件,在onCreateViewHolder中为每个Item添加View的setOnClickListener事件,制定一...

Android高仿微信之mvp实现(四)

2016-05-15
阅读 3 分钟
3.6k
前面把聊天的基本功能都实现了,最近有点忙,因为快到学期末了,考试就来了,所以后面可能会慢点。大家都反映没有消息提醒,所以抽了点时间把聊天的提醒简单的实现了下,下面简单的介绍下。

Android高仿微信之mvp实现(三)

2016-05-08
阅读 4 分钟
3.4k
前面说到如何使用小米的推送来实现简单的聊天系统,虽然简单实现了,但是对于你们来说想要真正的体验效果就只能跟我互动,为了解决这个缺点,我最近完善了下,增加了添加朋友的功能,这样你们就可以自己拿两个测试机互相测试。就能体验整个过程,下面还是简单的说下。

Android高仿微信之mvp实现(二)

2016-05-01
阅读 7 分钟
3.4k
上次说了下简单的框架构架,主要是解释了下MVP的原理实现。虽然上次的功能没有很多,但主要是把框架搭好,才能更好的进行下面的操作。如果还有不了解的可以先看下我前面的文章:Android高仿微信之mvp实现(一)好了,这次我们要介绍的是微信聊天界面功能的简单实现。