自定义博客皮肤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的博客

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

原创 【ffmpeg】Linux编译供ffmpeg供Andoid

准备工作 1.搭建Linux服务器,如果不会搭建,可以买一个阿里云服务器,便宜的50来块钱,这个过程就省略了。 2.下载一个Xshell,安装步骤省略 3.下载ndk到服务器,下载ffmpeg到服务器,过程如下: ndk: 使用命令下载ndk:wget https://dl.g...

2019-08-30 16:37:19

阅读数 256

评论数 0

原创 【复习】Activity的启动(AMS实现交互)

以下流程参考8.0源码 一、概述 无论Launcher启动Activity还是应用内启动Activity,都会调用startActivity殊途同归。 Launcher:一个应用程序,可以认为是桌面。Launcher启动Activity就是指,我们在桌面上点击了一个应用。应用内启动Activ...

2019-06-25 20:44:54

阅读数 102

评论数 0

原创 【数据结构】单链表

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

2018-11-03 17:00:33

阅读数 56

评论数 0

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

10分钟学会HashMap底层视频分析<点击> HashMap:散列表集合,实现了Map接口,Map又实现了Iterator接口。遍历Map可以用Iteratoer实现,也可以用Entry(HashMap内部类)实现 两种实现方式: while(iterator.h...

2018-10-31 10:23:22

阅读数 3054

评论数 0

原创 【同步】volatile关键字

volatile是一种比sychronized关键字更轻量级的同步机制 访问volitile变量时,不会执行加锁操作 访问非volitile变量时,每个线程会从系统内存(主内存)拷贝变量到工作内存中,然后修改工作内存中的变量值,操控的变量可能不同,造成混乱。 volatile修饰的变量,是直...

2018-10-30 15:05:56

阅读数 71

评论数 0

原创 【网络】Http协议必读

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

2018-10-24 17:43:05

阅读数 1130

评论数 0

原创 【RecyclerView】RecyclerView之Adapter

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

2018-06-09 12:18:06

阅读数 494

评论数 0

原创 【RecyclerView】RecyclerView之概述

来源    这是v7包下的一个控件,android studio添加依赖implementation 'com.android.support:recyclerview-v7:26.1.0',源码的注释:A flexible view for providing a limit...

2018-06-09 09:27:25

阅读数 70

评论数 0

原创 【RecyclerView】RecyclerView之Recycler

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

2018-06-06 12:49:32

阅读数 172

评论数 0

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

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

2018-06-04 14:28:03

阅读数 17555

评论数 0

原创 【排序】选择排序

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

2018-05-29 15:15:37

阅读数 83

评论数 0

原创 【排序】冒泡排序

/** * 冒泡排序 * 原理:遍历数组,相邻两个,较小的往前排,较大的往后排,就像烧开水时,冒气泡一样。 * 1、先准备一个无序数组a,长度为10; * 2、准备遍历数组(for循环,i=0开始), * 再次遍历数组(嵌套for循环,j=i+1开...

2018-05-24 12:08:24

阅读数 137

评论数 0

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

Spring官网详细介绍https://projects.spring.io/spring-boot/特点(官方解释有道翻译)创建独立的Spring项目;直接嵌入TomCat、Jetty或底层,不需要不熟WAR文件;提供自用的启动器,简化Maven配置;在可能的情况下自动配置Spring;提供生产...

2018-05-14 09:35:58

阅读数 567

评论数 2

原创 【排序】插入排序

概述: 插入排序,像是给手中的扑克牌排序,从左边第二张开始抽牌,跟前面的比较,抽的牌小,就插到前面。 逻辑: 1、准备一个数组a:{2,4,5,7,1,9,3,0} 2、循环数组for(int i=1; i      如果get 0,给a[j]赋值为a[j-1](可以理解为:右边的牌向前插了一位...

2017-11-30 14:33:59

阅读数 116

评论数 0

原创 异常分类

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

2017-11-29 14:27:14

阅读数 711

评论数 0

原创 补间动画代码实现

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

2017-11-21 17:03:30

阅读数 293

评论数 0

原创 帧动画代码实现

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

2017-11-17 14:48:12

阅读数 319

评论数 0

原创 动画的概念

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

2017-11-16 16:31:00

阅读数 669

评论数 0

原创 反射的初步了解

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

2017-11-16 11:56:42

阅读数 105

评论数 0

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

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

2017-07-26 15:23:30

阅读数 968

评论数 0

原创 Android数据传递方式

Activity之间传递简单数据

2017-07-24 17:25:46

阅读数 688

评论数 0

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

Activity的四种加载模式:standard、singleTop、singleTask、singleInstance<一>standard         默认模式,不需要配置launchMode        每次都创建了该Activity的新实例        ...

2017-07-21 14:57:59

阅读数 223

评论数 0

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

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

2017-06-20 10:58:16

阅读数 592

评论数 0

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

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

2017-06-16 11:47:40

阅读数 542

评论数 0

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

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

2017-06-14 13:40:23

阅读数 1481

评论数 2

原创 Activity生命周期实践

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

2017-06-03 18:28:19

阅读数 745

评论数 0

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

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

2017-04-28 15:00:00

阅读数 1013

评论数 4

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

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

2017-04-28 14:25:40

阅读数 351

评论数 0

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

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

2017-03-10 15:24:00

阅读数 559

评论数 2

原创 【自定义】ViewGroup初探

一、简述 ViewGroup:视图容器,顾名思义用于盛放视图的。 Android的6大布局,都是自定义ViewGroup,因为都继承了ViewGroup。 此文,先不介绍自定义ViewGroup,先观察一下6大布局是怎么重写ViewGroup的。 打开LinearLayout,ctrl+o操作,看...

2017-02-15 17:34:27

阅读数 183

评论数 0

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

1、AIDL2、BroadCast3、ActivityAIDL(Android Interface Defition Language),对外暴露自身接口(该接口只支持方法,不支持常量),用到了Service。上篇关于广播的文章,为了增加难度也使用了Service。AIDL:客户端bindServ...

2017-02-14 12:05:38

阅读数 530

评论数 0

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

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

2017-02-10 18:08:33

阅读数 1478

评论数 0

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

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

2017-02-10 10:17:57

阅读数 709

评论数 2

原创 【设计模式】Builder模式

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

2017-02-07 14:08:54

阅读数 194

评论数 0

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

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

2017-02-07 08:57:53

阅读数 127

评论数 0

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

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

2017-02-06 17:30:18

阅读数 184

评论数 0

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

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

2017-02-06 17:00:06

阅读数 222

评论数 0

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

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

2017-02-04 11:08:12

阅读数 328

评论数 0

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

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

2017-02-04 10:59:45

阅读数 254

评论数 0

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

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

2017-02-03 16:49:21

阅读数 579

评论数 0

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