自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Whatever is worth doing is worth doing well.

Never put off the work till tomorrow what you can put off today.

原创 Android 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚

随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的错误: UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536 没错,你的应用中的Dex 文件方法数超过了最大值65536的上限,简单来说,应用爆棚了. 那么让我们看一下为什么会引起这种

2014-11-10 00:05:05 183605 114

原创 Android 使用动态加载框架DL进行插件化开发

概述: 随着应用的不断迭代,应用的体积不断增大,项目越来越臃肿,冗余增加.项目新功能的添加,无法确定与用户匹配性,发生严重异常往往牵一发而动全身,只能紧急发布补丁版本,强制用户进行更新.结果频繁的更新,反而容易降低用户使用黏性.或者是公司业务的不断发展,同系的应用越来越多,传统方式需要通过用户量最大的主项目进行引导下载并安装. 怎么办?参考浏览器-插件开发模式: 一. 来可以将自己的应用分拆,某些功能可以在插件中实现,用到时再进行下载,而且不用安装. 如果

2014-10-20 00:06:28 73452 98

原创 Android WebView 因重定向无法正常goBack()解决方案

首先说下问题,初始页面为A,点击某个链接跳转到B(http://xxx.com.cn/),B页面重定向到C页面(http://xxx.com.cn/website/index.html)当调用webview.goBack()时,页面回退到B,然后接着会重定向回C页面.这样会导致两个问题: 1. 无法回退到webview的初始页面A 2. 无法正常退出Activity或者Fragment(只有还未加载完C时进行回退才能退出页面)关于如何解决这个问题其实有如下三种方案:1. 首先需要和前端开发人

2014-09-08 10:46:17 68270 22

转载 Android WebView的Js对象注入漏洞解决方案

1,使用场景我们很多时候要使用WebView来展示一个网页,现在很多应用为了做到服务端可控,很多结果页都是网页的,而不是本地实现,这样做有很多好处,比如界面的改变不需要重新发布新版本,直接在Server端修改就行了。用网页来展示界面,通常情况下都或多或少都与Java代码有交互,比如点击网页上面的一个按钮,我们需要知道这个按钮点击事件,或者我们要调用某个方法,让页面执行某种动作,为了实现这些交互,我

2014-06-27 15:30:45 5379 4

翻译 关于Android应用开发的一些安全注意事项

Android已经具有内置到操作系统的安全功能,显著降低应用安全问题的频次和影响,但作为应用程序开发人员,我们也需要注意在开发应用程序时的安全问题. 安全级别是取决于应用程序的类型和域. 这里有我们需要注意的一些潜在的安全问题,我已经收集到了这篇文章中.在这里我列出来在开发应用中需要保护应用程序最常见的一些事项:1.不要把私人或敏感数据储存在SD卡。要存储在内部存储的文件,请使用以下的模式(Context.MODE_PRIVATE)openFileOutput&openFileInput方法。如果

2014-06-06 08:17:04 7856

原创 ActivityGroup window bad token问题深入分析

TabActivity的父类是ActivityGroup,而ActivityGroup的父类是Activity。因此从Ams的角度来看,ActivityGroup与普通的Activity没有什么区别,其生命周期包括标准的start,stop,resume,destroy等,而且系统中只允许同时允许一个ActivityGroup.但ActivityGroup内部有一个重要成员变量,其类型为LocalActivityManager,该类的最大特点在于它可以访问应用进程的主类,即ActivityThread类。A

2014-05-13 10:19:08 4627

转载 Android 4.4 KitKat中SecretKeyFactory API的变动

原文地址: http://android-developers.blogspot.co.uk/2013/12/changes-to-secretkeyfactory-api-in.html随着Android 4.4的发布,开发者需要改变之前通过SecretKeyFactory从Unicode密码断语中生成对称密钥的方法。如果用户允许使用Unicode密码断语,那么这个改变将影响那些使用PBKDF2

2014-01-07 09:19:07 4513 1

原创 Android 双卡双待手机解析短信异常分析及解决

开发中,难免会遇到各种各样的适配问题,尤其是经过深度修改定制过的系统,有的无论是软硬件上都有很大的区别,这里不得不提到一种奇葩的机型,没错,那就是双卡双待的手机.由于是双SIM卡,导致用正常方法解析短信会遇到异常,这里先看下解决方案:

2013-12-31 10:10:40 10211 5

原创 Android WebView Touch事件及相关问题处理

继上一篇 Android WebView常见问题及解决方案汇总 中归纳了一些处理webview的常见问题,这次要说的是webview中的touch事件:有时候在开发中,我们需要对webview加入触摸事件的处理,比如加入滑动效果或者类似于阅读中的翻页效果,这时候我们就需要重写webview中的onTouch方法:这里要注意的是,返回值要为false,将此事件继续向下传递.否则会引起 超链接不起作用的问题.将onTouch()事件中的返回值改为false之后,有时候仍然还是不会触发onTouch()事件

2013-12-26 09:04:25 28837 2

转载 Android 3.0动画系统详解

3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中又引入了一个新的动画系统:property animation,这三种动画模式在SDK中被称为property animation,view animation,drawable animation。 1. View Animation(Tween Animation

2013-12-19 14:37:12 4609

原创 Android WebView中Header与Cookie应用场景深入剖析

首先回顾一下Cookie与Header这两个重要的概念,这里将两者做一个简单的对比Android中,Cookie的相关信息保存在/data/data/package_name/database/webview.db中.这里通过对比,Cookie从Android最早的版本已经开始支持. 但Cookie在Android2.2以上才WebView才支持headers(Android2.2才加入了webview.load(url,headers)的API).这方面还好,毕竟现在主流的手机已经普遍安装了Andro

2013-12-18 09:21:17 33445 16

原创 Android Dribbble风格边栏菜单实现

随着IOS7的推出,大量移动应用也开始进行了重新设计.,开始应用大量的扁平化.可以说现在IOS和Android的风格设计方面确实是在逐渐地靠拢.ReisdeMenu 创意灵感来自于Dribbble(Dribbble是一个面向创作家、艺术工作者、设计师等创意类作品的人群,提供作品在线服务,供网友在线查看已经完成的作品,或者正在创作的作品.)得益于Dribbble,这种IOS7风格的侧边栏首先应用在IOS上得到了实现.当然这里主要还是看一下在Android上如何来实现IOS风格的侧边栏,目前在github上也

2013-12-17 09:43:08 15645 30

原创 利用ETag缓存优化请求

为什么使用Etag请求头?Etag 主要为了解决 Last-Modified 无法解决的一些问题。1、一些文件也许会周期性的更改,但是他的内容并不改变(仅仅改变的修改时间),这个时候我们并不希望客户端认为这个文件被修改了,而重新GET;2、某些文件修改非常频繁,比如在秒以下的时间内进行修改,(比方说1s内修改了N次),If-Modified-Since能检查到的粒度是s级的,这种修改无法判断(或者说UNIX记录MTIME只能精确到秒)3、某些服务器不能精确的得到文件的最后修改时间;为此,HTTP/

2013-12-13 14:43:36 8230 3

转载 电子图书新规范EPUB3.0

EPUB 是数字出版业的工业标准之一,重要性不言而喻。2011 年,5 月 23 日 International Digital Publishing Forum(以下简称 IDPF)正式确定 EPUB3 标准。与上一代 EPUB2 标准相比,EPUB3 带来很多非常重要的变化,这些变化会对数字出版业有怎样的影响?EPUB3  vs EPUB2和 EPUB2 对比上,EPUB3 增加了如下功能:支

2013-12-02 14:29:08 8003 1

原创 Android性能测试框架Emmagee

目前移动设备,尤其是Android设备,相对于过去的J2me时代,硬件有大幅度的提高,并且更新地非常快,可以安装和运行更多的应用. 但是目前安卓市场对于应用的要求并不如苹果商店那么严格,Android系统本身内存管理上也不同于ipone. Android上应用各种无节制的后台操作,推送服务等等,都导致了手机运行时可能会遇到卡顿,电量消耗过快. 因此在开发应用时,不仅仅是完成需求,更需要对应用的性能能够提高.比如流畅性,耗电量,减少安装包体积等等.废话就不多说,这里推荐一个Android应用的性能测试工具

2013-11-30 20:15:51 11425 1

原创 Android 控制ScrollView滚动到底部

在开发中,我们经常需要更新列表,并将列表拉倒最底部,比如发表微博,聊天界面等等,这里有两种办法,第一种,使用scrollTo():这种方法较为麻烦,现在直接使用第二种:scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动到底部scrollView.fullScroll(ScrollView.FOCUS_UP);滚动到顶部需要注意的是,该方法不能直接被调用因为android很多函数都是基于消息队列来同步,所以需要一部操作,addView完之后,不等于马上就会显示,而

2013-11-28 23:28:18 101306 4

原创 Android 使用加速度传感器实现摇一摇功能及优化

目前很多应用已经实现了摇一摇功能,这里通过讲解该功能的原理及实现回顾一下加速度传感器的使用. 并且特别说明下在集成到实际项目中,如何通过优化来增强程序的健壮性:1.首先获得传感器管理器的实例sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);2.通过传感器管理器获得加速传感器accelerateSensor = getSensorManager(context).getDefaultSens

2013-11-25 09:20:12 21596 3

翻译 Android 4.4 KitKat 使用Chrome DevTools 远程调试WebView

在Google最新发布的Android 4.4 KitKat移动操作系统中,其WebView(网页视图)组件做出了一个很大的变动:因为它现在是由Chromium驱动的。Google表示,这是对Android WebView API的一次"重大修补",为应用开发者带来了与Chrome一样的渲染引擎和软件栈(software stack)。开发者还能够利用Chrome DevTools 调试WebView. 这里让我们看一下google官方文档中关于在Android上使用Chrome DevTools 远程调试

2013-11-08 09:06:55 34224 7

翻译 Android 4.4 WebView重大改动:由Chromium驱动 支持HTML5和CSS新特性

在Google最新发布的Android 4.4 KitKat移动操作系统中,其WebView(网页视图)组件做出了一个很大的变动:因为它现在是由Chromium驱动的。Google表示,这是对Android WebView API的一次"重大修补",为应用开发者带来了与Chrome一样的渲染引擎和软件栈(software stack)。            除了对最新的HTML5和CSS特性的支持,它还带来了JavaScript的性能改进(因为Chromium包含了Google的V8引擎)。采用WebV

2013-11-07 09:08:09 11566

转载 Android 4.4 新特性分析-15项大改进!

摘要: Google发布了Android 4.4 KitKat,并其同时面世的还有新旗舰Nexus 5。Android 4.4 KitKat有怎样的改进、是否值得升级呢,下面就为大家呈现Android 4.4 KitKat的全部新特性。1. 新的拨号和智能来电显示首先,新的拨号 ...Google发布了Android 4.4 KitKat,并其同时面世的还有新旗舰Nexus 5。Android 4

2013-11-06 09:43:48 6109

原创 Android WebView常见问题及解决方案汇总

Android WebView常见问题及使用注意事项汇总就目前而言,如何应对版本的频繁更新呢,又如何灵活多变地展示我们的界面呢,这又涉及到了web app与native app之间孰优孰劣的争论. 于是乎,一种混合型的app诞生了,灵活多变的部分,如淘宝商城首页的活动页面,一集凡客诚品中我们都可以见到web 页面与native页面的混合,既利用了web app的灵活易更新,也借助了native app本身的效率.当然,就会用到webview这样的一个控件,这里,我把自己使用过程中遇到的一些问题整理下来:

2013-11-05 09:26:51 214765 94

原创 Android WebView缓存机制详解

Android WebView缓存机制当我们加载Html时候,会在我们data/应用package下生成database与cache两个文件夹:我们请求的Url记录是保存在webviewCache.db里,而url的内容是保存在webviewCache文件夹下.WebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源)、H5缓存(即AppCache)。

