自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (2)
  • 收藏
  • 关注

原创 金额小数点后面和前面字体大小不一致的实现

今天遇到一个需求,一个价格小数点后的要比小数点前的小,如果放两个textview感觉特别麻烦,上网上查了查可以用spannable,现整理一下基本用法方便以后使用。布局:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res...

2018-07-10 19:01:29 6113

转载 Java中wait和sleep方法的区别

两者的区别这两个方法来自不同的类分别是Thread和Object 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法(锁代码块和方法锁)。 wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围) sleep必须捕获异常,而wait,notify和notifyAll不...

2018-05-21 15:03:00 235

原创 Java对一维数组倒叙排列

public class ReversTest { public static void main(String[] args) { int[] arr = { 25, 4, 15, 7, 8 }; System.out.println("===原数组=======" + Arrays.toString(arr)); ReversTest....

2018-05-21 11:22:18 2006

原创 Java中synchronized 修饰在 static方法和 非static方法的区别

Java中synchronized是用来表示同步的,synchronized可以用来修饰一个方法(static方法和非static方法),也可以用来修饰一段代码块; 看代码: public synchronized void x() throws InterruptedException { for (int i = 0; i < 5; i++) { ...

2018-05-21 10:45:26 209

原创 Java虚拟机的直接引用和符号引用

Java类从加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括,加载 ,验证 , 准备 , 解析 , 初始化 , 卸载 ,总共七个阶段。其中验证 ,准备 , 解析 统称为连接。而在解析阶段会有一个步将常量池当中二进制数据当中的符号引用转化为直接引用的过程。符号引用 :符号引用以一组符号来描述所引用的目标。符号引用可以是任何形式的字面量,只要使用时能无歧义地定位到目标即可,符号引用和虚拟机

2018-05-09 10:04:11 517

转载 android Apk打包过程概述

转自:https://blog.csdn.net/jason0539/article/details/44917745最近看了老罗分析android资源管理和apk打包流程的博客,参考其他一些资料,做了一下整理,脱离繁琐的打包细节和数据结构,从整体上概述了apk打包的整个流程。流程概述: 1、打包资源文件,生成R.java文件 2、处理aidl文件,生成相应java 文件 3、编译工程源代码,

2018-05-08 16:52:16 160

转载 Java内存区域和内存模型

JVM的内存区域划分由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执行引擎执行。在整个程序执行过

2018-05-08 15:59:28 315

原创 Glide的使用及源码分析

Glide和Picasso两个框架全方面的对比Android高效加载大图、多图解决方案,有效避免程序OOMAndroid图片加载框架最全解析(一),Glide的基本用法Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程Android图片加载框架最全解析(三),深入探究Glide的缓存机制...

2018-04-12 15:53:02 215

原创 Java开发模式--策略模式

一、策略模式的简介1.定义策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。2.使用场景针对一个对象,其行为有些是固定的不变的,有些是容易变化的,针对不同情况有不同的表现形式。那么对于这些容易变化的行为,我们不希望将其实现绑定在对象中,而是希望以动态的形式,针对不同情况产生不同

2018-03-22 15:52:46 182

转载 Java实现--选择排序

参考自:https://juejin.im/post/5a96d6b15188255efc5f8bbd选择排序之所以叫选择排序就是在一次遍历过程中找到最小元素的角标位置,然后把它放到数组的首端。我们排序过程都是在寻找剩余数组中的最小元素,所以就叫做选择排序。排序算法的稳定性:通俗地讲就是能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同。选择排序的思想选择排序的思想也

2018-03-22 14:03:45 193 1

转载 Java实现常见的查找算法--二叉树

参考:https://blog.csdn.net/smile_from_2015/article/details/72190562?utm_source=gold_browser_extension二叉排序树目标是插入和查找同样高效 假设我们的数据集开始只有一个数{62}, 然后现在需要将88插入数据集,于是数据集成了{62,88},还保持着从小到大有序。再查找有没有58,没有则插入,...

2018-03-21 15:39:26 8944 1

原创 HandlerThread的用法

首先我们先看一下官方的描述:Handy class for starting a new thread that has a looper. The looper can then be used to create handler classes. Note that start() must still be called.大致意思是HandlerThread能够新建拥有Loop...

2018-03-20 09:56:25 292

转载 IntentService的用法

参考:http://blog.csdn.net/iromkoear/article/details/63252665IntentService与Service的区别IntentService 是继承自 Service 并处理异步请求的一个类,在 IntentService 内有一个工作线程来处理耗时操作。启动IntentService的方式和启动传统的Service一样,同时,当任务执行完后,Int

2018-03-19 17:52:24 166

原创 Java设计模式--建造者模式

建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。根据中文翻译的不同,建造者模式又可以称为生成器模式。模式结构: 建造者模式通常包括下面几个角色:Bui...

2018-03-09 17:52:58 258

转载 Java中Volatile关键字详解

本文转自:https://www.cnblogs.com/chengxiao/p/6528109.html一、基本概念先补充一下概念:Java 内存模型中的可见性、原子性和有序性。可见性:  可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使

2018-03-08 13:54:31 128

转载 海量数据的处理方法

转自 http://www.cnblogs.com/subsir/articles/2590122.html1)海量数据处理的基本思想:分治(这种思想在日常生活中无处不在,蚂蚁都知道,一次运不完,分多次运)2)海量数据处理的基本手段:切割和负载均衡(切割是降低规模,负载均衡是人海战术,人多力量大,同样,机器多也计算能力强)3)海量数据处理的可靠性保障:多存几份(再好的机器也会坏,鸡蛋...

2018-03-05 11:44:28 182

转载 生产者,消费者Java实现

1 概述生产者消费者问题是多线程的一个经典问题,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品。解决生产者/消费者问题的方法可分为两类:采用某种机制保护生产者和消费者之间的同步;在生产者和消费者之间建立一个管道 第一种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用的模式。第二种管道缓冲区不易控制,被传输数据对象不易于封装等,实用...

2018-03-02 15:58:24 911

转载 Android中对dagger2的理解

转自 https://www.jianshu.com/p/cd2c1c9f68d4前言dagger2的大名我想大家都已经很熟了,它是解决Android或java中依赖注入的一个类库(DI类库)。当我看到一些开源的项目在使用dagger2时,我也有种匆匆欲动的感觉,因此就立马想一探它的究竟,到底能给我带来怎样的好处。在学习使用dagger2的过程中,我遇到了以下的一些困惑:dagger...

2018-03-02 11:53:48 190

转载 Android开发中Context详解

转自 https://www.jianshu.com/p/94e0f9ab3f1dContext都没弄明白,还怎么做Android开发?Activity mActivity =new Activity()作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言,Activity本质上也是一个对象,那上面的写法有什么问题呢?

2018-03-01 16:32:38 411

原创 Java中对象的浅拷贝与深拷贝

先了解一下什么是浅拷贝和深拷贝,简单来说: 1、浅拷贝,就是增加一个引用,实际还是指向原来的数据内存区。 2、深拷贝,不仅新增一个引用,并且会申请一块内存,引用指向新的内存区。或者这样理解 1、浅拷贝:浅拷贝只是单纯的对于对象的拷贝,对象属性对于其它对象的引用并没有进行拷贝(也就是说浅拷贝创建的对象和原来对象指向不同的地址空间,但是对象属性里面对其它对象的引用【引用属性】指向的还是同一

2018-02-22 15:51:19 191

原创 Android扫描银行卡获取银行卡号

card.io开源的银行卡扫描的三方库真的是很好用啊。首先需要在你的module的gradle的依赖文件中添加依赖compile 'io.card:android-sdk:5.5.1'2 清单文件中加入如下Activity<!-- Permission to vibrate - recommended, allows vibration feedback on scan --> <uses-

2018-02-11 11:50:05 2699 2

原创 Android中DialogFragment的简单使用及常见问题

关于DialogFragment实现自定义对话框样式及遇到的问题(主要是宽度的),这里记录一下。一.先写一个自定义的Dialog布局,布局就是普通的xml,想怎么写就怎么写(注意整体大小),以下使用R.layout.dialog_submit_product_t0代替二.写一个自定义类继承DialogFragment,接下来就和普通Fragment没什么区别了public class Custome

2018-02-08 15:03:47 571

原创 android 设置图片小妙招 setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds

手工设置文本与图片相对位置时,常用到如下方法:setCompoundDrawables(left, top, right, bottom)setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom)意思是设置Drawable显示在text的左、上、右、下位置。但是两者有些区别: setCompoundDrawablesWithI

2018-01-26 15:56:53 1845

原创 关于Android方法数量限制的问题

在项目打包的时候出现 通过在defaultConfig节中设置multiDexEnabled标签为true,开启multi-dexing支持.defaultConfig { ... multiDexEnabled = true}自己项目中的打包问题解决 参考 http://www.cnblogs.com/yeahgis/p/4660873.htmlhttps

2018-01-23 18:14:15 120

转载 Android Studio如何打包签名

Android App都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到Android手机上,下面介绍Android Studio如何打包签名的相关经验,以供方便使用Android Studio如何打包签名

2018-01-22 09:17:08 186

原创 Android中SeekBar的使用

android自带的seekbar样式不是很好看,我们在项目开发中,经常需要对其进行美化或者重写。SeekBar设置不能拖动,重写SeekBar如下import android.content.Context;import android.util.AttributeSet;import android.view.MotionEvent;import android.widget

2018-01-13 23:03:52 1028

转载 一个APP从启动到主页面经历的过程

本文主要介绍app从启动到主页面显示经历了哪些流程以及实现原理转自:https://www.jianshu.com/p/a72c5ccbd150一、流程概述启动流程:①点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求;②system_server进程接收到请求后,向zygote进程发送创建进

2018-01-05 17:43:50 402

转载 Java中保留两位小数的方法

public class format { 5 double f = 111231.5585; 6 public void m1() { 7 BigDecimal bg = new BigDecimal(f); 8 double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_

2017-12-13 18:11:08 1533

原创 Android消息推送解析

本文将介绍Android中实现消息推送的7种主流解决方案目录1.定义 在用户未打开App时,App主动向用户推送服务器最新消息。如下图: 消息推送的本质是:App将服务器更新的信息推送给用户2.作用产品的角度:功能需要,比如说资讯类产品的新闻推送、工具类产品的公告推送等等运营的角度:活动运营需要,比如说电商类产品的促销活动;召回用户 / 提高活跃度等等3.储备知识3.1 操作系统有自身的消

2017-12-05 21:20:30 711

原创 Android中Fragment的解析

一、Fragment详解1. 什么是Fragment ?你可以简单的理解为,Fragment是显示在Activity中的Activity。它可以显示在Activity中,然后它也可以显示出一些内容。因为它拥有自己的生命周期,可以接受处理用户的事件,并且你可以在一个Activity中动态的添加,替换,移除不同的 Fragment,因此对于信息的展示具有很大的便利性。2. Fragment的生命周期因

2017-12-01 18:18:56 204

原创 Android中常出现内存泄漏的情况

1. 有“static”变量引用待释放类实例示例代码:public class StaticReferenceActivity extends AppCompatActivity { private static final String NAME = StaticReferenceActivity.class.getSimpleName(); private static final

2017-12-01 09:55:40 174

原创 Android四大组件之ContentProvider

一、定义ContentProvider,即内容提供者属于Android的四大组件之一。二、 作用进程间 进行数据交互 & 共享,即跨进程通信三、 原理ContentProvider 的底层是采用 Android 中的 Binder 机制四、具体使用关于 ContentProvider 的使用主要介绍以下内容: 4.1 统一资源标识符(URI)定义: Uniform Resource Identi

2017-11-29 14:30:45 151

原创 Android四大组件之Activity

一、Activity的生命周期本节内容将生命周期的情况分为两部分介绍,第一部分先了解典型的生命周期的7个部分及Activity的状态。第二部分会介绍Activity在一些特殊情况下的生命周期的经历过程。1.典型的生命周期的了解 在正常情况下,一个Activity从启动到结束会以如下顺序经历整个生命周期: onCreate()->onStart()->onResume()->onPause()

2017-11-24 15:39:53 200

原创 Android四大组件之Service

一、Service简介Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件。Service是Android中实现程序后台运行的解决方案,它非常适用于去执行那些不需要和用户交互而且还要求长期运行的任务。Service默认并不会运行在子线程中,它也不运行在一个独立的进程中,它同样执行在UI线程中,因此,不要在Se

2017-11-24 13:40:51 196

原创 Android四大组件之BroadcastReceiver

BroadcastReceiver全方位解析一、 定义BroadcastReceiver (广播接收器),属于Android四大组件之一在Android开发中,BroadcastReceiver的应用场景非常多广播,是一个全局的监听器,属于 Android 四大组件之一,Android 广播分为两个角色:广播发送者、广播接收者二、 作用用于监听 / 接收 应用发出的广播消息,并做出响应应用

2017-11-23 23:36:37 166

原创 Android中View测量、布局及绘制原理

一、View绘制的流程框架 View的绘制是从上往下一层层迭代下来的。DecorView–>ViewGroup(—>ViewGroup)–>View ,按照这个流程从上往下,依次measure(测量),layout(布局),draw(绘制)。 二、Measure流程顾名思义,就是测量每个控件的大小。调用measure()方法,进行一些逻辑处理,然后调用onMeasure()方法,在其中调用 s

2017-11-23 16:20:55 374

原创 Window、Activity、DecorView以及ViewRoot之间的关系

ActivityActivity并不负责视图控制,它只是控制生命周期和处理事件。真正控制视图的是Window。一个Activity包含了一个Window,Window才是真正代表一个窗口。Activity就像一个控制器,统筹视图的添加与显示,以及通过其他回调方法,来与Window、以及View进行交互。WindowWindow是视图的承载器,内部持有一个 DecorView,而这个DecorView

2017-11-22 18:01:41 473

原创 Android中的缓存策略--DiskLruCache

LruCache是一种内存缓存策略,但是当存在大量图片的时候,我们指定的缓存内存空间可能很快就会用完,这个时候,LruCache就会频繁的进行trimToSize()操作,不断的将最近最少使用的数据移除,当再次需要该数据时,又得从网络上重新加载。为此,Google提供了一种磁盘缓存的解决方案——DiskLruCache1 DiskLruCache实现原理使用了DiskLruCache缓存策略的APP

2017-11-21 17:45:09 457

原创 Android中的缓存策略--LruCache

一、Android中的缓存策略一般来说,缓存策略主要包含缓存的添加、获取和删除这三类操作。如何添加和获取缓存这个比较好理解,那么为什么还要删除缓存呢?这是因为不管是内存缓存还是硬盘缓存,它们的缓存大小都是有限的。当缓存满了之后,再想其添加缓存,这个时候就需要删除一些旧的缓存并添加新的缓存。因此LRU(Least Recently Used)缓存算法便应运而生,LRU是近期最少使用的算法,它的核心思想

2017-11-21 16:08:36 1793

原创 Java中静态变量和实例变量的区别?&和&&

静态变量和实例变量的区别?在语法定义上的区别:静态变量前要加static关键字,而实例变量前不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码文件,不用创建任何实例象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后

2017-11-17 16:27:48 417

mysql12314

mysql安装教程是否收到对方发的规范的地方第三方第三方

2014-10-14

坦克大战

基于Java开发的游戏

2014-04-15

空空如也

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

TA关注的人

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