自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 MVP模式在Android项目中的使用

  以前在写项目的时候,没有过多考虑架构模式的问题,因为之前一直做J2EE开发,而J2EE都是采用MVC模式进行开发的,所以在搭建公司项目的时候,也是使用类似MVC的架构(严格来讲,之前的项目还算不上MVC模式,只是简单将网络请求与界面分离,然后通过Handle通知更新界面)。这种写法,在后面随着项目越来越大,Activty或者Fragment中代码也会越来越多,导致项目的维护变的越来越...

2015-12-23 22:36:00 445

转载 Android带多选功能的PhotoPicker

最近利用闲碎的一些时间开发了一个Android库PhotoPicker,前面一篇文章也介绍了,Android高仿微信图片选择功能的PhotoPicker,之前没有加入选择多张图片的功能,现在加上之后一个完整的PhotoPicker库终于算是完工了。动态效果图使用方法引入PhotoPicker库,在需要使用图片选择功能的地方添加如下代码:1 I...

2015-11-21 16:01:00 318

转载 Android高仿微信图片选择功能的PhotoPicker

  类似于微信修改头像的功能基本上每个app都会有,以前公司开发的项目就有修改头像的功能,但是用的Android系统自带的图片选择器。用Android系统的图片选择器有个好处就是稳定,不会有什么问题。但也有它的缺点,比如不可定制,我们想要修改一下符合自己app的风格无法做到。  既然大部分app都要用到图片选择器,为啥我不自己写一个呢?难不成每次都用系统自带的?那显得太没水平。所以,...

2015-11-15 21:01:00 397

转载 博客搬家通知

大家好,谢谢大家长久来的支持。该博客已迁移至:www.liuling123.com现正在征集友链,有意向的请留言。转载于:https://www.cnblogs.com/liuling/p/15-11-04-2.html...

2015-11-04 23:27:00 165

转载 RecyclerView的使用

什么是RecyclerView RecyclerView是Android 5.0materials design中的组件之一,相应的还有CardView、Palette等。看名字我们就能看出一点端倪,没错,它主要的特点就是复用。我们知道,Listview中的Adapter中可以实现ViewHolder的复用。RecyclerView提供了一个耦合度更低的方式来复用Vi...

2015-11-04 13:08:00 103

转载 Android自定义相机拍照、图片裁剪的实现

  最近项目里面又要加一个拍照搜题的功能,也就是用户对着不会做的题目拍一张照片,将照片的文字使用ocr识别出来,再调用题库搜索接口搜索出来展示给用户,类似于小猿搜题、学霸君等app。  其实Android提供Intent让我们打开系统的相机,但是系统相机跟自己app风格不搭,而且用起来体验不好。所以我使用了SDK提供的camera API自定义了一个相机,并且在相机界面上面添加了参考...

2015-10-28 23:00:00 507

转载 ListView实现Item局部刷新

  对于ListView数据的刷新大家都知道,改变Adapter的数据源,然后调用Adapter的notifyDateSetChanged()方法即可。  但是博主在做公司项目的时候,有个下载模块,因为可能同时下载好几个数据,所以用的listview展示所有正在下载的内容。因为下载进度要实时更新,所以要不停的调用notifyDateSetChanged刷新数据。这样会不停的重新绘制...

2015-10-20 21:44:00 157

转载 AsyncTask实现多任务多线程断点续传下载

  这篇博客是AsyncTask下载系列的最后一篇文章,前面写了关于断点续传的和多线程下载的博客,这篇是在前两篇的基础上面实现的,有兴趣的可以去看下。  一、AsyncTask实现断点续传  二、AsyncTask实现多线程断点续传  这里模拟应用市场app下载实现了一个Demo,因为只有一个界面,所以没有将下载放到Service中,而是直接在Activity中创建。在正式的...

2015-10-16 21:29:00 203

