自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 Bitmap性能问题

在编写Android程序的时候,我们总是难免会碰到OOM(OUT OF MEMORY)的错误,那么这个错误究竟是怎么来的呢,可以先看一下这篇文章ANDROID BITMAP内存限制OOM,OUT OF MEMORY。 这里,我使用Gallery来举例,在模拟器中,不会出现OOM错误,但是,一旦把程序运行到真机里,图片文件一多,必然会出现OOM,我们通过做一些额外的处理来避免

2016-06-07 16:01:53 386

原创 Activity生命周期中onStart和onResume、onPause和onStop有什么不同

之前在用Activity是也知道Activity的生命周期,但是没有深入的研究过有什么区别,抽时间看了一下源码,发现还是有区别的。   首先来说一下onStart和onResume,虽然onStart已经是启动了,但是界面只是在后台运行并没有显示在前台,而是到onResume时界面才运行到了前台;onPause和onStop也是如此,到了onStop时界面已经在前台不可见了

2016-03-27 11:53:53 1775

转载 Android实战技巧:ViewStub的应用

在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Infl

2016-02-18 13:21:35 238

转载 使用android.view.TouchDelegate扩大View的触摸点击区域

Android4.0规定的有效可触摸的UI元素标准是48dp,转化为一个物理尺寸,约为9毫米。建议的目标大小为7~10毫米,这一点与iPhone一致,这是一个用户手指能准确并且舒适触摸的区域。如果所示,你的UI元素可能小于48dp,图标仅有32dp,按钮仅有40dp,但是他们的实际可操作焦点都达到了48dp的大小。为使小的UI区域获得良好的触摸交互,根据View的特性,目前碰到

2016-02-17 09:59:04 591

转载 反射机制

1.何谓反射机制 根据网文,java中的反射机制可以如此定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 2.反射机制如何实现 谈到反射机制,最诱人的莫过于“动态”二字了。接触过C语言

2016-02-16 09:56:36 222

转载 Android中的软引用(SoftRefrerence)和弱引用(WeakReference)

在Android开发中,基本上很少有用到软引用或弱引用,这两个东东若用的很好,对自己开发的代码质量的提高有很大的帮助。若用的不好,会坑了自己。所以,在还没有真正的去了解它们之前,还是慎用比较好。   下面将通过两个Demo来结识软引用和弱引用在开发中的运用。   一. WeakReference:防止内存泄漏,要保证内存被虚拟机回收。        下面以一个时间更新的De

2016-01-18 09:21:50 556

转载 如何定位和解决Andorid的内存溢出问题(大总结)

我们经常在做项目过程中遇到内存溢出的问题,同时面试中关于OOM的问题也常常出现。这里,我将前辈们解决Andorid内存溢出的方法重新整理一番,方便自己以后使用。最后附上参考博文。一、Android的内存机制android应用层是由java开发的,android的davlik虚拟机与jvm也类似,只不过它是基于寄存器的。在java中,通过new

2016-01-18 09:09:20 621

转载 gson java对象与json转换

一. Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。Gson里最重要的对象有2个Gson 和 GsonBuilder。Gson有2个最基本的方法1) toJson() – 转换java 对象到JSON2) fromJson() – 转换JSO

2016-01-11 09:20:50 259

转载 Android 面试精华题目总结

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24015867下面的题目都是楼主在android交流群大家面试时遇到的,如果大家有好的题目或者好的见解欢迎分享,楼主将长期维护此帖。某公司高级面试题(2015-03-14)【感谢helder分享】1、详述Android

2016-01-07 13:22:33 237

转载 常见的面试问题总结

一般简单题1. Android dvm的进程和Linux的进程,应用程序的进程是否为同一个概念?DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。2. SIM卡的 EF 文件有何作用?sim卡的文件系统有自己规范,主要是为

2016-01-07 13:19:46 207

转载 各种排序算法的分析及java实现

排序一直以来都是让我很头疼的事,以前上《数据结构》打酱油去了,整个学期下来才勉强能写出个冒泡排序。由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究了一下。  排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。  内排序有可以

2015-12-29 16:45:34 207

转载 23种设计模式汇总整理

设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式

2015-12-26 12:20:14 268

转载 JAVA设计模式之单例模式

本文继续介绍23种设计模式系列之单例模式。概念:  java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。  单例模式有以下特点:  1、单例类只能有一个实例。  2、单例类必须自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例。  单例模式确保某个类只有一个实例,而且自行实例化并

2015-12-26 12:17:43 190

转载 Thread并发请求封装 - 深入理解AsyncTask类

