自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 RN集成原生Android应用

1.设置目录结构 创建一个空目录用于存放 React Native 项目,然后在其中创建一个/android子目录,把你现有的 Android 项目拷贝到/android子目录中。 2.安装javascript依赖包 在项目根目录下创建一个名为package.json的空文本文件,然后填入以...

2019-04-22 16:01:59 237 0

原创 java反射及应用

1.反射概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是C...

2019-04-08 17:07:44 1285 0

原创 Google AAC(Android Architecture Components)实现MVVM展示架构

1.AAC架构简介 Android Architecture Components,实际上是android官方提供的一系列组件,用来实现MVVM架构。 官方架构图如下: View层 绿色框中的Activity/Fragment,继承至LifecycleActivity\Lifecycle...

2019-03-07 19:58:04 1860 0

原创 混合开发: Android与H5互相调用

1.H5调起原生 1.1 对WebView进行初始化: WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true); //允许在WebView中使用js 1.2 创建一个CustomWe...

2019-02-25 14:57:20 398 0

转载 解析RecyclerView.ItemDecoration

1.简介 RecyclerView.ItemDecoration的作用是给ItemView添加装饰,绘制更多内容,增强itemUI的效果。例子: 1)绘制分割线 2) 数据分组等 2.使用方法: ItemDecoration类中仅有3个方法,具体如下: public class Te...

2019-01-18 18:29:24 70 0

原创 RecyclerView 的ViewPageLayoutManager

实现类似抖音的的全屏上下滑动翻页效果,方案有两种: 1.ViewPage ViewPager来实现的时候,手机内存不够用的情况就会显现出来 2.RecyclerView RecyclerView可以帮我们处理内存的回收和利用 实现过程: 1.自定义LayoutManager,并且继承L...

2019-01-17 18:43:52 1121 0

原创 RecyclerView扩展知识: DiffUtil

1.简介 DiffUtil是support-v7:24.2.0中的新工具类,它用来比较两个数据集,寻找出旧数据集-》新数据集的最小变化量,定向刷新列表。 它最大的用处就是在RecyclerView刷新时,不再使用mAdapter.notifyDataSetChanged()全部刷新,全部刷新的...

2019-01-16 19:19:10 222 0

原创 RecyclerView 扩展知识:SnapHelper

1.简介 RecyclerView在24.2.0版本中新增了SnapHelper这个辅助类,用于辅助RecyclerView在滚动结束时将Item对齐到某个位置。特别是列表横向滑动时,很多时候不会让列表滑到任意位置,而是会有一定的规则限制,这时候就可以通过SnapHelper来定义对齐规则了。 ...

2019-01-16 18:47:23 79 0

原创 模块化,组件化,插件化简析

1.架构演变 1.1 单工程模式 我们开发移动项目,我相信大多用的是单工程单任务的开发模式,二话不说,直接就开始写起,是不是这样呢? new Project -> 分包 -> 写起, 简单直接粗暴,但有效率,上手快,没有杂七杂八的处理方式。这是因为项目简单,业务单一...

2019-01-16 11:31:48 328 0

原创 AS升级到3.0之后的遇到的问题与解决办法

Android Studio升级到3.0以后,原来工程的gradle配置文件会有一些不匹配的地方,会出现一些错误,主要如下:1.gradle必须升级到4.0以上我们在AS中用到的Gradle其实应该被叫做 Android Gradle Plugin,也就是安卓项目上的gradle插件;Gradle...

2018-07-09 16:07:36 275 0

原创 Gradle 使用指南

1.Gradle概述      Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。Gradle就...

2018-07-05 18:46:29 740 0

原创 ButterKnife使用详解

前言: ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤。是大神JakeWharton的力作,目前使用很广。最重要的一点,使用ButterKnife对性能基本没...

2018-04-24 19:19:28 85 0

原创 CoordinatorLayout自定义Behavior

1.Behavior简介 Behavior是CoordinatorLayout里面的一个内部类,通过它我们可以与 CoordinatorLayout的一个或者多个子View进行交互,包括 drag,swipes, flings等手势动作。 今天 我们主要着重介绍里面的几个方法 ...

2018-03-15 17:01:19 284 0

原创 CoordinatorLayout使用详解: 打造折叠悬浮效果

1.简介 CoordinatorLayout遵循Material 风格,包含在 support Library中,结合AppbarLayout, CollapsingToolbarLayout等 可 产生各种炫酷的折叠悬浮效果。 - 作为最上层的View - 作为一个 容器与一个或者多个子...

2018-03-15 11:30:42 61300 16

转载 Java泛型详解

转载自:http://blog.csdn.net/s10461/article/details/53941091 1.概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。 什么是泛型?为什么要使用泛型? 泛型,即“参数化类型”。一提到参数,最熟悉的...