转载 Android中使用自定义View实现下载进度的显示

  一般有下载功能的应用都会有这样一个场景,需要一个图标来标识不同的状态。之前在公司的项目中写过一个,今天抽空来整理一下。  一般下载都会有这么几种状态:未开始、等待、正在下载、下载结束,当然有时候会有下载出错的状态。等待状态是指用户点击开始下载,但是线程池中没有空闲的线程来处理该次下载,所以状态为等待。效果图:  这里我只是演示了一下下载和暂停的状态,其他状...

2015-10-15 18:09:00 204

转载 Android中Parcelable接口的使用

  在做开发的过程中,序列化是非常常见的。比如要将对象保存本地磁盘或者在网络上传输等。实现序列化有两种方式,一种是实现Serializable接口,第二种是实现Parcelable。Serializable与Parcelable的区别  1、Serializable是JDK提供的接口,而Parcelable是Android SDK提供的。  2、Serializable序列化...

2015-10-14 14:46:00 136

转载 AsyncTask实现多线程断点续传

  前面一篇博客《AsyncTask实现断点续传》讲解了如何实现单线程下的断点续传,也就是一个文件只有一个线程进行下载。  对于大文件而言,使用多线程下载就会比单线程下载要快一些。多线程下载相比单线程下载要稍微复杂一点,本博文将详细讲解如何使用AsyncTask来实现多线程的断点续传下载。一、实现原理  多线程下载首先要通过每个文件总的下载线程数(我这里设定5个)来确定每...

2015-10-13 20:11:00 126

转载 AsyncTask源码分析

