自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Biligle的博客

用最简单的方法,做最有效率的事儿

  • 博客(81)
  • 资源 (8)
  • 收藏
  • 关注

原创 你真的了解Handler嘛?

目录1.Handler是什么2.了解Handler的使用2-1.Handler可以直接“new”吗?2-2.具体使用2-3.主要看一下sendMessage做了些什么2-3-1.target绑定之后做了什么2-3-2.如何发送一个异步消息2-3-3.消息是何如入队的2-3-4.消息是如何出队的3.结合代码进一步研究3-1.求证“1”的结论3-1-1.首先,打开ActivityThread中的main方法3-1-2.在主线程中,Looper创建过程中,做

2021-08-23 14:33:19 256

原创 【数据结构】单链表

10分钟学会单链表视频单链表:一种链式的数据结构,每个数据相当于一个节点。(data,next)-(data,next)-(data,next)...节点=元素+指针(data,next)元素=节点中的真正数据(data);指针指向下一个节点(next)。单链表的优缺点                                 list集合优缺点优点:插入删除速度快...

2018-11-03 17:00:33 219

原创 【HashMap】HashMap底层数据结构

10分钟学会HashMap底层视频分析<点击>HashMap:散列表集合,实现了Map接口,Map又实现了Iterator接口。遍历Map可以用Iteratoer实现,也可以用Entry(HashMap内部类)实现两种实现方式:while(iterator.hasNext)for(map.Entry entry : map.getEntrySet())数据结构:数组+链...

2018-10-31 10:23:22 4195

原创 【同步】volatile关键字

volatile是一种比sychronized关键字更轻量级的同步机制访问volitile变量时,不会执行加锁操作访问非volitile变量时,每个线程会从系统内存(主内存)拷贝变量到工作内存中,然后修改工作内存中的变量值,操控的变量可能不同,造成混乱。volatile修饰的变量,是直接拿的主内存的值,就是说这个值永远是最新的,对其他线程是可见的。volatile的读写操作是原子性...

2018-10-30 15:05:56 240

原创 【网络】Http协议必读

HTTP简介:HTTP:超文本传输-协议,基于TCP/IP通信协议来传输数据。http工作原理:客户端-服务端架构,客户端通过URL向http服务端发送请求,服务端接收到请求后,向客户端发送响应信息。http默认端口号80。http三个特点http是无连接的,限制每次连接只处理一个请求,服务器处理完客户端请求,并受到客户端的应答后,断开连接,节省传输时间;http是媒体独立的,客户端和...

2018-10-24 17:43:05 1269

原创 【RecyclerView】RecyclerView之Adapter

