
android开发进阶
文章平均质量分 95
寒小枫
三更灯火两更鸡,正是男儿读书时
展开
-
【Android】一段时间不操作弹出【屏保】效果
仿屏保效果最近项目的一个小Demo,和大家分享一下,本篇文章主要展示的是一个仿屏保的效果,用户在一段时间不操作会自动弹出屏保页面,当处于屏保页面的时候,【两秒内连续】按两次键盘【回车键】就会退出屏保页面。原创 2015-06-23 23:25:05 · 5709 阅读 · 9 评论 -
【Android】Retrofit使用详解--有些相见恨晚
1.Retrofit介绍Retrofit,每次浏览各大网站总会看到它的身影,虽然感觉已经如此熟悉,但是确实又相当陌生,由于一直没有在项目中使用它,今天决定好好整理下,虽然Retrofit1.0的时代已经过去,还好赶上了retrofit2.0的脚步,据说它又更强大了,废话不多说了,让我们去揭开Retrofit的神秘面纱;原创 2016-07-27 17:23:34 · 7393 阅读 · 1 评论 -
【Android】ORM数据库框架之GreenDao【关联】关系操作
上一篇我们介绍了greendao的基本使用方法,如果您还不了解,建议先看下上篇文章再来看这篇会有更好的效果。今天我们来继续学习greendao的relation部分,即数据表的关联操作部分,greendao默认支持一对一,一对多的关系操作,多对多目前暂不支持,下面我们来一步步实现greendao的关联操作;1.一对一关系原创 2016-07-17 21:59:03 · 3007 阅读 · 0 评论 -
【Android】Retrofit框架缓存处理(离线缓存等)
1.简述上一篇介绍了Retrofit的基本使用,如果您还不了解请先查看Retrofit使用详解–有些相见恨晚 这篇文章;我们在开发app的时候,有一种情况不得不处理,就是在用户断网的清空下的一些页面显示和网络请求响应等一些情况的处理,在无网络的情况下,我们可以给一个默认的友好的提示页面,像这样:但是有时候有些需求是在无网络连接的情况下也需要显示数据,所以我们就可以通过缓存响应数据,在无网络的情况下也原创 2016-08-01 15:42:19 · 8848 阅读 · 1 评论 -
【Android Studio】gradle多渠道打包
1.简介由于android应用市场比较多,项目上线之前需要对每个市场进行打包,单独打包当然可以,但是如果要上传的市场比较多,这个工作量就比较大了,万一打包出现点问题还要重新再次打包,想想都害怕,所以我们可以采用多渠道打包的方式,在进行一些简单的配置后,可以一次性打包所有指定的各渠道apk文件;原创 2016-10-09 16:49:55 · 1114 阅读 · 0 评论 -
【Android】Dagger2从入门到再入门
一.认识Dagger2Dagger2 是一个Android依赖注入框架,由谷歌开发,最早的版本Dagger1 由Square公司开发。依赖注入框架主要用于模块间解耦,提高代码的健壮性和可维护性。年初的时候就已经接触到dagger2,当时只是看了几篇博文,简单的了解了下,记得当初的感觉也是云里雾里,并未真正的理解dagger,时隔几个月,再次学习它,对dagger有了新的认识,在此作下记录;原创 2016-12-10 16:47:37 · 934 阅读 · 0 评论 -
【Android】Dagger2从入门到再入门(进阶)
上一篇【Android】Dagger2从入门到再入门讲解了dagger2的基本使用方式,本篇介绍一下@Named,@Singleton,@Scope等其它注解的使用方式;一.@Singleton先看个例子:1.我们在MainActivity里注入两个Student对象(接着上篇讲的,不明白的可以简单浏览下上一篇文章):@InjectStudent student;@InjectStudent s原创 2016-12-11 14:54:21 · 818 阅读 · 0 评论 -
【Android】Material Design基础详解
一.简介Material Design是Google在2014年I/O大会上发布的一种新的设计规范。一经推出就好评如潮,个人是非常喜欢这种风格的,由于他只支持5.0及其以上的设备,开发者也只是自己空闲时尝尝鲜,并没用在真实的项目中去,使得其在国内的市场并不是太好。公司的设计也并没有按照找个规范来设计过App,但是市场上还是有些MD风格的App,如知乎,简书等都能找到它的身影,不管怎样;原创 2017-02-13 22:11:15 · 1375 阅读 · 0 评论 -
【Android】BottomSheetDialog详解
1.简介BottomSheetDialog是一个自定义的从底部滑入的对话框。市面上很多App都有类似的效果,今天我们实现如下效果:2.页面布局从底部弹出view的效果是BottomSheetBehavior来实现的。view必须支持嵌套滚动,而且必须是CoordinatorLayout的直接子类,来看下主题布局。<?xml version="1.0" encoding="utf-8"?><andr原创 2017-02-14 17:02:28 · 10174 阅读 · 0 评论 -
【Android】Rxjava操作符系列(二)
今天天气不错啊,继续撸操作符!1.debounce作用:debounce操作符是对源Observable间隔期产生的结果进行过滤,如果在这个规定的间隔期内没有别的结果产生,则将这个结果提交给订阅者,否则忽略该结果,原理有点像光学防抖.Subscription sub = Observable.create(new Observable.OnSubscribe<Integer>() {原创 2017-03-02 16:52:13 · 1678 阅读 · 0 评论 -
【Android】仿知乎夜间模式的实现
1.简介目前很多App都有夜间模式的功能,网上教程也是很多,最近项目不忙,抽空学习了下,在这做下记录,希望能帮到正在看博客的你,我们先来看下知乎的效果:看我的效果:卧槽,好像啊,哈哈,好吧,有点神似,关于知乎实现的分析,大家可以看下这位大神的分析,那咱们废话少说,开始实现吧。2.AppCompatDelegate方式实现在support.v7包中google提供了AppCompatDelegate类原创 2017-02-15 23:21:12 · 3952 阅读 · 0 评论 -
【Android】Rxjava操作符系列(一)
今天开始Rxjava的学习,废话不多说了,开始撸操作符了1.Create作用:通过调用观察者的方法从头创建一个Observable.Observable<Integer> observable = Observable.create(new Observable.OnSubscribe<Integer>() { @Override public voi原创 2017-02-27 14:17:56 · 717 阅读 · 0 评论 -
【React Native】开源一个自己入门学习的小项目
本篇是React Native开源小项目,目前完成了初始版本,至于后续会不会增加其他知识点,待定吧,数据来自gankio,页面跳转使用的react-navigation,一边学习一边写,下面是总体的效果,没有多么华丽的功能,各位看官自行查看吧!一个react native开发的Android app效果图:使用到的库:react-navigationreact-native-image-zoom原创 2017-12-11 09:47:42 · 1407 阅读 · 0 评论 -
【Android】专治Activity各种疑难杂症
本篇文章主要是记录Activity各种疑难杂症,在平时使用过程中遇到的坑点,以及Activity使用难点,欢迎各位拍砖。1.setResult和finish的顺序关系当ActivtyA通过startActivityForResult启动ActivityB的时候,从ActivityB页面返回并设置setResult的时候,会回调ActivityA的onActivityResult方法,并可以通过...原创 2019-02-24 20:38:50 · 403 阅读 · 0 评论 -
【Android】Rxjava2 Flowable详解与背压那些事
1.Rxjava1中的背压Rxjava2中有这么一个被观察者Flowable,同样作为被观察者,它和Observable有什么区别呢,在Rxjava2中,Observable不再支持背压,而新增的Flowable支持背压,何为背压,就是上游发送事件的速度大于下游处理事件的速度所产生的现象。我们来看个例子,先把rxjava切换到rxjava1.0:implementation 'io.reac...原创 2019-03-09 22:23:21 · 2447 阅读 · 2 评论 -
【Android】Service完全解析之必知必会
想必对于Android开发者来说,对Service一定不陌生了,作为大名鼎鼎的四大组件之一的service,在Android中有着不可替代的作用,它不像Activity那么光鲜亮丽,一般都是默默躲在后台执行着一些“见不得人的”任务,比如下载文件,音乐播放等等,即使退出应用了,它还是很顽强的在后台运行着,虽然随着android版本的不断提高,安全性的要求也越来越高,Service的一些黑科技也变得越...原创 2019-03-16 20:23:58 · 410 阅读 · 0 评论 -
【Android】AsyncTask源码分析
在Android中ui是非线程安全的,更新ui只能在主线程操作,所以我们平时如果遇到子线程更新UI的情况,必须要切换到主线程上之后再执行,Handler消息机制就是一种处理方案,为了更方便的处理异步任务以及更新操作,Android在很早的版本就提供了AsyncTask类供我们处理短耗时的异步任务,方便我们子线程处理耗时任务,主线程更新UI。AsyncTask其实相当于是Handler和Threa...原创 2019-03-18 21:22:09 · 377 阅读 · 0 评论 -
【Android】ORM数据库框架之GreenDao快速入门与使用
先润润嗓子,听我细细道来: 今天我们来介绍一款性能非常好的orm数据库框架GreenDao,相信大家一定对它有所耳闻,或者已经在项目中在使用它了,虽然我在去年就开始使用这款框架,但是一直没有做过系统的整理和梳理,有些地方也是含糊不清,今天就和大家一起来揭开GreenDao的神秘面纱。GreenDao github地址:https://github.com/greenrobot/greenDAOG原创 2016-07-06 14:46:00 · 5237 阅读 · 7 评论 -
Android 使用Fiddler对应用进行抓包(一)
Fiddler是一款免费且功能强大的数据包抓取软件。它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。原创 2015-06-13 01:45:44 · 5106 阅读 · 0 评论 -
【Android 多语言切换简单实例分享】
一.Android多语言切换Android应用的开发不可能只针对某一个国家或者区域使用,各国间语言文化各不相同,因此一个优秀的APP必须支持多种语言,为了实现这个特性,Android给出了一个解决方式,在res目录下通过values+语言编码来实现多国语言的支持(中间采用连字符号-连接),例如:values-es代表英文,如果你决定了你的应用要支持多国语言,那么你就必须新建多种values-XXX的原创 2015-07-28 00:00:36 · 5165 阅读 · 0 评论 -
【Android UI】ListView系列二(自定义Adapter订阅新闻栏目)
目标:自定义适配器Adapter实现点击每个item订阅按钮上一篇介绍了listview的基本属性以及ArrayAdapter和SimpleAdapter的简单实用,链接:listview使用方式基础篇。今天主要介绍一下自定义adapter,来实现稍微复杂点的功能,今天实现的效果是:类似于listiew展示许多可供订阅的栏目,每个栏目最右端有订阅按钮,用户点击订阅可以订阅该栏目,再次点击可取消订阅。原创 2015-08-01 22:44:51 · 1342 阅读 · 0 评论 -
【Android 分享】ShareSDK微信分享详解
目前市面上大大小小的软件,几乎都支持分享的功能,前几天在做的项目中也有此功能,使用的ShareSDK来实现的微信分享功能,下面就跟着我来一步步实现微信分享吧!ShareSDK介绍:ShareSDK官网,Mob移动开发者服务平台,为全球移动开发者提供社会化分享SDK、手游视频录像SDK、免费手机短信验证码SDK,BigApp掌上社区等服务。原创 2015-08-14 00:44:52 · 10321 阅读 · 0 评论 -
【Android 开源项目】下拉刷新Android-PullToRefresh介绍
目前市面上的大多数APP都包含下拉刷新的功能,今天介绍一个github上非常有名的下拉刷新开源项目,可以在项目中直接使用,非常简单。github地址:Android-PullToRefresh。原创 2015-09-01 13:33:26 · 975 阅读 · 0 评论 -
【Android】Scheme详解
说到scheme之前一直很少接触,基本上没有使用过,最近项目中使用到了scheme,研究了一下,scheme是下data标签的一个属性,通过scheme以及action的设置可以进行页面的跳转。当我们通过Intent启动一个Activity的时候,一般分为显式跳转和隐式跳转,而隐式跳转我们通过setAction方法就可以实现原创 2015-11-15 18:46:19 · 16507 阅读 · 2 评论 -
【版本控制】git学习笔记(三)
接着git学习笔记(二)学习,今天学习下git分支管理。1.创建合并分支默认创建的git目录只有master一个分支,现在我们创建dev分支,然后切换到dev分支:$ git checkout -b devgit checkout命令加上-b参数表示创建并切换,相当于以下两条命令:$ git branch dev原创 2016-04-25 15:38:06 · 2812 阅读 · 0 评论 -
【Android短信拦截】自动填充短信验证码
注:转载请注明出处!在Android开发中,为了达到某种目的,比如为了安全性更好,有些APP需要验证码才能进行某些操作,当接收到验证码短信的时候,验证码会自动填写在输入框中,虽然是个小功能,但是会给用户更好的体验。要实现上述功能,需要拦截短信,截取短信中的验证码信息,下面让我们一步步来实现。原创 2016-04-27 15:01:59 · 6798 阅读 · 10 评论 -
【Android】EventBus两分钟入门实例
1.EventBus优缺点EventBus 作为 Android 开发中常用的框架,拥有着许多优点:调度灵活。不依赖于 Context,使用时无需像广播一样关注 Context 的注入与传递。父类对于通知的监听和处理可以继承给子类,这对于简化代码至关重要;通知的优先级,能够保证 Subscriber 关注最重要的通知;粘滞事件(sticky events)能够保证通知不会因 Subscriber原创 2016-05-10 15:16:59 · 1738 阅读 · 0 评论 -
【Android 动画】View Animation详解(一)
安卓平台目前提供了两大类动画,在Android 3.0之前,一大类是View Animation,包括Tween animation(补间动画),Frame animation(帧动画),在android3.0中又引入了一个新的动画系统:property animation,即属性动画。本篇文章主要介绍View Animation的基本使用方法与技巧,属性动画将在下一篇博文中介绍。原创 2015-06-18 02:58:05 · 6815 阅读 · 2 评论 -
【版本控制】git学习笔记(一)
1. 集中式vs分布式——Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢? 先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。原创 2016-04-20 11:32:40 · 1649 阅读 · 0 评论 -
【版本控制】git学习笔记(二)
关于git的基本使用请阅读上篇博文内容,【版本控制】git学习笔记(一)。1.远程仓库Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。原创 2016-04-20 14:11:30 · 1758 阅读 · 3 评论 -
【Android】首页图片轮播效果(淘宝、京东首页广告效果)
目前很多APP中都有这个图片轮播的功能,项目中也时常会用到,图片轮播一般是在用户不主动进行切换的时候每隔一段时间进行自动切换,用户主动切换时停止自动切换,手指离开时重新计时开始轮播;原创 2016-05-05 09:45:35 · 4008 阅读 · 3 评论 -
【Android】RecyclerView详解(一)
1.介绍RecyclerView是比 ListView 更高级且更具灵活性的组件。 此组件是一个用于显示庞大数据集的容器,可通过保持有限数量的视图进行非常有效的滚动操作。 如果您有数据集合,其中的元素将因用户操作或网络事件而发生改变,请使用 RecyclerView 小组件。RecyclerView使用起来很方便因为它: 提供了一种插拔式的体验,高度的解耦,异常的灵活使用;原创 2016-06-01 17:00:10 · 6834 阅读 · 4 评论 -
【Android】RecyclerView详解(二)
上篇文章介绍了RecyclerView的基本使用,今天我们来着重实践一下RecyclerView瀑布流的效果以及上拉加载的功能;如果您对RecyclerView还不太了解的话请先阅读下上篇文章【Android】RecyclerView详解(一);原创 2016-06-03 12:46:36 · 5189 阅读 · 0 评论 -
【Android】GreenDao操作外部DB数据库文件
1.背景所谓外部数据库文件此处指的就是一个在外部单独创建的db文件,假设有这么一个场景,我们项目中有一些本地数据,不需要接口去获取的(不需要进行网络操作),写死的数据,比如全国各个省各个市的一些基本信息,每个市的信息可以作为表里的一条记录存放,在项目中使用,此时如何我们已经有了包含这些信息的db文件,我们就可以通过greendao来操作这个db文件,更具方便进行开发工作,当然这只是个模拟情况,至于合原创 2016-07-13 12:42:40 · 9464 阅读 · 2 评论 -
【Android】跨进程通信AIDL和messenger详解
1.定义我们都知道,Android应用一旦启动就会生成一个以包名为名字的进程,当然我们还知道android中很多manager都是运行在system server进程中的,像AMS,PMS,WMS等,它们都是通过binder来进程远程调用,说到这就不得不说多进程之间的通信问题,进程不像线程那样,多线程可以共享内存,而每个进程的内存都是独立的,无法直接访问,因此安卓提供了binder来进行进程间的...原创 2019-03-28 22:11:21 · 662 阅读 · 0 评论