关于AsyncTask的用法可以参看前面一篇博客《AsyncTask实现断点续传》,本文只解析AsyncTask的源代码。AsyncTask.execute方法:1 public final AsyncTask<Params, Progress, Result> execute(Params... params) {2 ...

2015-10-11 00:19:00 119

转载 AsyncTask实现断点续传

  之前公司里面项目的下载模块都是使用xUtils提供的,最近看了下xUtils的源码,它里面也是使用AsyncTask来执行异步任务的,它的下载也包含了断点续传的功能。这里我自己也使用AsyncTask也实现了简单的断点续传的功能。  首先说一说AsyncTask吧,先来看看AsyncTask的定义:1 public abstract class AsyncTask<...

2015-10-10 11:34:00 161

转载 Android布局优化之过度绘制

如果一个布局十分复杂,那么就需要来排查是否出现了过度绘制,如果出现了,那么很可能会造成刷新率下降,造成卡顿的现象。那么什么是过度绘制呢?过度绘制就是在同一个区域中叠加了多个控件。这就像小时候我们画画,白纸就是没有绘制的画板,如果我们画了一个房子,涂上了红色,又在上面画了窗户,图上了棕色,窗户上又画了蓝色的玻璃,这重重复的叠加就是过度绘制,在白纸上的结果是,过度绘制的区域纸会被水笔浸的比较...

2015-10-08 14:38:00 109

转载 【转】Android布局优化之ViewStub

ViewStub是Android布局优化中一个很不错的标签/控件,直接继承自View。虽然Android开发人员基本上都听说过,但是真正用的可能不多。ViewStub可以理解成一个非常轻量级的View,与其他的控件一样,有着自己的属性及特定的方法。当ViewStub使用在布局文件中时,当程序inflate布局文件时,ViewStub本身也会被解析,且占据内存控件,但是与其他控件相比,...

2015-10-08 12:26:00 93

转载 闲暇时间开发的个人app

  最近一段时间公司不是很忙,晚上基本没怎么加班。所以自己利用晚上在家的时间开发了一个app(奇趣营),其实自从转android开发以来,就有想过要自己开发一个app。一方面可以提升自己的经验;另一方面可以学习非开发方面的知识,比如推广运营之类的。当然,还有一方面原因,就是想在app内加入广告什么的来获取收入(这个很现实,呵呵)。 决定开发一个个人app,这是一件简单的事情,但...

2015-10-07 20:42:00 161

转载 内存缓存LruCache实现原理

  自己项目中一直都是用的开源的xUtils框架,包括BitmapUtils、DbUtils、ViewUtils和HttpUtils四大模块,这四大模块都是项目中比较常用的。最近决定研究一下xUtils的源码,用了这么久总得知道它的实现原理吧。我是先从先从BitmapUtils模块开始的。BitmapUtils和大多数图片加载框架一样,都是基于内存-文件-网络三级缓存。也就是加载图片的时...

2015-09-24 18:35:00 163

转载 layer-list实现只有左、右和下边框的圆角矩形

项目中需要实现如下效果的布局也就是一个左右下角带圆角,上方不带圆角的白色背景矩形,而且只有左、右和下边框,颜色为浅灰色。当然,切一个.9图片作为背景也能实现,但是能用代码实现的还是尽量用代码实现,因为图片过多一个消耗内存,另一个还增加apk大小。这种效果可以通过layer-lsit来实现,在drawable文件夹下面建一个xml文件,具体代码如下: 1 <?...

2015-09-23 16:27:00 234

转载 Activity后台运行一段时间回来crash问题的分析与解决

最近做项目的时候碰到一个棘手的问题,花了不少时间才找到原因并解决。特此记录这个被我踩过的坑,希望其他朋友遇到此问题不要调到这坑里去了。问题描述: 1、背景:我的app中某个界面的Activity是继承FragmentActivity,因为此界面包含两个Fragment。这里我称为FragmentA和FragmentB吧。在Activity中有个刷新按钮,用来刷新View...

2015-09-21 11:25:00 403

转载 Android Studio导入github下载的工程

现在从github上面现在的项目大部分都是Android Studio工程,那么问题来了,从github上面down一个工程下来,怎么导入android studio呢?对刚从eclipse转Android Studio的童鞋来说,可能会遇到各种问题。下面方法可以简单快速的将github上的项目导入android studio并运行。 首先提一下,A...

2015-09-16 18:42:00 1652

转载 Android数据库大批量数据插入优化

对比在android中批量插入数据的3中方式对比(各插入1W条数据所花费的时间):1、 一个一个插入 1 public static boolean insert(SQLiteOpenHelper openHelper, 2 RemoteAppInfo appInfo) { 3 if (null == appInfo) ...

2015-09-08 09:32:00 384

转载 framework中编译anroid工程并在模拟器上运行

1、在eclipse下创建android工程Hello并拷贝到“源码目录/packages/experimental”下面2、在Hello工程目录下面创建Android.mk文件,内容如下:LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_SR...

2015-08-18 09:38:00 122

转载 简单JNI使用demo

android中使用JNI的小例子,直接上代码。首先是Java类JniClient,定义native方法,User实体类就不上代码了,就简单定义了三个属性,name、age、sex。 1 package com.example.ndkdemo; 2 3 public class JniClient { 4 5 /** 6 * ...

2015-08-07 18:26:00 148

转载 解决javah生成c头文件时找不到android类库的问题

问题描述:cmd下面进入工程的bin/classes下面,执行 javah xxx.xxx.A 生成头文件,一般来说都是可以成功执行的,但是如果xxx.xxx.A类里面引用了android类库里面的类的话,就会报异常,如下图:上面因为引用了android.graphics.Bitmap,所以导致生成头文件失败。解决办法:执行javah命令的时候...

2015-08-05 18:26:00 147

转载 JNI的native代码中打印日志到eclipse的logcat中

1 添加ndk对log支持若需要添加ndk对log的支持,只需要通过以下2步即可实现。1.1 修改Android.mk如生成的库文件是“.so文件”,则在Android.mk中添加如下内容:LOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib -llog如生成的库文件是“.a文件”,则在Android.mk中添加如下内容:LOCAL_LDLIBS:=-llog1....

2015-08-05 16:52:00 184

转载 Android.mk简介<转>

文章参照:http://blog.sina.com.cn/s/blog_67d8d7060100q8un.htmlAndroid.mk文件是GNU Makefile的一小部分,它用来对Android程序进行编译。因为所有的编译文件都在同一个 GNU MAKE 执行环境中进行执行,而Android.mk中所有的变量都是全局的。因此,您应尽量少声明变量,不要认为某些变量在解析过程中不...

2015-08-05 16:42:00 81

转载 java.lang.ClassCastException: com.sun.proxy.$Proxy27 cannot be cast to com.bbk.n002.service.Question...

1 严重: Servlet /N002-1.0 threw load() exception 2 java.lang.ClassCastException: com.sun.proxy.$Proxy27 cannot be cast to com.bbk.n002.service.QuestionService 3 at com.bbk.n002.servlet.C...

2014-08-23 08:33:00 132

转载 ShardedJedisPool的使用

1 package com.test; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import redis.clients.jedis.JedisPoolConfig; 7 import redis.clients.jedis.JedisShardInfo; 8 impo...

2014-04-21 21:02:00 238

转载 Java中使用Jedis操作Redis

使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址:http://files.cnblogs.com/liuling/commons-pool-1.5.4.jar.zi...

2014-04-19 20:55:00 236

转载 Redis中常用命令

连接操作相关的命令quit:关闭连接(connection)auth:简单密码认证持久化save:将数据同步保存到磁盘bgsave:将数据异步保存到磁盘lastsave:返回上次成功将数据保存到磁盘的Unix时戳shundown:将数据同步保存到磁盘,然后关闭服务远程服务控制info:提供服务器的信息和统计monitor...

2014-04-19 20:08:00 115

转载 Redis安装及主从配置

一、何为Redis  redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memca...

2014-04-19 17:38:00 139

转载 Redis配置文件参数说明

1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定pidfile /var/run/redis.pid3. 指定Redis监听端口,默认端口为6379,作者在...

2014-04-19 16:35:00 76

转载 CentOS6.5中修改yum源

在自己安装的CentOS6.5中使用yum安装软件,总是提示404错误信息,百度后发现原来要设置yum源。在安装完CentOS后一般需要修改yum源,才能够在安装更新rpm包时获得比较理想的速度。国内比较快的有163源、sohu源。这里以163源为例子。1. cd /etc/yum.repos.d2. mv CentOS-Base.repo CentOS-Base.rep...

2014-04-14 23:40:00 247

转载 org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type sette...

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:109) at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:...

2014-03-20 22:09:00 108

转载 Spring MVC报异常:org.springframework.web.util.NestedServletException: Request processing failed

在使用SpringMVC绑定基本类型(如String,Integer等)参数时,应通过@RequestParam注解指定具体的参数名称,否则,当源代码在非debug模式下编译后,运行时会引发HandlerMethodInvocationException异常,这是因为只有在debug模式下编译,其参数名称才存储在编译好的代码中。 譬如下面的代码会引发异常: Java代码 ...

2014-03-06 09:12:00 840

转载 Spring MVC实现上传文件报错解决方案

报错代码:org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.web.multipart.MultipartFile]: Specified class is an interface org.springf...

2014-03-05 15:38:00 150

转载 JNI学习小结

Java中类型与C/C++中对应关系Java中的类的对应Sign签名, 用来识别对应各个方法。JDK下的javap.exe能输出签名。用法javap -s -p 完整类名  下面是几个例子程序:1、C++本地方法中获取Java中的变量以及调用Java中的方法  Java代码: 1 package com.test; ...

2013-12-22 22:18:00 117

转载 Java通过JNI调用C++程序

  JNI是Java Native Interface的缩写,中文为JAVA本地调用。使用JNI可以很方便的用我们的Java程序调用C/C++程序。很多时候,某些功能用Java无法实现,比如说涉及到底层驱动的一些功能,这时候我们就可以利用JNI来调用C或者C++程序来实现,这就是JNI的强大之处。但是JNI也有它的缺点,使用java与本地已编译的代码交互,通常会丧失平台可移植性。  ...

2013-12-20 23:10:00 165

转载 Linux cut命令用法

cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。(1)其语法格式为: cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]使用说明 cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。 如果不指定 File...

2013-12-08 22:27:00 126

转载 Linux sed命令详解

1. Sed简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编...

2013-12-07 23:20:00 75

空空如也

空空如也

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

TA关注的人

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