分类目录归档:Android进阶

Android进阶

Greendao Query and QueryBuilder

greenDao查询(Queries)

Queries帮助你返回entities。你可以使用Raw SQL(原生查询)构造查询,然而使用greenDao的QueryBuilder API才是更加优雅的方式。Queries支持lazy-loading的查询结果。

当处理一个较大的结果集时,lazy-loading(懒加载模式)可以节省内存提高性能。

QueryBuilder

你可以使用QueryBuilder 创建自定义查询,而不用做丑陋的SQL拼接。毕竟不是每一个人都擅长写SQL,并且还容易出错。QueryBuilder使用非常方便,它将你从SQL编写中解脱出来。妈妈再也不用担心写SQL时出现bug了,因为语法检查是在编译时进行的。 继续阅读

如何计算Bitmap图片在Android系统中占用的内存大小

Android系统内存是非常有限的,一定要好好珍惜,不要等到OOM才追悔莫及。Android app中最占用内存的也是就图片了。那么我们就有必要弄清楚,Bitmap图片在Android中占用了多少内存。

图片在内存中的存储模型

我们可以将图片在内存中的存储模型想象成一个长方体,它的长、宽、高分别表示图片的宽度、高度、颜色深度。那么Bitmap图片在内存中的大小计算就变成了计算长方体的体积:Bitmap Memroy size = width * height * 颜色深度,那么这里的颜色深度是什么意思呢?

rectengle

色彩存储

我们知道ARGB指的是一种色彩模式,里面A代表Alpha,R表示Red,G表示Green,B表示Blue,所有的可见色都是由红绿蓝组成的,所以红绿蓝又称为三原色,每个原色都存储着所表示颜色的信息值,下表中对四种颜色模式的详细描述,以及每种色彩模式占用的字节数(也就是颜色深度值

颜色深度简单说就是最多支持多少种颜色。一般是用“位”来描述的。

模式 描述 占用字节
Bitmap.Config.AlPHA Alpha由8位组成 1B
Bitmap.Config.ARGB_4444 4个4位组成16位,每个色彩元素站4位 2B
Bitmap.Config.ARGB_8888 4个8为组成32位,每个色彩元素站8位 4B
Bitmap.Config.RGB_565 R为5位,G为6位,B为5位共16位,没有Alpha 2B

实例讲解 继续阅读

Android greenDao sessions详解

DaoSession类是greenDao的核心接口之一。DaoSession给开发者提供了entity操作的基本方法,以及Dao提供的一系列复杂方法。Sessions也用来管理实体的identity scope。

DaoMaster and DaoSession

正如greenDao使用快速入门所示,你需要创建一个DaoMaster来获取DaoSession。

需要注意的是,Database connection是属于DaoMaster的,因此多个session是引用的同一个数据库连接。新的session创建非常快,然而,每一个session都需要分配内存。

Identity scope and session cache 继续阅读

Android greenDao schema entity使用详解

Meta-Model-180

本文将会讲解greenDao的schema,entity,以及property的使用方法,如何在greenDao中使用继承,接口,序列化,以及保留自定义属性和方法等。

使用greenDao的第一步就是创建实体模型(entity model),用它来表示应用程序中使用的持久化数据。然后,greenDao基于这些模型生成Dao层的java代码。

Model本身也是java代码定义的。非常简单,基于DaoExampleGenerator创建一个java project。你可以查看(greenDao使用-快速上手)来了解详细代码。

右边展示的图例描述了meta model(元模型)。那就是用来描述领域模型的类。

Schema 继续阅读

Android greenDao简介

greenDAO-orm-640 greenDao是Android平台的对象关系映射工具object/relational mapping(ORM)。greenDao为关系型数据库提供面向对象的接口。数据库相关的重复枯燥的任务将由greenDao这样的ORM工具完成。

DAO Code Generation(DAO代码自动生成) 继续阅读