- 博客(188)
- 资源 (10)
- 收藏
- 关注
原创 RxJava2-完整攻略
0. 简介RxJava 其实就是提供一套异步编程的 API,这套 API 是基于观察者模式的,而且是链式调用的,所以使用 RxJava 编写的代码的逻辑会非常简洁。RxJava 有以下三个基本的元素:被观察者(Observable) 观察者(Observer) 订阅(subscribe)下面来说说以上三者是如何协作的:首先在 gradle 文件中添加依赖: implementation 'io.reactivex.rxjava2:rxjava:2.1.4' i.
2020-07-03 15:26:34 303
转载 ButterKnife--View注入框架
俗话说:“不会偷懒的程序员不是好的程序员!”。作为一名Android开发,是不是经常厌烦了大量的findViewById以及setOnClickListener代码,而ButterKnife是一个专注于Android系统的View注入框架,让你从此从这些烦人臃肿的代码中解脱出来。先来看一段代码示例说明下ButterKnife是如何简化代码的:注意:如果你是使用的Eclipse引用该libr
2016-05-12 19:11:39 506
转载 Android 开源之StickyHeaderListView 标题渐变、吸附悬停、筛选分类、动态头部
StickyHeaderListView 是基于实际需求做出的灵活可定制的UI功能,具体实现功能如下:一、支持无限循环的广告位。二、高度可动态配置的Header2和Header3(使用GridView实现)。三、主要功能:分类、排序和筛选布局滑动到顶部后吸附、悬停。四、自定义FilterView筛选控件,支持动画显示与动画隐藏。五、支持标题栏背景颜色渐变、字体颜色渐变。六、
2016-05-11 21:53:45 2231
转载 反射、注解与依赖注入总结
现在在我们构建自己或公司的项目中,或多或少都会依赖几个流行比较屌的第三方库,比如:Butter Knife、Retrofit、Dagger 2等,如果你没用过,那你需要找时间补一下啦;有时在使用后我们会好奇他们到底是怎么做到这种简洁、高效、松耦合等诸多优点的,当然这里我不探讨它们具体怎么实现的,而关心的是它们都用到同样的技术反射和注解,并实现的依赖注入。如果你好奇这些库具体是怎么实现的,或
2016-05-11 21:52:10 549
转载 (MVP+RxJava+Retrofit)解耦+Mockito单元测试 经验分享
photo-1460899960812-f6ee1ecaf117_副本.jpg前言首先,对于MVP、RxJava还不了解的同学,请先阅读这几篇文章:Android MVP模式 简单易懂的介绍方式RxJava快速入门给 Android 开发者的 RxJava 详解了解 Retrofit、okHttp,直接看Squre官网RetrofitOkHttp
2016-05-11 21:44:09 3476 1
转载 30条Android开发建议
There are two kinds of people : those who learn the hard way and those who learn by taking someone’s advice.当前Android开发领域最佳实践方案,覆盖了最新的技术、架构等各种细节。本文主要用来收集Android开发中积累的一些宝贵经验,这些经验中有一些约定熟成且经过检验的建议,有
2016-05-11 21:33:59 434
转载 google官方架构MVP解析与实战-(从零开始搭建android框架系列(3))
本篇文章项目github地址:MVPCommon本文章原地址:简书博客项目效果1 前言当然对于MVP的解说也是使用也是层出不穷,我也网络上也能看到各种版本的解说,之前博客也有文章的更新,里面有MVP的详细说明和项目代码--->Android中的MVP模式,带实例。本篇文章将参考 google官方android MVP架构项目的实现,来实现自己的项目。或许看了这篇文章
2016-05-11 21:24:16 1232
转载 xUtils简介
转自: http://blog.csdn.net/liu1164316159/article/details/38822269xUtils简介xUtils 包含了很多实用的android工具。xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...xUitls 最低兼容android 2.2 (api l
2016-05-11 19:24:51 288
转载 【译】正确使用FAB
Floating Action Button,简称FAB,作为材料设计中(众多)独特的UI元素之一,用于特定场景中基本或有推动等作用的行为中。因为在指定屏幕中,会被频繁的访问(译者注:如点击,触摸等),所以,我认为正确处理FAB的每一个细节是件很重要的事情。然而,有很多应用,并没有以材料设计指导为规范,从而错误的使用着FAB,当然,这也包括一些谷歌的自家应用(我就知道!)。巨大的差异。通过
2016-05-11 19:24:20 847
转载 算法与数据结构(1),List
算法,设计模式,数据结构,我是有所了解的,但是关于git,简直菜到了谷底。哦,对了,记得前一阵子,遇到一个问题,大概的意思就是说,不使用List集合,实现对象的增加和删除,我之所要写这篇博,是因为我现在仍然不能写出满意的结果,希望你能在看过之后,有所灵感,然后实现它。本篇,依然从我的知识和思路出发,带大家了解List数据结构。List类族可以说三种List均来自Abstra
2016-05-11 19:24:03 366
转载 算法与数据结构(2),Map
Map是一种非常有用的数据结构。先为大家画一张简单的Map类族图。Map类族上图表示,Map类族中主要实现类有Hashtable,HashMap,LinkedHashMap,TreeMap。在Hashtable子类中,还有Properties类的实现。这里主要说明Hashtable和HashMap并没有太大的差异,类似ArrayList和Vector。这里主要说明三点:
2016-05-11 19:23:47 389
转载 算法与数据结构(3),并发结构
并发ListVector和CopyOnWriteArrayList是两个线程安全的List实现ArrayList不是线程安全的。因此,应该尽量避免在多线程环境中使用ArrayList。如果因为某些原因必须,则需要使用Collections.synchronizedList( )进行包装。CopyOnWriteArrayList的内部实现与Vector不同,从字面中可以看出Copy-On-W
2016-05-11 19:23:38 522
转载 Android自动化测试技巧
Google大神镇楼 : http://developer.android.com/tools/testing-support-library/index.html#UIAutomator前言:觉得文章太长不想往后翻的朋友,你们会后悔的,当然,你也可以选择先看后面的,你会觉得很爽,但是相信我,你还是会回来看前面的。那么,还是慢慢往后翻吧。导入:人们懒的走路,才创造了汽车;人
2016-05-11 19:23:18 1381
转载 一种快速毛玻璃虚化效果实现--Android
在iOS设备上我们随处可见毛玻璃效果,而且最近越来越多的场合应用到了这种美观的虚化效果,包括本人的一个开源项目BlureImageView也是受此启发。所以,恰到好处的虚化效果能很好的改善用户体验,而且也能让你的app显得更加优雅。不过,我们目前在android上很少见到毛玻璃效果,我认为很重要的原因是性能问题,虚化一张图片所需要的时间会因设备而异,如果为了虚化使得用户需要刻意等待,那么就是弊
2016-05-11 19:22:32 3257
转载 开发文档生成工具----Doxygen自动文档生成工具在Eclipse中的集成及使用举例
你有为软件编写说明文档的苦恼吗?当别人甩给你一个庞大的系统,让你根据里面的代码注释理解后写出一份完整的开发文档,你会怎么办?一个个的看代码 然后耗时N天来写吗?这既是一份苦差事也极其耗时,有没有更好的办法呢?比如根据代码注释自动生成详尽的说明文档……可能有人会说用Javadoc就是 了,要是C/C++、Python、C#等语言写的软件呢?有没有类似Javadoc的东西?Yes,当然有,Doxy
2016-05-11 14:15:18 585
转载 开发文档生成工具----强大的Doxygen工具使用手册
张三:假如我们自己开发了一个类库,怎么做一个方便阅读的文档呢?李四:一个方法一个方法地写呗,就像写Excel文档一下。张三:啊,你out了,这多慢呀。为什么不玩玩doxygen工具,它能帮你生成文档?李四:这么爽,什么东东,给说讲讲。1. Doxygen, what?Doxgen就是大名鼎鼎的文档生成工具,而且是免费开源的,它使用非常方便,能
2016-05-11 14:13:56 5331
转载 技术团队负责人应该具备怎样的能力
正好写2015年终总结,其实今年不太想写的,但是公司层面要求有个人总结要弄,写了个开始就情不自禁多写了一些,谈谈这方面的总结吧。公司的技术团队负责人应该具备怎样的能力?或者说团队Leader应该知晓和锻炼什么样的能力?大公司、创业公司都经历过,从Leader或创始人那里学到了不少东西,自己也会慢慢总结,保持学习的状态,这里就发表一下个人想法,也参考了曾看到的优质文章和朋友的看法。
2016-05-03 17:47:29 943
转载 android apk 自我保护技术-加密apk
一、伪加密技术原理 我们知道android apk本质上是zip格式的压缩包,我们将android应用程序的后缀.apk改为.zip就可以用解压软件轻松的将android应用程序解压缩。在日常生活或者工作中,我们通常为了保护我们自己的文件在进行压缩式都会进行加密处理。这样的方法对于android apk同样适用。原理很简单,在zip的文件格式中有一个位用来标示该zip压缩文件中的文
2016-05-03 17:32:15 1883
转载 Android应用开发之所有动画使用详解
题外话:有段时间没有更新博客了,这篇文章也是之前写了一半一直放在草稿箱,今天抽空把剩余的补上的。消失的这段时间真的好忙,节奏一下子有些适应不过来,早晨七点四十就得醒来,晚上九点四十才准备下班,好像最近都与世隔离了一样;然而自己每天还要熟悉一大套自己不熟悉、各种协议差异的代码。其实换个角度考虑还是蛮好的,忙,但很充实,有新的挑战与收获。【工匠若水 http://blog.csdn.net/y
2016-04-20 16:56:46 789
转载 【译】通过Hardware Layer提升Android动画性能
当有人问我关于动画性能表现不佳问题的时候,我首先会询问他们是否使用了Hardware Layer层。你的View可能在执行动画期间的每一帧都进行重绘,如果使用View Layer,可以避免重绘每一帧,因为View的渲染一旦进入离屏缓冲区就能够被复用。另外,Hardware Layer缓存在GPU上(译者注: Hardware Layer使用GPU内存),它能够使动画中的某些操作变得更顺畅。
2016-04-09 18:13:09 438
转载 【译】Android应用架构
Android开发生态圈的节奏非常之快。每周都会有新的工具诞生,类库的更新,博客的发表以及技术探讨。如果你外出度假一个月,当你回来的时候可能已经发布了新版本的Support Library或者Play Services我与Ribot Team一起做Android应用已经超过三年了。这段时间,我们所构建的Android应用架构和技术也在不断地演变。本文将向您阐述我们的经验,错误以及架构变化背后的
2016-04-09 18:08:27 333
转载 【译】Android开发中的MVP架构
最近越来越多的人开始谈论架构。我周围的同事和工程师也是如此。尽管我还不是特别深入理解MVP和DDD,但是我们的新项目还是决定通过MVP来构建。这篇文章是我通过研究和学习各种文章以及专题讨论所总结出来的,它包括以下几点:为什么越来越多的人开始关注架构?首先,MVP是什么?哪种架构才是最好的,MVC,MVVM还是MVP?MVP的利与弊Show me th
2016-04-09 18:07:39 322
转载 Android夜间模式官方最佳实践
昨晚发过这篇,其中我关于“掘金获得谷歌国内最佳Material Design应用提名”的说法有问题,被谷歌的朋友提醒后,决定还是删了重发,非常抱歉之前帮忙转发的朋友,即便如此,也并不影响我对掘金的推荐,确实是非常棒的一款产品,技术干货超多,大家可以多关注 http://gold.xitu.io今天这篇译文就来自稀土掘金Android工程师 NeXT 同学,NeXT非常热衷分享,
2016-04-09 14:05:42 9412
转载 【Android开源项目解析】RecyclerView侧滑删除粒子效果实现——初探Android开源粒子库 Leonids
前两天在微博上看到了这个侧滑删除的粒子效果,但是只有IOS的,所以心血来潮,写了个玩玩,下面简单介绍下实现的思路项目简介先不废话,上效果图项目地址:https://github.com/ZhaoKaiQiang/ParticleLayout实现原理解析其实看了那么多的关于侧滑删除的项目,再来思考这个问题,就so easy了!咱们先分析下需求:侧滑手势
2016-04-09 11:38:35 536
转载 Andriod性能优化之列表卡顿——以“简书”APP为例
这几天闲得无聊,就打开手机上的开发者模式里面的“GPU过度绘制”功能,看看别家的App做的咋样,然后很偶然的打开了“简书”,然后就被它的过度绘制惊呆了,于是写了这篇性能分析的文章,从一个只有APK文件的角度,说下如何寻找布局中可能存在的性能问题,以及解决方案。本文章以简书Android最新版本1.9.1进行分析。GPU过度绘制首先打开下面两个功能开关开发者模式->调试GPU过度
2016-04-09 11:38:06 567 1
转载 《Android源码设计模式解析》读书笔记——Android中你应该知道的设计模式
断断续续的,《Android源码设计模式解析》也看了一遍,书中提到了很多的设计模式,但是有部分在开发中见到的几率很小,所以掌握不了也没有太大影响。我觉得这本书的最大价值有两点,一个是从设计模式的角度去理解Android源码,结合着日常开发中的常用类,对设计模式的理解会更加的深刻;另外一个好处就是了解常用模式,再看其他人写的代码的时候,更容易理解代码思路。下面是我的读书笔记和一些思考,设计模
2016-04-09 11:36:37 338
转载 【Socket】关于socket长连接的心跳包
TCP的socket本身就是长连接的,那么为什么还要心跳包呢? 在smack里有个30s发送一个空消息的线程,同样关于心跳包(keepalive) 据网络搜索到的资料解释如下内网机器如果不主动向外发起连接,外网机没法直连内网的,这也是内网机安全的原因之一,又因为路由器会把这个关系记录下来,但是过一段时间这个记录可能会丢失 ,所有每一个客户端每隔一定时间就会向服务器
2016-04-09 11:31:38 683
转载 Android微信智能心跳方案
前言:在13年11月中旬时,因为基础组件组人手紧张,Leo安排我和春哥去广州轮岗支援。刚到广州的时候,Ray让我和春哥对Line和WhatsApp的心跳机制进行分析。我和春哥抓包测试了差不多两个多礼拜,在我们基本上摸清了Line和WhatsApp的心跳机制后,Ray才告诉我们真正的任务——对微信的固定心跳进行优化,并告诉我们这不是一件容易的事情。于是我和春哥开始构思第一个方案,我们开始想用统计的方
2016-04-09 11:30:53 580
转载 Android推送技术研究
前言最近研究Android推送的实现, 研究了两天一夜, 有了一点收获, 写下来既为了分享, 也为了吐槽. 需要说明的是有些东西偏底层硬件和通信行业, 我对这些一窍不通, 只能说说自己的理解.为什么要研究Android推送技术? 主要还是毕业设计要做一个即时通信app, 我是不喜欢做什么社交app的, 也就象牙塔里的人想得出来, 说实话有这功夫还不如钻研一个小技术点, 把一个点研究透彻,
2016-04-09 11:29:12 495
转载 Socket编程介绍
下面给大家介绍一下TCP和UDP协议然后给大家介绍一下TCP Socket通信机制下面就不再啰嗦了 就给大家展示用tcp写的聊天系统 (可以和多人聊天 欢迎大家探讨 QQ群:160373684)源码源码下载地址:http://download.csdn.net/detail/wangliang198901/
2016-04-09 11:28:10 240
转载 JS检测APP是否安装的情况
JS检测APP是否安装的情况我们在浏览网页的时候,你会看到一个网页下面漂浮着一个提示框“打开APP”或者“下载APP的字样”,如果你的手机已经安装过这个APP,那么网页会提示“打开APP”,如果没有安装,那就会提示“下载APP的字样” 这个从技术角度是如何去实现的呢?下面我给大家分享这块技术,去年公司给国际动漫节做项目的时候,客户就提到这个需求,在点击网页企业的时候 那么直接打开APP(
2016-04-09 11:27:08 506
转载 Android短信息验证码自动填写详细介绍
最近新发现安卓验证码在获取验证码自动填写这块比较火,今天很好奇的去研究了一下,所以马上写博客将这块和大家一起分享,在自己的真机上面测试 通过1、下面是获取验证码的整个流程图接下面我就不多说废话了,直接贴我这块的代码了/*** * * @类描述: * @项目名称:CargoUser * @包名: com.cargo.cargous
2016-04-09 11:26:09 371
转载 android 心跳包的分析
android 心跳的分析 最近在做一个项目中用到了心跳包的机制,其实就是传统的长连接。或许有的人知道消息推送的机制,消息推送也是一种长连接 ,是将数据有服务器端推送到客户端这边从而改变传统的“拉”的请求方式。下面我来介绍一下安卓和客户端两个数据请求的方式 1、push 这个也就是有服务器推送到客户端这边 现在有第三方技术 比如极光推送。
2016-04-09 11:23:34 784
转载 Android MultiDex实践:如何绕过那些坑?
本文是我的同事徐冬投稿,介绍他在方法数到达65k上限后,应用官方MultiDex方案时踩过的一些坑,以及如何解决这些棘手问题的实践过程。前言Android应用65k方法数的限制一直为广大开发者所诟病,在应用功能越来越丰富、各种开源库越来越多的今天,65k方法数瓶颈俨然已是一大绊脚石。关于65k方法数限制的更多细节可以看下冯建的这篇文章:http:
2016-04-09 11:15:17 12763 1
转载 谈谈App混合开发
混合开发的App(Hybrid App)就是在一个App中内嵌一个轻量级的浏览器,一部分原生的功能改为Html 5来开发,这部分功能不仅能够在不升级App的情况下动态更新,而且可以在Android或iOS的App上同时运行,让用户的体验更好又可以节省开发的资源。下面来谈谈Hybrid App开发中的技术问题。iOS方面的我不太了解,我就主要谈谈Android开发中的,其中可能会有很多说错的
2016-04-09 11:02:05 7715
转载 Stopwatch工具类
现在我的一部分工作就是优化客户端的性能,比如优化列表快速滑动卡顿现象。一个很好的办法就是使用DDMS的Method Profiling功能,它可以生成一个表格来显示app中所有执行的方法的执行时间,占cpu运行的百分比,还有图形化的显示。功能很强大!但是,有的时候是跨线程工作的,比如,我获得要发送一个http请求到http请求返回时的时间,这个它就无能为力了(或许可能我没有发现
2016-04-09 11:00:47 907
转载 Android github上开源项目集合
主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar及其他如Dialog、Toast、EditText、TableView、Activity Animation等等。 一、ListView android-pulltorefre
2016-04-09 10:39:27 955
转载 Android 进程间通信(AIDL)使用详解
远程Service与Activity的交互(AIDL的应用)首先我们先上一个通俗的情景:在应用1中Activity绑定了一个Service,并且设置了一些值,此时我们想在应用2中调用该service并且想得到该值应该怎么做?我们都知道每个应用程序都运行在各自的进程中,并且android平台是不允许不同进程间进行直接的对象数据等传递的。如果必须进行跨进程之间的数据传递,那么我们就应该使用AIDL(A
2016-04-09 10:37:29 349
转载 android的消息处理机制(图+源码分析)——Looper,Handler,Message
android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解android的消息处理机制,我看了Looper,Handler,Message这几个类的源码,结果又一次被googler的设计震撼了,特与大家分享。android的消息处理有三个核心类:Looper,Ha
2016-04-09 10:11:12 249
转载 Android Training - 管理应用的内存
Random Access Memory(RAM)在任何软件开发环境中都是一个很宝贵的资源。这一点在物理内存通常很有限的移动操作系统上,显得尤为突出。尽管Android的Dalvik虚拟机扮演了常规的垃圾回收的角色,但这并不意味着你可以忽视app的内存分配与释放的时机与地点。为了GC能够从app中及时回收内存,我们需要注意避免内存泄露(通常由于在全局成员变量中持有对象引用而导致)并且在适当
2016-03-29 16:00:45 264
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人