自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欢迎关注微信公众号:DroidMind

技术干货,工具分享

  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android设计模式之建造者模式(Builder Pattern)

假如一个对象由许多不同的属性构造,我们想要构造一个我们自己指定特定属性的对象,最简单的方法就是为每种情况提供一个构造函数,我们根据不要的构造函数来得到我们需要的包含了指定属性的对象。我们还是举个例子吧。一个人有姓名、性别、年龄、身高,体重这五个属性组成,当我们创建一个人这个对象的时候,我们可能有下面这些情况:1、只希望指定姓名 2、只希望指定性别 3、只希望指定年龄 4、只希望指定身高 5、

2015-10-25 18:36:04 7652 2

翻译 Java异常处理手册和最佳实践

Java异常处理框架是非常强大并且很容易理解和使用,异常可能产生于不同的情况,例如:用户错误数据的输入,硬件故障,网络连接失败,数据服务器故障等等,下面我们需要学习在java中如何处理这些异常。在程序执行的时候,无论什么时候产生错误,都会创建一个Exception对象并且正常的程序流也会中断,JRE会尝试找到处理这个异常的处理者。一个异常对象包含了许多的调试信息,例如:方法层次、产生异常的行号、异常

2015-10-21 15:26:48 3767

原创 Android线程浅析

当一个应用被启动,系统就会创建一个线程来执行这个应用,这个线程被称为主线程。这个线程非常的重要,它的作用主要有以下两点: 1、它负责把事件分发给对应的UI组件,包括绘制事件。 2、它负责应用与UI之间的交互,这些UI就是android.widget和android.view包中的组件。总得来说,它就是负责事件的分发和交互,它跟用户界面UI组件密切相关,所以主线程也被称为UI线程。运行在同一进程的

2015-10-17 15:53:28 526

原创 Android中Runtime类解析及finalize()讲解

在Android中有一个Runtime类,这个类主要是用来让Java应用程序可以与它所在的运行环境进行交互,我们的应用不能创建这个类的实例,如果我们希望得到这个实例的话,直接调用Runtime的静态方法来得到这个类的实例。1、获取Runtime实例 Runtime runtime = Runtime.getRuntime();2、调用相应的函数操作下面我们来看看它里面有哪些函数?public vo

2015-10-13 11:09:17 3040

原创 Android中AsyncTask源码解析

AsyncTask可以实现异步工作,它将耗时操作放在一个工作线程中进行,然后将这个工作线程的结果发送给UI线程来进行UI更新操作,用起来非常的方便。下面我们先来简单说说AsyncTask的用法吧?public void onClick(View v) { new DownloadImageTask().execute("http://example.com/image.png"); }pri

2015-10-12 19:49:32 751

原创 Executor线程池的几种用法

