自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术归档

得失寸心知,且行且珍重

  • 博客(15)
  • 收藏
  • 关注

转载 Activity Task 详解

task是一个具有栈结构的容器,可以放置多个Activity实例。启动一个应用,系统就会为之创建一个task,来放置根Activity;默认情况下,一个Activity启动另一个Activity时,两个Activity是放置在同一个task中的,后者被压入前者所在的task栈,当用户按下后退键,后者从task被弹出,前者又显示在幕前,特别是启动其他应用中的Activity时,两个Activity对

2015-08-31 11:35:53 633

转载 HTTP缓存相关头

在请求一个静态文件的时候(图片,css,js)等,这些文件的特点是文件不经常变化,将这些不经常变化的文件存储起来,对客户端来说是一个优化用户浏览体验的方法。那么这个就是客户端缓存的意义了。windows下客户端的缓存文件存放在临时文件夹中,但是这里有个问题就是这个缓存文件存放多久呢?这个是由服务端进行设置的。Expires/Cache-ControlHTTP头中的Expir

2015-08-29 21:42:55 323

转载 Android LoaderManager

Android的加载器(loader)是从Android 3.0开始出来的东西。要理解这里需要先理解为什么会出现加载器(也有地方把它说成是装载器)呢?如果没有加载器...首先Activity是我们的前端页面展现,数据库是我们的数据持久化地址,那么正常的逻辑就是在展示页面的渲染页面的阶段进行数据库查询。拿到数据以后才展示页面。但是这个逻辑有一些缺点: 首先是查

2015-08-29 21:38:03 641

原创 关于使用占位符来解决SQL注入

总结:SQL已经预编译好了,然后替换中间的占位符,这个占位符在编译后就已经确定了它只是一个参数属性。因此,用注入的代码去替换占位符,这个SQL也不会再进行编译了,所以也达不到注入的目的。SQL注入并不是一个在SQL内不可解决的问题,这种攻击方式的存在也不能完全归咎于SQL这种语言,因为注入的问题而放弃SQL这种方式也是因噎废食。首先先说一个我在其他回答中也曾提到过的观点:没

2015-08-29 21:13:03 10485 1

转载 @SuppressLint("NewApi")和@TargetApi()的区别

在Android代码中,我们有时会使用比我们在AndroidManifest中设置的android:minSdkVersion版本更高的方法,此时编译器会提示警告,解决方法是在方法上加上@SuppressLint("NewApi")或者@TargetApi()。那他们之间有什么区别呢,很简单,@SuppressLint("NewApi")屏蔽一切新api中才能使用的方法报的andr

2015-08-29 20:26:55 777

原创 Android DownloadManager 的使用及断点续传

官方API:http://developer.android.com/reference/android/app/DownloadManager.htmlClass OverviewThe download manager is a system service that handles long-running HTTP downloads. Clients ma

2015-08-29 11:16:19 11242

转载 Android应用使用SyncAdapter传输数据

在Android设备和web服务器之间同步数据会使你的应用更实用,更吸引用户,例如,将手机数据传到服务端实现数据备份,将数据从服务端取回让用户能够脱机使用。在某些情况下,用户会发现这样会更方便:通过web修改信息然后在手机上就可以继续使用,或者隔一段时间将手机上的数据上传到一个总存储区。虽然你可以在应用中设计自己的数据传输系统,但也应该考虑一下用Android的sync adater框架。它可

2015-08-28 16:32:22 1969

转载 退避算法

退避算法:    退避算法是在在单个信道的基于竞争的介质的一种访问控制(MAC)协议。每当一个以上的节点在同一时刻试图访问介质的时候,它会导致分组碰撞。如果相撞的节点试图再次访问信道,在节点做及时同步的时候数据包将发生碰撞。因此,节点需要时间位差。为了产生这种位差,退避算法(例如二进制指数退避(BEB)) 。例如,在BEB算法中,每当一个节点的传输涉及在与另一个节点的传输发生碰撞,两个

2015-08-28 11:33:20 6302

转载 Android 应用启动界面自定义

在新的Material Design规范中,讲到了 Launch Screens(启动界面),这里的启动界面不是大家常见的 Splash Screen,本文介绍如何在 Android 应用中实现一个自定义的启动界面。大家都知道,当你从桌面上点击一个应用到执行该 Activity 的 onCreate() 函数是需要一定的时间的,尤其是该应用从来也没使用过的情况下,该时间会比较长。And

2015-08-25 21:37:29 1174

转载 Android的HTTP客户端选择及HttpResponseCache的使用

据Android Dalvik团队的Jesse Wilson 同学讲, 在Android系统中可以使用两种HTTP客户端来收发HTTP数据.一个就是大名鼎鼎的Apache HTTP Client, 而另外一个就是 HttpURLConnection.Apache HTTP ClientDefaultHttpClient 和她的兄弟 AndroidHttpClient 是用于

2015-08-25 20:59:23 1664

转载 无线设备状态机(The Radio State Machine)

1.无线设备状态机(The Radio State Machine)典型的3G网络下的的网络无线设备包括下列三种耗能状态:1. Full power : 当一个网络连接处于激活状态时,允许设备以最快的速率传输数据。2. Low power : 一种中间状态,使用Full power状态下50%的能量损耗。3. Standby : (备用) 没有网络处于活跃状态时候的能量

2015-08-25 19:20:27 647

转载 缓存淘汰算法系列之2——LFU类

1. LFU类1.1. LFU1.1.1. 原理LFU(Least Frequently Used)算法根据数据的历史访问频率来淘汰数据,其核心思想是“如果数据过去被访问多次,那么将来被访问的频率也更高”。1.1.2. 实现LFU的每个数据块都有一个引用计数,所有数据块按照引用计数排序,具有相同引用计数的数据块则按照时间排序。具体实现如下:

2015-08-24 14:05:04 564

转载 缓存淘汰算法系列之1——LRU类

缓存淘汰算法系列之1——LRU类1. LRU1.1. 原理LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。1.2. 实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:1. 新数据插入到链表头部;2. 每

2015-08-24 14:00:59 329

转载 严苛模式(StrictMode)

Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益。那它都做什么呢?它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policy violation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。你可以强制用警告代替崩溃(crash),也可以仅将警告计入日志,让你的

2015-08-23 17:57:56 345

转载 AsyncTask的版本兼容性与target sdk version

最近发现了一个奇怪的问题,一处很久前写的代码,通过AsyncTask的doInBackground进行后台处理,突然间不管用了,就是说doInBackground没有被执行。同事查询SVN,发现相关代码没有过任何更改,经过很久的检查,发现只有在Manifest中有一处很小的改动,就是添加了targetSDKVersion。将这个属性去掉,就没有问题了。 通过对源码和google g

2015-08-05 10:13:23 397

空空如也

空空如也

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

TA关注的人

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