2018-03-13 15:06:39 84 0

原创 Activity任务栈及启动模式详解

1.任务栈简介 1). android任务栈又称为Task,它是一个栈结构,具有后进先出的特性,用于存放我们的Activity组件。 2). 我们每次打开一个新的Activity或者退出当前Activity都会在一个称为任务栈的结构中添加或者减少一个Activity组件,因此一个任务栈包含...

2018-03-12 16:13:26 138 0

原创 RecyclView使用详解(四): 添加Header和footer

1.方法 1)其实HeaderView实际上也是Item的一种,只不过显示在顶部的位置,那么我们完全可以通过为其设置ItemType来完成。 2) 封装更简便的方法 按照常规的办法,打开我们的Adapter,然后按照我们上述的原理,添加特殊的ViewType。但是有个问题是,如果需要添加...

2018-03-05 18:57:13 332 0

原创 利用NestedScrolling实现悬浮式导航详情页

1.需要实现的效果图如下: 实现方式主要有两种: 1)、ScrollView内嵌软件介绍+ViewPager+ViewPager中是ScrollView,这种方式呢,纯原生,没有涉及到自定义控件,但是这样嵌套呢,涉及到测量以及事件的冲突处理。 2)、将做外层的ScrollView...

2018-03-05 18:14:15 640 0

原创 okHttp系列(三): 缓存

1.基本的cache OKHTTP如果要设置缓存,首要的条件就是设置一个缓存文件夹,在Android中为了安全起见,一般设置为私密数据空间。通过getExternalCacheDir()获取。如然后通过调用OKHttpClient.Builder中的cache()方法。如下面代码所示: /...

2018-02-07 17:22:06 154 0

原创 okHttp系列(二):高级功能:下载,上传以及拦截器

1.下载文件 在ResponseBody中有如下接口: byte() string() bytesStream() charStream() 其中byte()和string()是一次读取,用来获取体积比较小的内容。但如果遇到大文件的话,就应该用流的方式。 所谓下载也...

2018-02-07 15:55:39 480 0

原创 Http缓存机制

1.缓存规则解析 为方便大家理解,我们认为浏览器存在一个缓存数据库,用于存储缓存信息。 在客户端第一次请求数据时,此时缓存数据库中没有对应的缓存数据,需要请求服务器,服务器返回后,将数据存储至缓存数据库中。 HTTP缓存有多种规则,根据是否需要重新向服务器发起请求来分类,我将其分为两...

2018-02-05 17:07:16 136 0

原创 RecyclerView系列(三): 滑动事件检测

1.概述 这是一个关于RecycleView滑动事件检测RecycleView滑动到顶部或者底部的状态. 可用于实现RecycleView加载更多或者刷新(虽然刷新可以直接用SwipeRefreshLayout).也可用于某些滑动相关的需求,如FloatingActionButton的隐藏与显示...

2018-02-01 20:57:59 599 0

原创 ViewPager轮播详解

主要包括以下内容: ViewPager 基本使用(简介、适配器) ViewPager + TabLayout + Fragment 的使用 ViewPager 轮播图的使用(指示器、标题、自动轮播、首尾循环) ViewPager 的切换效果(PageTransformer)ViewPage...

2018-01-19 18:13:00 548 0

原创 Fresco的解析和使用

1.概念介绍 Fresco是Facebook开源Android平台上一个强大的图片加载库,也是迄今为止Android平台上最强大的图片加载库。 优点:相对于其他开源的第三方图片加载库,Fresco拥有更好的内存管理和强大的功能,基本上能满足所有的日常使用场景。 缺点:整体比较大,不过目前...

2018-01-18 19:14:00 2536 0

原创 Android消息机制:从源代码分析

1.概念介绍 1)、成员介绍 Message:主要功能是进行消息的封装,同时可以指定消息的操作形式; Looper:消息循环泵,用来为一个线程跑一个消息循环。每一个线程最多只可以拥有一个。 MessageQueue:就是一个消息队列,存放消息的地方。每一个线程最多只可以拥有一个。 ...

2017-12-27 17:06:55 94 0

原创 自定义View(二): OnLayout详解

1.源码分析 探讨自定义控件的第二步onLayout即确定控件的位置,上篇文章我们说到performTraversals方法中会调用host.measure方法,在调用完host.measure方法后,就会调用host.layout对View进行定位,这也是今天我们要讨论的内容。 首先我们来看...

2017-12-26 15:15:11 93 0

原创 自定义View(一): OnMeasure详解

1.从示例开始 自定义一个View,显示"HelloWorld" import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; imp...

2017-12-26 13:54:11 106 0

原创 ANR日志分析方法