本篇文章主要面向有一定Android基础的人,如果你还刚入门,这篇文章看起来可能会比较吃力,希望你能学到新东西。在Android开发中,由于不能再UI线程中做耗时操作,常常需要开启线程来做一些操作。但是这样一来就产生了一个问题,就是大量的线程并发执行,造成了线程维护的开销进而使得代码质量下降手机发烫又耗电。让我们来看一下KJFrameForAndroid框架是如何解决这个问题的。KJF

2015-12-25 17:31:14 319

转载 Android开发之ListView实现Item局部刷新

对于ListView数据的刷新大家都知道,改变Adapter的数据源,然后调用Adapter的notifyDateSetChanged()方法即可。通过本篇文章给大家详细介绍Android开发之ListView实现Item局部刷新,感兴趣的朋友一起学习吧对于android中的ListView刷新机制,大多数的程序员都是很熟悉的,修改或者添加adapter中的数据源之

2015-12-25 17:08:49 1155

原创 关于更新局部listview中数据的问题

最近在做项目时遇到了一个问题,怎么才能刷新listview中指定的数据,而不是调用adapter.NotifyDataSetChanged方法。代码如下:public void updateView(int itemIndex) {          //得到第一个可显示控件的位置,          int visiblePosition = mListView.getF

2015-12-25 17:04:21 266

转载 Android高手进阶:Adapter深入理解与优化

一般是针对包含多个元素的View,如ListView,GridView,ExpandableListview,的时候我们是给其设置一个Adapter。Adapter是与View之间提供数据的桥梁,也是提供每个Item的视图桥梁。以ListView为例,其工作原理为:● ListView针对List中每个item, adapter都会调用一个getView的方法获得布局视图

2015-12-25 16:59:33 255

转载 ExecutorService中submit和execute的区别

在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。在Java5以后,通过Executor来启动线程比用Thread的start()更好。在新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线程池的特性。 一、创建任务 任务就是一个实现了Runnable接口的类。创建的时候实run方法即可

2015-12-07 10:06:59 279

转载 Java 7之传统I/O - InputStreamReader和OutputStreamWriter

OutputStreamWriter 作用和原理都比较简单。就是将“字节输出流”转换成“字符输出流”。它的原理是,我们创建“字符输出流”对象时,会指定“字节输出流”以及“字符编码”。来看一下源代码,如下:[java] view plaincopyprint?// 将“字节输出流”转换成“字符输出流”    public class

2015-12-04 09:54:21 341

转载 Java 理论与实践: 线程池与工作队列

线程池有助于实现最佳资源利用率贴在我们多线程 Java 编程论坛上最常见的问题之一是“怎样创建线程池?”。几乎在每个服务器应用程序中都会出现线程池和工作队列问题。本文中,Brian Goetz 探讨了线程池的动机、一些基本实现和调优技术以及一些要避免的常见危险。3 评论:Brian Goetz, 首席顾问, Quiotix Corp2002

2015-12-04 09:52:14 236

转载 Java 7之多线程线程池 - Callable和Future

Callable接口代表一段可以调用并返回结果的代码;Future接口表示异步任务,是还没有完成的任务给出的未来结果。所以说Callable用于产生结果,Future用于获取结果。    Java 5在concurrency包中引入了java.util.concurrent.Callable 接口,它和Runnable接口很相似,但它可以返回一个对象或者抛出一个异常。    C

2015-12-04 09:50:03 301

转载 Java 7之多线程线程池 - 线程池原理(2)

线程池能够复用线程,减少线程创建,销毁,恢复等状态切换的开销,提高程序的性能。一个线程池管理了一组工作线程,同时它还包括了一个用于放置等待执行的任务的队列。ThreadPoolExecutor类中定义了一些与线程状态与活动线程数相关的一些变量,如下:[java] view plaincopyprint?private final At

2015-12-04 09:49:12 337

转载 Java 7之多线程线程池 - 线程池原理(1)

来看一下线程池的框架图,如下:1、Executor任务提交接口与Executors工具类Executor框架同java.util.concurrent.Executor 接口在Java 5中被引入。Executor框架是一个根据一组执行策略调用,调度,执行和控制的异步任务的框架。Executor存在的目的是提供一种将"任务提交"与"任务如何运行"分离开来的机制。定义如下

2015-12-04 09:47:49 275

转载 Android中的Thread与AsyncTask的区别?

Android 原生的 AsyncTask.java 是对线程池的一个封装,使用其自定义的 Executor 来调度线程的执行方式(并发还是串行),并使用 Handler 来完成子线程和主线程数据的共享。预先了解 AsyncTask,必先对线程池有所了解。一般情况下,如果使用子线程去执行一些任务,那么使用 new Thread 的方式会很方便的创建一个线程,如果涉及到主

2015-12-04 09:46:36 303

原创 iOS系统架构

最近在接触学习ios,顺便就把自己的学习心得总结总结,一是方便自己回顾,再者就是希望能为和我一样的初学者朋友提供帮助。 iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer)。下面是IOS系统结构图。iOS结构图