2013-11-04 08:59:53 73457 19

原创 Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果

Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果某天看到京东商城首页的滑动广告的Banner,在流动切换的时候有立体的动画效果,感觉很有意思,然后研究了下如何实现. 废话不多说,接下来我会讲述如何实现这种效果,以及如何根据需求自定义出新的动画效果进行扩展实现.首先还是看一下京东商城上的效果:像一般做这种效果怎么办呢?我的建议还是先在github或者google code上搜索开源库. 一来开源库一般做得比较成熟,API封装得较好,耦合性比较低. 二来项目比较利

2013-10-29 09:07:40 34243 41

转载 Android4.2新特性及新增API

Android4.2新特性飓风也没能挡住 Google 的“发布会”。Google 昨晚公布了全新的 Nexus 家族,其中包括四太子 LG Nexus 4,新的 Nexus 7 以及三星 Nexus 10 平板电脑。新 Nexus 家族仍旧秉承了高配置的优良传统,不过有了彪悍的硬件,我们也需要一个出色的系统。新 Nexus 家族全线装载了最新的 Android 4.2 系统,名字仍为 Jelly

2013-10-09 22:52:39 7925 1

转载 Android4.1新特性及新增API

Android 4.1发布会已经结束,Android新一代的4.1版本,代号Jelly Bean(果冻豆)的新系统已经正式问世,除了新架构、全新通知栏和搜索功能之外,实际上这个新系统还有许多新的特性,在发布会上不能完整的展示,现在我们就对这些新特点逐一解析,让你看到4.1版系统会不会值得大家期待。1.更快、更流畅、更灵敏在演讲中,大家除了听到果冻豆这个词之外,还有一个Project Butter,

