分类目录归档:Android进阶

Android进阶

greenDao使用-快速上手

预生成代码并且创建表

首先看代码,在src-gen源码目录中,你会发现已经存在的组件:

  1. Node.java是对node的一个简单封装。
  2. NoteDao.java是Dao类,用它来操作Node对象,进行CURD操作。

你可以运行DaoExampleGenerator工程来生成Note和NoteDao,但是咱们先不管DaoExampleGenerator。用DaoMaster这个类你可以方便的创建SQLiteOpenHelper:

正如你看到的一样,你不需要去编写“CREATE TABLE”这样的SQL脚本,这一切都有greenDao替你完成。 继续阅读

Android Volley使用指南

为什么要使用Volley?

       开发者在处理HTTP请求的时候,通常需要创建后台线程,管理线程池,结果解析,结果缓存,处理错误,SSL链接等繁多的事务,然而Volley解决了这些问题,让开发者能够聚焦到业务逻辑的实现,并且是更少的代码更少的bug。 volley        上面这张图片是2013年Google IO大会上推出Volley时的图片,从图片中可以看出,Volley适合用来处理“短并且多”的请求,请求就像离弦的满天飞箭一样。注意:Volley并不适合用来做大文件的上传下载操作例如视频流操作 继续阅读

EventBus与Otto特性与性能对比

       Otto和EventBus(消息总线EventBus简介)一样是一个事件总线库,实际上Otto是fork的Guava’s EventBus。Greenrobot’s EventBus和Otto都有一些相同的语义的操作(register,post,unregister,…),下面的表格中对EventBus和Otto的特性进行对比: eventbus_otto_feature_comparison        除了特性,还有性能的对比。结果显示EventBus在各个方面都明显比Otto更快。
继续阅读

Jar打包混淆脚本

       我们知道Android apk在发布之前需要进行混淆。如果我们发布一个jar,但是并不希望别人轻松的看到我们的代码逻辑,这个时候就需要对jar包进行混淆了,下面是以前用ruby写的一个jar打包混淆工具,包含三个功能。 1.简单的对目录下的class文件打包。 2.对jar包进行混淆。 3.指定class文件不打入jar包。

SQLITE_IOERR_LOCK(disk I/O error code 3850)

最近发现app线上版本出现下面这个崩溃,下面是崩溃堆栈

通过查看sqlite官方文档,原来是一种锁异常,是由多线程访问数据库导致的异常,由于sqlite是简单的文件数据库,我设计的数据库只有一个xxx.db文件,其中包含多个表,每一个表由一个数据库Dao封装来进行curd操作,虽然单个Dao的curd做了线程同步,但是当多线程时,多个Dao操作数据库文件也会抛出这个异常。下面来看原文档截图

sqlite_lock_type

sqlite_lock_type

继续阅读