1.ANR的类型 ANR一般有三种类型: 1:KeyDispatchTimeout(5 seconds) --主要类型 按键或触摸事件在特定时间内无响应 A key or touch event was not dispatched within the specified tim...

2017-12-25 16:08:37 397 0

转载 Android属性动画完全解析(三):Interpolator和ViewPropertyAnimator的用法

转载自:http://blog.csdn.net/guolin_blog/article/details/44171115 1.Interpolator的用法 Interpolator这个东西很难进行翻译,直译过来的话是补间器的意思,它的主要作用是可以控制动画的变化速率,比如去实现...

2017-11-23 19:16:16 137 0

转载 Android属性动画完全解析(二):ValueAnimator和ObjectAnimator的高级用法

转载自:http://blog.csdn.net/guolin_blog/article/details/43536355 1.valueAnimator的高级用法 在上篇文章中介绍补间动画缺点的时候有提到过,补间动画是只能对View对象进行动画操作的。而属性动画就不再受这个限...

2017-11-23 18:43:01 116 0

转载 Android 属性动画解析(一): 基本用法

转载自:http://blog.csdn.net/guolin_blog/article/details/43536355 1.为什么引入属性动画 Android之前的补间动画机制其实还算是比较健全的,在android.view.animation包下面有好多的类可以供我们操作...

2017-11-23 18:19:02 94 0

原创 RecyclerView详细使用(二):Herder添加以及adpter封装

1.RecyclerView的优势: 它自带ViewHolder来实现View的复用机制,再也不用ListView那样在getView()里自己写了 使用LayoutManager可以实现ListView,GridView以及流式布局的列表效果 通过setItemAnimator(ItemA...

2017-11-15 14:20:35 155 0

原创 Android屏幕适配详解

1.屏幕适配中的基本概念 1.1 测量单位 in:英寸inch,物理尺寸,1in =2.54厘米(cm)。4.2寸手机等等就是这个in,通常说的手机4.2寸,都是手机对角线4.2in。 dpi:这个知道英文名有助于理解意义,its english name is:  Dots Per I...

2017-10-16 11:15:40 194 0

原创 Android 5.x theme: AppCompatActivity与toolbar的结合

1.概述 Android 5.x theme 是material design风格的主题。在API22之前我们使用标题栏基本都是在ActionBarActivity的Activity中处理的,而API22之后,谷歌遗弃了ActionBarActivity,推荐我们也可以说是强制我们使用AppCom...

2017-10-12 11:15:40 309 0

原创 RxLifecycle解决RxJava内存泄漏

1.RxJava导致内存泄漏 使用RxJava发布一个订阅后,当页面被finish,此时订阅逻辑还未完成,如果没有及时取消订阅,就会导致Activity/Fragment无法被回收,从而引发内存泄漏。 写段代码测试一下,定义一个Activity,布局中显示一张图片,这样可以直观的看到此Ac...

2017-10-10 16:15:46 1292 0

转载 RecyclerView使用解析

1.概述 该控件用于在有限的窗口中展示大量数据集,可以实现ListView,GridView的功能,通过导入support-v7对其进行使用。 那么有了ListView、GridView为什么还需要RecyclerView这样的控件呢?整体上看RecyclerView架构,提供了一种插拔式的体...

2017-07-26 14:01:19 185 0

原创 RxJava详解(一)

1.RxJava 项目地址及依赖 GitHub 链接和引入依赖的 gradle 代码: Github:  https://github.com/ReactiveX/RxJava  https://github.com/ReactiveX/RxAndroid  引入依赖:  compile...

2017-07-11 18:18:36 553 0

原创 Retrofit2完全解析(二)

1. Retrofit源码解析 1.1 retrofit如何为我们的接口实现实例 通过上文的学习,我们发现使用retrofit需要去定义一个接口,然后可以通过调用retrofit.create(IUserBiz.class);方法,得到一个接口的实例,最后通过该实例执行我们的操作,那么re...

2017-07-04 11:12:23 193 0

原创 Retrofit2 完全解析(一)

1.概述      在对Android 开发中,我们都是从原生的 HttpUrlConnection到经典的 Apache公司的HttpClient,再到对前面这些网络基础框架的封装(比如Volley、AsyncHttpClient等)。Http请求相关开源框架还是很多的,今天我们讲解 Squ...

2017-07-03 18:38:48 354 0

转载 Android Service解析(二):远程Service的使用

转载自:http://blog.csdn.net/guolin_blog/article/details/9797169 关于Service其实还有一个更加高端的使用技巧没有介绍,即远程Service的用法。使用远程Service甚至可以实现Android跨进程通信的功能,下面就让我...

2017-05-18 11:42:36 172 0

提示
确定要删除当前文章?
取消 删除