2013-10-09 22:39:12 9743 1

转载 linux下C编程详解

linux操作系统下c语言编程整理编写:007xiong原文:Hoyt等(一)目录介绍1)Linux程序设计入门--基础知识2)Linux程序设计入门--进程介绍3)Linux程序设计入门--文件操作4)Linux程序设计入门--时间概念5)Linux程序设计入门--信号处理6)Linux程序设计入门--消息管理7)Linux程序设计入门--线程操作8)Linux程序设计入门--网络编程9)Lin

2013-09-23 23:41:57 7485

原创 Android 仿PhotoShop调色板应用(四) 不同区域颜色选择的颜色生成响应

Android 仿PhotoShop调色板应用(四) 不同区域颜色选择的颜色生成响应 上一篇讲过了主体界面的绘制,这里讲解调色板应用中的另外一个核心: 颜色选择及生成.ColorPcikerView中不同部分的选择和ColorPickerPanelView中颜色显示是怎样响应的呢?这里当然少不了回调函数:ColorPickerView: public interface OnColorChangedListener { public void onColorChanged(int color);

2013-09-14 09:25:24 6617

原创 Android 仿PhotoShop调色板应用(三) 主体界面绘制

Android 仿PhotoShop调色板应用(三) 主体界面绘制 关于PhotoShop调色板应用的实现我总结了两个最核心的部分: 1. 主体界面不同区域的绘制 2. 颜色选择的生成与交互 这里我讲述一下第一要点,也就是ColorPickerDialog对主体界面的绘制. 首先还是看一下ColorPickerDialog整体显示的效果(见图1)

2013-09-13 08:59:55 7165 2

原创 Android 仿PhotoShop调色板应用(二) 透明度绘制之AlphaPatternDrawable

Android PS调色板之开源项目attenzione分析(二)ColorPickerView这里讲一下如何实现PS调色板中的透明度选择条.首先说一下要点:1. 透明度选择条实际上是基于白色(0xffffffff)和灰色(0xffcbcbcb)之间的颜色区间选取, 由此我们可以实现一个半透明颜色的选取2.该应用不仅可以做透明度颜色选取,也可以在应用中实现半透明的图像效果

2013-09-12 08:57:09 5125 2

原创 Android 仿PhotoShop调色板应用(一)概述

在前面的系列我已经将Android中颜色渲染的原理及使用做了一个整体上概述. 现在开始根据一个比较复杂的实现进行具体的分析,这就是PhotoShop中的调色板应用 这个实现要比API Demos中的ColorPickerDialog要强大得多,而且完全可以媲美PhotoShop中的调色板.根据此例完全可以得到你想要的颜色,不再仅仅是一个简单的色相上的选取,而是提供一个HSV色彩及透明度的选取.

2013-09-11 08:59:41 9897 5

原创 Android 颜色渲染(十) ComposeShader组合渲染

Android 颜色处理(十) ComposeShader组合渲染

2013-09-03 20:13:32 10221

原创 Android 颜色渲染(九) PorterDuff及Xfermode详解

Android 颜色渲染(九) PorterDuff及Xfermode详解 在讲具体的使用之前补充一点知识,这就是 ProterDuff的由来:相信大多数人看到这个ProterDuff单词很奇怪了吧,这肿么个意思呢,然后就用有道啊,金山啊开始翻译,但是翻译软件给出的结果肯定还是 ProterDuff或者"未找到".这是神马情况呢?因为ProterDuff是两个人名的组合: Tomas Proter和 Tom Duff. 他们是最早在SIGGRAPH上提出图形混合概念的大神级人物.有兴趣的童靴

2013-09-03 08:55:28 71566 9

原创 Android 颜色渲染(八) SweepGradient扫描/梯度渲染

Android 颜色处理(八) SweepGradient 扫描/梯度渲染为什么什么叫扫描渲染呢?  相信大家都看过雷达扫描的效果,尤其是在安全软件中.public SweepGradient(float cx, float cy, int[] colors, float[] positions)Parameters:cx渲染中心点x 坐标cy渲染中心y 点坐标colors围绕中心渲染的颜色数组,至少要

2013-09-02 09:07:24 25227 2

原创 Android 颜色渲染(七) RadialGradient 环形渲染实现水波纹效果

利用环形渲染我们可以做到什么? 其实很多都是非常常见的,比如上一篇实现的帮帮糖效果, 彩色的热气球,比如这里要讲到的水波纹效果,或者也可以理解为扩散色渲染效果而实现这些效果,利用RadialGradient ,只需简单几行代码:首先看一下效果图:

2013-08-31 07:48:55 19034 6

原创 Android 颜色渲染(六) RadialGradient 环形渲染

Android 颜色处理(六) RadialGradient 环形渲染public RadialGradient(float x, float y, float radius, int[] colors, float[] positions,Shader.TileMode tile)float x:  圆心X坐标float y:  圆心Y坐标float ra

2013-08-31 07:34:09 23515 3

原创 Android 颜色渲染(五) LinearGradient线性渲染

Android 颜色处理(五) LinearGradient线性渲染        相信很多人都看过歌词同步的效果, 一是竖直方向的滚动,另一方面是水平方面的歌词颜色渐变点亮效果,这种效果怎么做呢? 这就需要用到LinearGradient线性渲染,下面还是先看具体的使用:LinearGradient有两个构造函数;public LinearGradient

2013-08-30 08:55:54 33228 1

原创 Android 颜色渲染(四) BitmapShader位图渲染

Android 颜色渲染(四) BitmapShader位图渲染

2013-08-29 08:52:08 11744 6

原创 Android 颜色渲染(三) Shader颜色渲染

相信看过在上一篇中提到的三篇文章后,大家已经对颜色处理方面有更深的体会.    之前讲到颜色渐变的效果, 具体怎么做呢,这就需要应用颜色渲染. 首先要介绍Android Api中关于颜色渲染的几个重要的类:    Shader,BitmapShader,ComposeShader,LinearGradient,RadialGradient,SweepGradient看一下它们之间的关系:

2013-08-28 08:55:13 19038 7

原创 Android 颜色渲染(二) 颜色区域划分原理与实现思路

上一篇讲到ApiDemos 中的颜色选择器,该demo不能选择黑白或者具体区间颜色,这是为什么呢,还是要从原理部分讲起,首先看一下两张图:           图1                   图2看一下这两张图,有什么相似的地方么,其实在第二张图中已经标记地很明显了,无论这个选择器以什么样的图形展现,是圆形选择器也好,线性或者画板选择器也好,其实都是由七种颜色进行组成

2013-08-27 08:55:18 10787 4

原创 Android 颜色渲染(一) 颜色选择器 ColorPickerDialog剖析

Android 颜色选择器之apidemo解析      有这样一个需求,可以让用户自定义背景颜色,这就需要提供一个颜色选择器给用户.      在Android 中,如何实现这样的功能呢,遇到这种需求是,先查看一下ApiDemos,是否已经有相关的实例,果然,找到了一个可以参考的demo:ColorPickerDialog我已经把apidemos导入到eclipse中,请看截图

2013-08-26 09:00:43 17967

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