2015-11-29 21:55:22 219

转载 Android性能优化——使用线程池

在写程序时有些异步程序只执行一遍就不需要了,为了方便经常会写下面的代码[java] view plaincopynew Thread(new Runnable() {         @Override      public void run() {          // TODO Auto-generated metho

2015-11-28 12:42:00 253

转载 Android 线程池来管理线程

网上讲了很多的关于线程池的例子。其实在我们实际应用中,譬如说,一个应用的线程是怎样来管理的,我们就可以说,我们可以使用线程池来管理线程。eg:class DianLiang1 implements Runnable {@Overridepunlic void Run{system.println("*************11111111111111111

2015-11-28 09:06:54 295

转载 android 退出程序解决内存释放的问题

做Android项目的时候发现一个问题:当应用程序退出了,点击"设置"查看应用程序,界面显示着可以点击"强制关闭". 我认为造成这样的原因是还有开启的activity没有被destroy,然后做调试,之后发现开启的activity应该是全部都被destroy了.但是结果还是显示可以点击"强制关闭". 由于这个问题我发现了一个更加严重的问题,那就是,在我应用程序退出之后,系统并没有释

2015-11-28 09:05:31 520

原创 Android中Context、Activity、Application之间有什么区别

在开发Android程序的时候,我们经常要跟Context、Activity、Application这三个类打交道,那么这个三个类之间有什么联系和区别呢?  首先Activity和Application都是Context的子类。Context从字面上理解就是上下文的意思,在实际应用中它也确实是起到了管理上下文环境中各个参数和变量的总用,方便我们可以简单的访问到各种资源。虽然Activity

2015-11-27 09:27:54 862

转载 activity的四种启动模式

一:Standard的启动模式 Standard是默认的模式每开始一个activity,就会在栈中加一个activity,相同的也会加, 所以加多少个,就要按多少次返回键才能回到最初的界面 二:singleTop的启动模式1.清单配置:                    android:name="com.itcode.t

2015-11-27 09:19:44 708

转载 android中listview优化的集中方法

在项目中遇到了listview性能的问题,然后自己从网上参考并总结了一下,下面和大家分享分享,有不对的地方欢迎指正:listview在项目开发中用到的地方很多,用listview来展示数据,为用户呈现垂直的视图。使用listview是一个标准的适配器模式,用数据--,界面--xml以及适配器--adapter,数据被适配器按照需要的方式展现出来,xml描写了数据如何展现,activity中控制

2015-11-27 09:08:12 225

转载 启动Activity的两种方式介绍

1、在一个Activity中调用startActivity()方法。这种方法2、在一个Activity中调用startActivityRequest()方法。重写onActivityResult方法,用来接收B回传的数据。在B中回传数据时采用setResult方法,并且之后要调用finish方法。第一种方法简单直接。但是如果A调用B,并传递数据,同时B对

2015-11-25 21:14:07 404

转载 BitmapFactory.Options详解

BitmapFactory.Options详解 -- 转载 (2012-09-12 12:24:23)转载▼public BitmapinBitmapIf set, decode methods that take the Options object will attempt to reuse this bitmap

2015-11-23 14:53:04 247

原创 Android中android:gravity和android:layout_Gravity

今天在写布局时遇到了android:gravity和android:layout_Gravity这两个属性,就顺便总结了下,因为之前我自己也有时候会搞错。LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity。 他们的区别在于: android:gravity 属性是对该view

2015-11-18 15:26:39 248

转载 URI和URL的区别

这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等。但是,每次定义的时候,心里都很纠结,是该用imgUrl还是imgUri呢?同样的,另外一个问题:String HttpServletRequest.getRequestURI();和StringBuffer HttpServletReques

2015-11-17 15:08:39 236

原创 Android开发中关于UI图片资源的问题

目前来说,我们可以按照手机屏幕的标准把800×480理解为hdpi,480×320为mdpi,320×240为ldpi,根据最新的数据显示,Android所有手机中hdpi和mdpi占有九成以上的比例;还有1280×720、1920×1080等高分辨率的android手机界面。问题一:800×480、480X320、320X240分辨率的手机需要不同的图片资源;答:按照经济方便的角度来说,

2015-11-17 13:49:50 1423

原创 android系统架构的详细解析

Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序 —— 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部W

2015-11-16 14:58:48 492

空空如也

空空如也

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

TA关注的人

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