下面将介绍线程池的几种用法 一、Executor执行Runnable任务import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class TestCachedThreadPool{ public static void main(String[]

2015-10-12 17:38:12 3150

原创 Android获取到inflate服务的方式及inflate的解析过程

Android获取到inflate服务总共有三种方式: 1、使用getSystemService(Context.LAYOUT_INFLATER_SERVICE)mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); mInflater.inflate(R.layout.main

2015-10-11 19:12:40 1264

原创 【内存优化】避免使用Enum

图片来自:为什么Android中不建议使用Enums在Android官网上已经明确指出应该在Android避免使用Enum,因为与静态常量相比,它对内存的占用要大很多。下面有它们的一个比较:假设我们有这样一份代码,编译之后的dex大小是2556 bytes,在此基础之上,添加一些如下代码,这些代码使用普通static常量相关作为判断值: 增加上面那段代码之后,编译成dex的大小是2680 byte

2015-10-08 17:48:01 5997

原创 使用UncaughtExceptionHandler捕获运行时异常

前面我们知道Exceptions分为可检查异常(checked exceptions)和运行时异常(runtime exception)。具体参照文章Java异常处理手册和最佳实践,对于可检查异常,我们必须对它进行处理,要么捕获要么在方法上使用throws抛给调用者;运行时异常很大可能是因为程序员造成的,它往往是可以避免的,它是无法预测的,所以不需要进行捕获,也不需要在方法上添加throws关键字来

2015-10-21 16:37:16 3265

原创 Android属性动画之XML定义方式

前面我们讲到的属性动画都是使用代码的定义方式:Android属性动画之ValueAnimator和Android属性动画之ObjectAnimator和AnimatorSet,下面我们再来看看使用XML文件该怎么做。(1) XML文件位置:res/animator/filename.xml (2) 文件编译后的类型:ValueAnimator, ObjectAnimator, AnimatorSe

2015-10-16 11:22:50 7711 5

原创 Android开发相关问题汇总

下面将总结一些Android开发相关的问题,从整体上来把握Android开发,这些问题主要都是摘自别人的总结。 Android开发的主要问题包括五个方面:1.性能;2.产品质量;3.产品迭代;4.多进程架构;5,其它典型问题。在性能方面,运行速度依赖于性能分析、优化UI布局,优化算法和数据结构和业务逻辑调整。防止内存泄露是一个需要特别注意的问题。当然,占用内存占用的因素还包括不够优化的数据结构、图片

2015-10-16 10:14:40 830

原创 Android属性动画之ObjectAnimator和AnimatorSet

从上一篇文章Android属性动画之ValueAnimator我们知道ValueAnimator是监听动画过程,自己实现属性的改变,但是ObjectAnimator就有所不同,它真正可以作用在一个对象上,并且明确的指定了要更改的属性,属性的变化过程是它帮我们完成的,不需要我们自己来实现它的改变。我们直接来举个例子,我们希望一幅图片可以水平移动。ObjectAnimator animator = Ob

2015-10-15 20:07:54 7429

原创 Android属性动画之ValueAnimator

属性动画通过改变一个对象的属性值来进行动画,属性动画包含了以下几个特性: 1、持续时间(Duration) 主要用来定义动画的持续时间,默认值为300ms。2、时间插值器(Time interpolation) 指定时间变化的百分比,就是当前流逝时间除以指定的持续时间,这个可以自定义,继承Interpolator,重写getInterpolation方法。3、重复次数和行为(Repeat co

2015-10-14 18:42:12 6822

原创 Android动画总结之View动画

Android动画主要包括以下两种类型: View Animation(View动画) 在View动画框架中包括两种类型的动画: (1) Tween animation(补间动画) 可以对View进行一系列的动画操作,包括淡入淡出、缩放、平移、旋转四种 (2) Frame animation(帧动画) 其实就是将一个完整的动画拆分成一张张单独的图片,然后再将它们连贯起来进行播放,类似于动画

2015-10-14 14:17:58 728

原创 【UI布局优化】Android布局优化的几种方式

在Android中,布局优化越来越受到重视,下面将介绍布局优化的几种方式,这几种方式一般可能都见过,因为现在用的还比较多,我们主要从两个方面来进行介绍,一方面是用法,另一方面是从源码来分析,为什么它能起到优化的效果。一、几种方式的用法 1、布局重用<include />这个标签的主要作用就是它能够重用布局文件,如果一些布局在许多布局文件中都需要被使用,我们就可以把它单独写在一个布局中,然后使用这个

2015-10-12 14:18:35 2255

原创 Android进程级别与如何防止服务进程被回收

一、Android进程优先级 Android进程优先级具体如下,从高到低:1、Foreground process 前台进程下面几种情况属于前台进程: (1)Activity正在与用户进程交互(Activity的onResume已经被调用) (2)与Activity绑定的Service正在与用户交互 (3)Service运行在前台——Service中调用了startForeground函数

2015-10-10 15:57:16 4113 1

原创 自定义Notification和Toast

一、自定义Notification 在Android开发中,我们经常会使用Notification,首先来看看我们使用系统默认的Notification的通常做法。CharSequence title = "I am Notification"; int icon = R.drawable.ic_launcher; // 1、定义一个Notification对象 Notification noti

2015-10-10 11:09:21 1280

原创 Android自定义属性解析

一般情况下,我们自定义一个View的时候往往会重载它的三个构造函数,如下:public class CustomView extends View { public CustomView(Context context) { this(context, null); } public CustomView(Context context, AttributeSet

2015-10-08 14:40:32 3949

方正飞腾排版快捷键

好东西, 一定要看,把所有的方正飞腾快捷键囊括在内,好好看,一定要下哦

2012-03-11

空空如也

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

TA关注的人

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