8 寒小枫

尚未进行身份认证

我要认证

三更灯火两更鸡,正是男儿读书时

等级
TA的排名 2w+

【Android】跨进程通信AIDL和messenger详解

1.定义我们都知道,Android应用一旦启动就会生成一个以包名为名字的进程,当然我们还知道android中很多manager都是运行在system server进程中的,像AMS,PMS,WMS等,它们都是通过binder来进程远程调用,说到这就不得不说多进程之间的通信问题,进程不像线程那样,多线程可以共享内存,而每个进程的内存都是独立的,无法直接访问,因此安卓提供了binder来进行进程间的...

2019-03-28 22:11:21

【Android】AsyncTask源码分析

在Android中ui是非线程安全的,更新ui只能在主线程操作,所以我们平时如果遇到子线程更新UI的情况,必须要切换到主线程上之后再执行,Handler消息机制就是一种处理方案,为了更方便的处理异步任务以及更新操作,Android在很早的版本就提供了AsyncTask类供我们处理短耗时的异步任务,方便我们子线程处理耗时任务,主线程更新UI。AsyncTask其实相当于是Handler和Threa...

2019-03-18 21:22:09

【Android】Service完全解析之必知必会

想必对于Android开发者来说,对Service一定不陌生了,作为大名鼎鼎的四大组件之一的service,在Android中有着不可替代的作用,它不像Activity那么光鲜亮丽,一般都是默默躲在后台执行着一些“见不得人的”任务,比如下载文件,音乐播放等等,即使退出应用了,它还是很顽强的在后台运行着,虽然随着android版本的不断提高,安全性的要求也越来越高,Service的一些黑科技也变得越...

2019-03-16 20:23:58

【Android】Rxjava2 Flowable详解与背压那些事

1.Rxjava1中的背压Rxjava2中有这么一个被观察者Flowable,同样作为被观察者,它和Observable有什么区别呢,在Rxjava2中,Observable不再支持背压,而新增的Flowable支持背压,何为背压,就是上游发送事件的速度大于下游处理事件的速度所产生的现象。我们来看个例子,先把rxjava切换到rxjava1.0:implementation 'io.reac...

2019-03-09 22:23:21

【Android】一张图看懂Activity的启动流程

在Android中,Activity这家伙可以说是非常重要的,无时无刻不在和它打交道,本篇不讲解activity的基本使用,而是对Activity的启动流程做个记录,但不深入分析源码实现细节,开始之前,先上一张图来总体感受一下Activity的启动流程:就像我们平时启动一个Activity那样,我们从startActivity(intent)开始。startActivity @Ove...

2019-03-07 20:33:59

【Android】Handler、Looper、MessageQueue之间的爱恨情仇

Android消息机制是比较重要的一块,必须要掌握,消息机制主要是指Handler的运行机制,Handler的运行需要MessageQueue和Looper的支撑,MessageQueue表示消息队列,内部存储了一组消息,采用单链表的数据结构来实现,不过MessageQueue也只是一个存储单元,它并不具备处理消息的功能,Looper就是来干这事的,它会无限循环是否有新消息,有就处理,没有就等着。...

2019-03-01 22:07:25

【Android】专治Activity各种疑难杂症

本篇文章主要是记录Activity各种疑难杂症,在平时使用过程中遇到的坑点,以及Activity使用难点,欢迎各位拍砖。1.setResult和finish的顺序关系当ActivtyA通过startActivityForResult启动ActivityB的时候,从ActivityB页面返回并设置setResult的时候,会回调ActivityA的onActivityResult方法,并可以通过...

2019-02-24 20:38:50

【React Native】开源一个自己入门学习的小项目

本篇是React Native开源小项目,目前完成了初始版本,至于后续会不会增加其他知识点,待定吧,数据来自gankio,页面跳转使用的react-navigation,一边学习一边写,下面是总体的效果,没有多么华丽的功能,各位看官自行查看吧!一个react native开发的Android app效果图:使用到的库:react-navigationreact-native-image-zoom

2017-12-11 09:47:42

【weex】30秒创建第一个weex项目

1.简介Weex 是一套简单易用的跨平台开发方案,能以 web 的开发体验构建高性能、可扩展的 native 应用,为了做到这些,Weex 与 Vue 合作,使用 Vue 作为上层框架,并遵循 W3C 标准实现了统一的 JSEngine 和 DOM API,这样一来,你甚至可以使用其他框架驱动 Weex,打造三端一致的 native 应用。关于搭建weex开发环境大家可以看官网教程,很详细,这里就不

2017-06-14 20:09:11

从高考到程序员,就这样慢慢的生活挺好

寂静的窗外,听不到任何斑斓的色彩,时间是最公平的东西,它在消磨着每个人的分分秒秒,它规划着每个人不一样的生活轨迹,转眼间,已经毕业两年了,打开手机,打开电脑,又是一年高考季,很久没有静下心来去回忆过去了,或许这正是我脑海里期待的自己的样子。