概述        说起Adapter,网上一堆文章,讲得很详细,这篇文章就来记录一下Adapter里的观察者设计模式。RecyclerViewDataObserver(观察adapter的变化)    观察者,继承抽象类AdapterDataObserver。adapter变了,观察者就要做出对策。那么怎么知道adapter变化了?AdapterDataObserverable(通知观察者ada...

2018-06-09 12:18:06 966

原创 【RecyclerView】RecyclerView之概述

来源    这是v7包下的一个控件,android studio添加依赖implementation 'com.android.support:recyclerview-v7:26.1.0',源码的注释:A flexible view for providing a limited window into a large data set(一个灵活的,可以在有限的窗口中展示大量的数据集合的视图)。...

2018-06-09 09:27:25 200

原创 【RecyclerView】RecyclerView之Recycler

视图资源回收(Recycler)    ·基本文档解释    负责管理废弃的或者已经分离的item视图,使视图重用。   “scarpped”的定义:仍然附着在RecyclerView上,但是被标记用于移除或者复用。    由LayoutManager使用Recycler的典型用途是,获得适配器数据集的视图,该视图用于表示给定位置和item的ID的数据。    如果被复用的视图,被认为是“dirt...

2018-06-06 12:49:32 480

原创 【入门】Spring-Boot项目配置Mysql数据库

前言前面参照SpringBoot官网,自动生成了简单项目点击打开链接配置Mysql数据库在pom.xml添加依赖<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId&g...

2018-06-04 14:28:03 41305 7

原创 【排序】选择排序

标准的选择排序 /** * 选择排序 * 原理:每次都选出最小值,依次赋给数组位置:0,1,2...... */ public void sort4() { int[] a = new int[]{1, 4, 3, 6, 8, 9, 14, 15, 21, 21}; for(int i = 0; i < a.length ...

2018-05-29 15:15:37 202

原创 【入门】搭建一个Spring-Boot项目

Spring官网详细介绍https://projects.spring.io/spring-boot/特点(官方解释有道翻译)创建独立的Spring项目;直接嵌入TomCat、Jetty或底层,不需要不熟WAR文件;提供自用的启动器,简化Maven配置;在可能的情况下自动配置Spring;提供生产就绪的特性,如量度、健康检查和外部化配置;绝对没有代码生成,也不需要XML配置。创建一个Spring-...

2018-05-14 09:35:58 1367 2

原创 异常分类

异常分为两大类:Error,Exception。父类都是ThrowableError:程序发生错误,导致程序终止,捕捉不到。发生在运行时期。情景1:误写代码,比如:少了一个字母;少了一个分号。报错:找不到XX;添加“;”。情景2:误删代码,比如:删了A类;删了b方法。报错:找不到A类;找不到b方法。Exception又分为Runtime Exception(运行时异

2017-11-29 14:27:14 1602

原创 补间动画代码实现

补间动画(Tween Animation):位移,渐变,旋转,缩放动画。GitHub下载效果图:建议用xml控制动画,代码简单,不做介绍,简单说一下属性Alpha属性JAVA方法XML属性解释AlphaAnimation(float fromAlpha,…)android:fromAlpha动画

2017-11-21 17:03:30 622

原创 帧动画代码实现

帧动画(Frame Animation):多张图片,实现连环播放。

2017-11-17 14:48:12 866 2

原创 动画的概念

一、动画概述         一共分为两部分,传统动画和属性动画,传统动画又分为帧动画和补间动画。二、传统动画        帧动画          概念:多张图片连环播放。自行脑补一下小人书的效果吧。          特点:一帧一帧的,可以实现复杂的效果。          补间动画          概念:位移、渐变、旋转、缩放动画。           特

2017-11-16 16:31:00 1574

原创 反射的初步了解

反射:运行时期,获取Class对象。

2017-11-16 11:56:42 208

原创 Activity被系统杀死,数据的存储与恢复

以V7包中的AppCompatActivity为例,保存数据的方法,onSaveInstanceState(Bundle outState)触发条件:用户没有退出程序,比如按了home键,电源键,旋转Activity等。这种数据保存都是临时的。如果想保存一些持久数据,用onPause

2017-07-26 15:23:30 2418

原创 Android数据传递方式

Activity之间传递简单数据

2017-07-24 17:25:46 1806

原创 【Activity】Activity的四种加载模式

Activity的四种加载模式:standard、singleTop、singleTask、singleInstance<一>standard         默认模式,不需要配置launchMode        每次都创建了该Activity的新实例        按回退键,按照之前创建Activity实例的倒序依次出现,类似退栈的操作,而之前跳转Activity的过程是压栈的操作...

2017-07-21 14:57:59 442

原创 【注解】动态代理模式的好伙伴

一、回顾 上篇文章,动态代理模式:代理访问接口对象,根据参数,反射出代理类,执行接口方法。二、注解 通过反射,得到实例,执行注解方法。为什么使用注解呢? 1、一方面减少配置文件,如果自身做过java,肯定知道Spring框架中的@Service,只要在配置文件写入<!-- 自动扫描注解的bean --> <context:component-scan base-package="service" /> 就会自动扫描了。

2017-06-20 10:58:16 739

原创 【设计模式】代理模式Proxy---动态代理

上一篇说到的静态代理,但是有新的接口,就需要新的代理,那么我们需要一个动态代理。java.lang.reflect包里,有个封装类Proxy,正好解决这个问题。 有很多很多的人都说过Proxy,无非就是这行代码的作用,根据参数(接口),以反射机制生成动态代理,执行相应接口方法。/** * 公共接口 * @author Biligle * */public interface IPublicManager { /** * 排水 */ void out(); /** * 发电

2017-06-16 11:47:40 712

原创 【设计模式】代理模式Proxy---静态代理

一、代理模式的理解 代理访问对象,执行方法。二、举个例子:环保公司帮工厂做污水处理。 1、工厂和环保公司,签了污水处理合同。 这里,需要做两件事,创建接口IPublicManager,创建实现类ImpOut。/** * 需求:公共接口类 */public interface IPublicManager { void out();//污水排出工厂 }

2017-06-14 13:40:23 1598 2

原创 Activity生命周期实践

Activity生命周期onCreate:运行状态,用户看不到界面。开启Activity,并且创建了新实例,调用此方法。onStart:可见状态。用户可以看到界面。onRestart:重新可见状态。onResume:用户交互状态。通俗讲,用户的点击事件,在这里会被执行,直到触发了onPause......

2017-06-03 18:28:19 874

原创 轻便型轮播图---CleverBanner

CleverBanner的功能:无限滑动、指示点(颜色,大小、背景、透明度可控)、自动播放(时间、是否播放可控)。 网上很多轮播图的库,但是体积有点儿大,写的很复杂的样子,于是决定自己封装一个,其实自己写库,很简单。编写属于自己的库,参考http://blog.csdn.net/qq_29266921/article/details/51917498

2017-04-28 15:00:00 1138 4

原创 快速接口测试---PostMan插件

移动开发进入调试接口的阶段,如果遇上一个编写后台接口的大马虎,往往是很难熬的,数据出了问题,这时候,后台犯懒,再三要求移动端打断点去排查。。。很不爽。 那么,我们需要这样一个工具,很简单的就可以进行接口调试,Postman。

2017-04-28 14:25:40 486

原创 【自定义之前】自定义之前:onTouchEvent

自定义需求:1.刚进入界面外层布局,自动下滑一段距离,露出内层布局。2.外层布局可以上下滑动,并且带有透明度渐变效果,改变内边距效果。

2017-03-10 15:24:00 704 2

原创 【自定义】ViewGroup初探

一、简述ViewGroup:视图容器,顾名思义用于盛放视图的。Android的6大布局,都是自定义ViewGroup,因为都继承了ViewGroup。此文,先不介绍自定义ViewGroup,先观察一下6大布局是怎么重写ViewGroup的。打开LinearLayout,ctrl+o操作,看一下类里面的方法和结构,除了有很多方法,还包含LayoutParams类。依次打开其他布局,发现都有这个LayoutParams:布局参数。

2017-02-15 17:34:27 281

原创 【跨进程】跨进程通信---AIDL

1、AIDL2、BroadCast3、ActivityAIDL(Android Interface Defition Language),对外暴露自身接口(该接口只支持方法,不支持常量),用到了Service。上篇关于广播的文章,为了增加难度也使用了Service。AIDL:客户端bindService(...)开启服务,unBindService()关闭服务。如果系统自动调用onDestroy(...

2017-02-14 12:05:38 884

原创 【跨进程】跨进程通信---BroadCast(广播)

BroadCast是被动跨进程通信,只能被动接收访问。实际开发中常用来做什么?1.监听短信,监听来电,监听网络。2.可以增强APP之间的互动,和用户粘性。不过个人认为这个很没必要,增加粘性,最简单的方法是推送举个栗子:两个程序:A程序和B程序,A发送广播,B接收广播。

2017-02-10 18:08:33 2850

原创 【跨进程】跨进程通信---Activity

Acticity的跨进程访问,简单说就是跳转,用到Intent。注意:跳转不需要指定Context对象和Activity的Class对象。而是指定Action,有的需要Uri。错误姿势:Intent Intent = new Intent(this,BActivity.class);startActivity(intent);正确姿势(打电话):Intent intent = n

2017-02-10 10:17:57 1528 3

原创 【设计模式】Builder模式

Builder模式:(对外部隐藏构建细节)将对象的构建过程和它的表示隔离,同样的构建过程,创建不同的表示。典型用例:ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( context).threadPriority(Thread.NORM_PRIORITY - 2)

2017-02-07 14:08:54 289

原创 【设计模式】工厂模式

定义:用于创建对象的接口,让子类决定实例化哪个类 使用场景:生成复杂对象使用 代码实现:public abstract class Factory { public abstract void init(); public T product; public D store;}public abstract class Product { /**

2017-02-07 08:57:53 208

原创 【Android通讯】Android线程间通讯

Android程序中,线程分为主线程(UI thread)和工作线程(work thread)。我们要遵循单线程模型原则:安卓UI的操作线程不安全,安卓UI的操作必须在主线程进行。1、多线程任务开发可以通过以下几个方式实现:Handler、AsyncTask。详见:http://blog.csdn.net/qq_29266921/article/details/548932542、如果子线程的数据...

2017-02-06 17:30:18 300

原创 【Android通讯】多线程任务开发

多线程任务开发可以通过以下几个方式实现:1、Handler,如下:public class MainActivity extends AppCompatActivity { private MyHandler mHandler = new MyHandler(this); private TextView mTextView ; pri

2017-02-06 17:00:06 356

原创 【内存泄漏】Android内存泄漏---资源未关闭

对于使用了BraodcastReceiver,ContentObserver,File,Cursor,Stream,Bitmap等资源的使用,应该在Activity销毁时及时关闭或者注销,否则这些资源将不会被回收,造成内存泄漏

2017-02-04 11:08:12 645

原创 【内存泄漏】Android内存泄漏---Handler

Handler我们经常用在程序中,发送消息,然而这里涉及到内存泄漏隐患,非静态内部类引起的。非静态内部类引起内存泄漏,详见http://blog.csdn.net/qq_29266921/article/details/54847402举个栗子:public class MainActivity extends AppCompatActivity { priv

2017-02-04 10:59:45 422

原创 【内存泄露】Android内存泄漏---非静态内部类创建静态实例

有时候程序会重复使用资源,我们只需要创建一个实例就可以,避免重复创建实例,占用内存。这看起来,并不会产生内存泄漏,然而非静态内部类,写在Activity里就会出现问题了,Activity的生命周期导致的内存泄漏。举个栗子:public class MainActivity extends AppCompatActivity { private static I

2017-02-03 16:49:21 1031

原创 【内存泄漏】Android内存泄漏---单例内存泄漏

单例模式应用普遍,全局只有一个对象,生命周期和Application一样长。那么问题来了,生命周期问题,可能导致内存泄漏。举个栗子:存在内存泄漏(context对象)public class Single{ private static Single instance; private Context context; private

2017-02-03 15:14:29 531

原创 【闲谈】尔非我

所谓命,即是时间和空间的来回穿梭。我的时空遇到你,是巧合吗?有人说,是命,上辈子已经注定好的。若这般,我也就不再那么多惆怅,你我相盼就好。然而,尔非我。我怎知你今天如何,明天又如何。你呢?想必也未知。过于信命,就好像练了邪功,会走火入魔。有一段时间,我信了命,变得消极。我驻足不前,看着时间流逝,那时候,脑中就一个念头:耗着吧,等到天荒地老,你便来了。

2017-01-13 16:48:30 262

原创 【性能优化】性能优化---Hierarchy Viewer的使用

Hierarchy Viewer是Android自带的、检测UI的可视化工具,它可以检测UI的耗时。上干货。使用方法:打开Hierarchy Viewer打开虚拟机,运行你的程序黑屏很久,等一会儿就好了结果如图:如何看懂?使用起来很简单,但是如何运用到实际上呢?怎么知道什么样的UI耗时,什么样的UI不耗时呢?举个栗子:

2017-01-11 16:13:26 458

ndk加載gif文件

ndk加載gif文件,提升加載速度,避免OOM,修改C層代碼

2018-11-14

zero-start

简单的Spring-boot项目,官方提示步骤操作,初步搭建,持续更新

2018-05-14

PostMan插件

postman插件,可以用来快速测试接口。

2017-04-28

可以滑动的布局

1.刚进入界面外层布局,自动下滑一段距离,露出内层布局。 2.外层布局可以上下滑动,并且带有透明度渐变效果,改变内边距效果。

2017-03-10

AutoLayout

AutoLayout

2016-11-11

mvp+retrofit

mvp框架和retrofit网络框架的运用

2016-06-23

RefreshDemo

该项目是关于ListView的刷新和加载的使用,其中包括了Fragment+ViewPager和ViewPager的重写

2015-12-22

手机存储之SharedPrefrences

网络获取数据,保存到手机,有网络的时候,读取网络数据,没有网络的时候,读取缓存数据

2015-12-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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