SQLite的升级(转)
摘要:做Android应用,不可避免的会与SQLite打交道。随着应用的不断升级,原有的数据库结构可能已经不再适应新的功能,这时候,就需要对SQLite数据库的结构进行升级了。 SQLite提供了ALTER TABLE命令,允许用户重命名或添加新的字段到已有表中,但是不能从表中删除字段。 并且只能在表的末尾添加字段,比如,为 Subscription添加两个字段: 1 ALTER TABLE Subscription ADD COLUMN Activation BLOB;2 ALTER TABLE Subscription ADD COLUMN Key BLOB; 另外,如果遇到复杂的修...
阅读全文
posted @
2013-06-27 12:11
洛易
阅读(410)
推荐(0) 编辑
浅析android应用增量升级(转)
摘要:By 何明桂(http://blog.csdn.net/hmg25) 转载请注明出处 很久没有更新博客了,真是堕落啊,几次想提起笔,却总是被各种琐事耽搁,以后会多写文章记录点滴。背景 随着android应用体积的不断增大,以及应用版本发布的不断更迭,用户的升级成了一个问题,google也意识到不断更新应用对用户流量的损耗,在Google I/O 上提及的 Smart App update,即应用增量升级,或者叫做差分升级的做法,并在新版本的Google Play中得到支持,某天在和群友聊天是扯到这方面的话题,好奇就稍微研究了一下。增量升级的原理 今天我们就来实现类似的应用的增量升...
阅读全文
posted @
2013-06-27 11:39
洛易
阅读(3502)
推荐(2) 编辑
Java之异常机制(1) - 高效处理异常
摘要:Java开发人员做出的有关架构的最重要的决定之一便是如何使用Java异常模型。Java异常处理成为社区中讨论最多的话题之一。一些人认为Java语 言中的已检查异常(Checked Exceptions)是一次失败的尝试。本文认为错误并不在于Java模型本身,而在于Java库设计人员没有认识到方法失败...
阅读全文
posted @
2013-06-26 22:35
洛易
阅读(675)
推荐(0) 编辑
深入浅出HTTP协议(WEB开发和面试必备)
摘要:1.基础概念篇 a.简介HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本
阅读全文
posted @
2013-06-14 20:12
洛易
阅读(19919)
推荐(1) 编辑
Java之深入JVM(5) - 关于ClassLoader的一些知识 (转)
摘要:一.什么是ClassLoader?Java程序并不是一个原生的可执行文件,而是由许多独立的类文件组成,每一个文件对应一个Java类.此外,这些类文件并非立即全部装入内存的,而是根据程序需要装入内存。ClassLoader专门负责类文件装入到内存.二.ClassLoader的体系结构?从上图我们就可以...
阅读全文
posted @
2013-06-11 23:40
洛易
阅读(529)
推荐(0) 编辑
Java之深入JVM(4) - 由一个栈溢出的问题看Java类和对象的初始化续
摘要:现在我们来研究研究,Java类和对象的初始化,下面是一幅类的生命周期全景图,当然还是比较粗略.从这幅图中,我们可以看出,类的装载到初始化主要分为3个阶段:(1)类的装载(Load Class):通过该类型的完全限定名,产生一个代表该类型的二制制数据流。简单检查二进制数据,确保每一个部分都在正确位置,...
阅读全文
posted @
2013-06-11 23:37
洛易
阅读(363)
推荐(0) 编辑
算法课题(一) 贪心算法
摘要:一直想看看贪心算法,一直就这么放着,就是没有机会和时间,确实要给自己制定计划了。
阅读全文
posted @
2013-06-11 23:32
洛易
阅读(208)
推荐(0) 编辑
Java之深入JVM(3) - 由一个栈溢出的问题看Java类和对象的初始化 (转)
摘要:今天,在一个群里面有网友问到这样一个问题,以下代码被调用运行时为何会造成栈溢出(StackOverflowError)的错误:public class Constructor { Constructor c = new Constructor(); public static void ...
阅读全文
posted @
2013-06-11 21:29
洛易
阅读(1051)
推荐(0) 编辑
Java之深入JVM(2) - 由深入JVM(1)想到的一个面试题
摘要:面试题:i++和i--哪个快些?这个不知道是哪位朋友跟我说的一个面试题,当时我听到这个题目的时候,我也不知所措,或许是对i++和i--的底层实现不知道,也或许没有关注过这个问题.今天就在这里做个测试:1.测试环境:电脑配置: 系统配置: jdk版本:jdk1.6.0_202.测试代码:package...
阅读全文
posted @
2013-06-11 21:25
洛易
阅读(2173)
推荐(0) 编辑
Java之深入JVM(1) - 由i++ 和 ++i的执行速度所想到的
摘要:i++ ++i i-=-1 i+=1以上的四句代码,问那句的执行速度更快?对于C/C++程序员来说,可能首先想到的就是i++和++i要比其他两者要快一些,但是在Java中是不是这样的呢?我们可以对他进行一些分析,首先当然想到的是对这些语句利用Java的System.currentTimeMillis...
阅读全文
posted @
2013-06-11 20:53
洛易
阅读(1277)
推荐(1) 编辑
Java之深入JVM(0) - 序
摘要:今晚翻了翻以前记录的一些别人blog,感觉以前看的东西都忘了,所以在这里写一篇关于jvm的序。首先,说说自己为什么喜欢转载别人的blog,从大学到工作2年,虽然皆是从事java开的工作,从没日没夜的学习,到感觉到安逸,这段时间也没有什么自己的专攻。自己也写不出一些非常漂亮的blog,只知道自己在不断...
阅读全文
posted @
2013-06-11 20:51
洛易
阅读(326)
推荐(0) 编辑
计算机单词(日常收集)
摘要:1. 2013-03-09embed[英][imˈbed][美][ɛmˈbɛd]vt&vi.把……嵌入;栽种;深留(记忆中)现在分词:embedding;过去式:embedded;第三人称单数:embeds;过去分词:embedded;eg.A fragment must always be embedded in an activity and the fragment's lifecycle is directly affected by the host activity's lifecycle.2.2013-03-11optimize[英][ˈɔptəˌmaɪz
阅读全文
posted @
2013-06-10 22:10
洛易
阅读(421)
推荐(0) 编辑
NO.10 Callable与Future的应用
摘要:代码:package thread;import java.util.Random;import java.util.concurrent.Callable;import java.util.concurrent.CompletionService;import java.util.concurre...
阅读全文
posted @
2013-06-07 01:53
洛易
阅读(232)
推荐(0) 编辑
No.9 java5线程并发库的应用(线程池)
摘要:1.线程池的创建 a.创建固定大小的线程池//ExecutorService pool = Executors.newFixedThreadPool(3); b.创建缓存线程池//ExecutorService pool = Executors.newCachedThreadPool(); c.创建...
阅读全文
posted @
2013-06-07 01:32
洛易
阅读(300)
推荐(0) 编辑
No.6 ThreadLocal类及应用技巧
摘要:package thread;import java.util.HashMap;import java.util.Random;public class ThreadLocalTest { private static ThreadLocal x = new ThreadLocal(); ...
阅读全文
posted @
2013-06-07 00:46
洛易
阅读(926)
推荐(0) 编辑
NO.7多个线程之间共享数据的方式探讨
摘要:1.如果每个现场执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如:买票系统就可以这个干。2.如果每个现场执行代码不同,这时候需要不同的Runnable对象,有如下两种方式来实现这些Runnable对象之间的数据共享 a.将共享数据封装在另外一个对象中...
阅读全文
posted @
2013-06-07 00:06
洛易
阅读(1332)
推荐(0) 编辑
Java之多线程(1) - Race Condition引起的性能问题
摘要:Race Condition(也叫做资源竞争),是多线程编程中比较头疼的问题。特别是Java多线程模型当中,经常会因为多个线程同时访问相同的共享数据,而造成数据的不一致性。为了解决这个问题,通常来说需要加上同步标志“synchronized”,来保证数据的串行访问。但是“synchronized”是...
阅读全文
posted @
2013-06-06 22:28
洛易
阅读(294)
推荐(0) 编辑
NO.5 线程范围内共享变量的概念与作用(二)
摘要:package thread;import java.util.HashMap;import java.util.Random;public class ThreadScopeShareData { //private static int data = 1; private stati...
阅读全文
posted @
2013-06-06 20:23
洛易
阅读(344)
推荐(0) 编辑
NO.5 线程范围内共享变量的概念与作用(一)
摘要:代码:package thread;import java.util.Random;public class ThreadScopeShareData { private static int data = 1; public static void main(String[] args...
阅读全文
posted @
2013-06-06 20:17
洛易
阅读(192)
推荐(0) 编辑
Android UI 组件
摘要:http://www.oschina.net/p/onexlistviewhttp://blog.csdn.net/zhjp4295216/article/details/6255857
阅读全文
posted @
2013-06-04 21:54
洛易
阅读(127)
推荐(0) 编辑
bitmap 设置图片尺寸,避免 内存溢出 OutOfMemoryError的优化方法
摘要:尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的 source,decodeStream最大的秘密在于其直接调用JNI>>nativeDecodeAsset()来完成decode,无需再使用java层的createBitmap,从而节省了java层的
阅读全文
posted @
2013-06-02 23:09
洛易
阅读(9569)
推荐(0) 编辑
【转】Android开发者必须深入学习的10个应用开源项目
摘要:Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的应用。其中也有许许多多的开发者提供了应用开源项 目,贡献出他们的智慧和创造力。学习开源代码是掌握技术的一个最佳方式。下面推荐几个应用开源项目,这些项目不仅提供了优秀的创意,也可以直接掌握 Android内核的接口使用:1.Android团队提供的示例项目如果不是从学习Android SDK中提供的那些样例代码开始,可能没有更好的方法来掌握在Android这个框架上开发。由Android的核心开发团队提供了15个优秀的示例项 目,包含了游戏、图像处理、时间显示、开始菜单快捷方式等。地址:http://
阅读全文
posted @
2013-06-02 22:26
洛易
阅读(237)
推荐(0) 编辑
Android应用性能优化之使用SparseArray替代HashMap(转)
摘要:HashMap是java里比较常用的一个集合类,我比较习惯用来缓存一些处理后的结果。最近在做一个Android项目,在代码中定义这样一个变量,实例化时,Eclipse却给出了一个 performance 警告。意 思就是说用SparseArray<E>来替代,以获取更好性能。老实说,对SparseArray并不熟悉,第一感觉应该是Android 提供的一个类。按住Ctrl点击进入SparseArray的源码,果不其然,确定是Android提供的一个工具类。单纯从字面上来理解,SparseArray指的是稀疏数组(Sparse array),所谓稀疏数组就是数组中大部分的内容值都未被
阅读全文
posted @
2013-06-02 19:31
洛易
阅读(8677)
推荐(0) 编辑
压力测试 Monkey 应用程序无响应ANR Application No Response(转)
摘要:压力测试 第一次接触这个概念,客户端做压力测试,没听说过。其实是有的,典型:疯狂的点击屏幕。今天试验了一把,原理:用脚本疯狂去模拟点击事件,如何去模拟点击事件呢,就是好比一个人,随便去点,不一定非得就去点击有反应的控件。看看打印的log:m.android.settings/.WirelessSettings } in package com.android.settings:Sending Pointer ACTION_DOWN x=209.0 y=147.0:Sending Pointer ACTION_UP x=209.0 y=147.0:Sending Pointer ACTION_M
阅读全文
posted @
2013-06-02 18:31
洛易
阅读(1257)
推荐(0) 编辑
Android 中压力测试工具Monkey的用法(转)
摘要:一、官方文档UI/Application Exerciser MonkeyThe Monkey is a program that runs on your emulator or device and generates pseudo-random streams of user events such as clicks, touches, or gestures, as well as a number of system-level events. You can use the Monkey to stress-test applications that you are devel
阅读全文
posted @
2013-06-02 18:16
洛易
阅读(280)
推荐(0) 编辑
sleep & wait | notify | notifyAll
摘要:一、sleep & wait1. 两者来自不同的类(分别是Thread和Object)2.sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或方法3.wiat只能在同步控制方法或者同步控制块使用,而sleep可以在任何地方使用4.sleep必须捕获异常,而wait不需要...
阅读全文
posted @
2013-06-01 22:30
洛易
阅读(1863)
推荐(0) 编辑
Thread & Runnable
摘要:public class ThreadDemo1 { public static void main(String[] args) { MyThread myThread = new MyThread(); MyRunnable myRunable = new My...
阅读全文
posted @
2013-06-01 22:01
洛易
阅读(160)
推荐(0) 编辑
synchronized 线程同步机制
摘要:1、synchronized关键字的作用域有二种:1)是某个对象实例内,synchronizedaMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能...
阅读全文
posted @
2013-06-01 21:48
洛易
阅读(237)
推荐(0) 编辑
Hibernate(2) 序
摘要:1.阻抗不匹配Java是面向对象语言、对象模型,其主要概念有:继承、关联、多态数据库是关系模型,其主要概念有:表、主键、外键等2.解决办法1.用JDBC转换2.使用ORM(object relation mapping对象关系映射)框架来解决,主流ORM框架有hibernate、Toplink、OJB三、 1.domain对象必须有一个无参构造器 2.domain对象如果用final,懒加载就不能用了,load时会产生对象的子类 3.实体类映射文件(主键、主键生成器、属性名、字段名) 4.save和persist,当没开启事务时,save先插入,再回滚。而persist根本不会插入。 5.sa
阅读全文
posted @
2013-06-01 00:06
洛易
阅读(212)
推荐(0) 编辑