2017-06-08 22:02:53

【Android】Rxjava操作符系列(二)

今天天气不错啊,继续撸操作符!1.debounce作用:debounce操作符是对源Observable间隔期产生的结果进行过滤,如果在这个规定的间隔期内没有别的结果产生,则将这个结果提交给订阅者,否则忽略该结果,原理有点像光学防抖.Subscription sub = Observable.create(new Observable.OnSubscribe<Integer>() {

2017-03-02 16:52:13

【Android】Rxjava操作符系列(一)

今天开始Rxjava的学习,废话不多说了,开始撸操作符了1.Create作用:通过调用观察者的方法从头创建一个Observable.Observable<Integer> observable = Observable.create(new Observable.OnSubscribe<Integer>() { @Override public voi

2017-02-27 14:17:56

【Android】仿知乎夜间模式的实现

1.简介目前很多App都有夜间模式的功能,网上教程也是很多,最近项目不忙,抽空学习了下,在这做下记录,希望能帮到正在看博客的你,我们先来看下知乎的效果:看我的效果:卧槽,好像啊,哈哈,好吧,有点神似,关于知乎实现的分析,大家可以看下这位大神的分析,那咱们废话少说,开始实现吧。2.AppCompatDelegate方式实现在support.v7包中google提供了AppCompatDelegate类

2017-02-15 23:21:12

【Android】BottomSheetDialog详解

1.简介BottomSheetDialog是一个自定义的从底部滑入的对话框。市面上很多App都有类似的效果,今天我们实现如下效果:2.页面布局从底部弹出view的效果是BottomSheetBehavior来实现的。view必须支持嵌套滚动,而且必须是CoordinatorLayout的直接子类,来看下主题布局。<?xml version="1.0" encoding="utf-8"?><andr

2017-02-14 17:02:28

【Android】Material Design基础详解

一.简介Material Design是Google在2014年I/O大会上发布的一种新的设计规范。一经推出就好评如潮,个人是非常喜欢这种风格的,由于他只支持5.0及其以上的设备,开发者也只是自己空闲时尝尝鲜,并没用在真实的项目中去,使得其在国内的市场并不是太好。公司的设计也并没有按照找个规范来设计过App,但是市场上还是有些MD风格的App,如知乎,简书等都能找到它的身影,不管怎样;

2017-02-13 22:11:15

【Android】Dagger2从入门到再入门(进阶)

上一篇【Android】Dagger2从入门到再入门讲解了dagger2的基本使用方式,本篇介绍一下@Named,@Singleton,@Scope等其它注解的使用方式;一.@Singleton先看个例子:1.我们在MainActivity里注入两个Student对象(接着上篇讲的,不明白的可以简单浏览下上一篇文章):@InjectStudent student;@InjectStudent s

2016-12-11 14:54:21

【Android】Dagger2从入门到再入门

一.认识Dagger2Dagger2 是一个Android依赖注入框架,由谷歌开发,最早的版本Dagger1 由Square公司开发。依赖注入框架主要用于模块间解耦,提高代码的健壮性和可维护性。年初的时候就已经接触到dagger2,当时只是看了几篇博文,简单的了解了下,记得当初的感觉也是云里雾里,并未真正的理解dagger,时隔几个月,再次学习它,对dagger有了新的认识,在此作下记录;

2016-12-10 16:47:37

【Android Studio】gradle多渠道打包

1.简介由于android应用市场比较多,项目上线之前需要对每个市场进行打包,单独打包当然可以,但是如果要上传的市场比较多,这个工作量就比较大了,万一打包出现点问题还要重新再次打包,想想都害怕,所以我们可以采用多渠道打包的方式,在进行一些简单的配置后,可以一次性打包所有指定的各渠道apk文件;

2016-10-09 16:49:55

【Android】Retrofit框架缓存处理(离线缓存等)

1.简述上一篇介绍了Retrofit的基本使用,如果您还不了解请先查看Retrofit使用详解–有些相见恨晚 这篇文章;我们在开发app的时候,有一种情况不得不处理,就是在用户断网的清空下的一些页面显示和网络请求响应等一些情况的处理,在无网络的情况下,我们可以给一个默认的友好的提示页面,像这样:但是有时候有些需求是在无网络连接的情况下也需要显示数据,所以我们就可以通过缓存响应数据,在无网络的情况下也

2016-08-01 15:42:19

【Android】Retrofit使用详解--有些相见恨晚

1.Retrofit介绍Retrofit,每次浏览各大网站总会看到它的身影,虽然感觉已经如此熟悉,但是确实又相当陌生,由于一直没有在项目中使用它,今天决定好好整理下,虽然Retrofit1.0的时代已经过去,还好赶上了retrofit2.0的脚步,据说它又更强大了,废话不多说了,让我们去揭开Retrofit的神秘面纱;

2016-07-27 17:23:34

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!