让android开发更轻松些

android开发是件体力活,我们都需要花大量的时间去堆砌跟业务无关的代码,例如拍照,获取照片,处理照片大小,各线程之间的交互等,这些问题都有优秀的方案来解决,Giraffe是将这些优秀的东西集合和组织起来,成为一个快速搭建android app的脚手架,让“卓码”将更多的精力放到业务的处理上。

giraffe

照片来自vectorstock

依赖关系



原则上app/libs下不放置任何jar包,所有的第三方jar统一放到:commonlib中,其他module则在依赖commonlib

配置



约定优于配置,giraffe在启动的时候会去加载assets/config.properties中的配置,配置采用PlaceHolderProperties支持placeHolder,例如:

images=${app_home}/images

  • model分隔不同环境的配置
    配置项model用于指定当前的配置的环境是什么,例如dev,test或production,其他的配置项通过model前缀来区别不同环境的配置,例如:


    dev.openAPIServer=http://dev.myhost.com #表示dev的配置
    production.openAPIServer=http://wwww.myhost.com #表示生产的环境配置

    而这些配置项可以写在一个文件中,通过修改mode来快速切换配置

  • 日志配置
    日志参考sl4j的思想,支持参数化,例如:Log.e(“get user detail error:{}”,userId,exception) 日志记录采用Microlog,支持选择输出到logcat或文件,日志记录格式可配置

%P 日志级别
%t 当前线程名称
%d 当前时间
%m 日志消息
%T Throwable对象

基础组件


  • 1.日志
    支持参数化(只有在日志打印的时候字符串才进行拼接,性能更好)

    1
    2
    Log.d("hello {},hello {}","world","giraffe");
    Log.e("parameter a={},b={},c={}","a","b","c",exception);
  • 2.DAO
    DAO采用greenDAO,修改module dao下的DAOGenerator,再运行DAOGenerator的main方法在模块app下生产对应的POJO和DAO文件

    • 获取DAO对象,
      DBManager.getInstance(“tc”).getDaoSession().getXDAO() , DBManager根据数据库名称(一般以用户来区别)来创建或打开数据库并获取DAO对象
    • 数据库结构和数据的升级,需要编写实现逻辑并注册到升级管理器,DBManager在打开数据库的时候将根据版本号一次执行升级:
      1. 编写实现了DBUpgrader接口的实现类,完成数据库的升级逻辑
      2. 修改DBUpgradeManager.registerUpgraders方法,将第一步的实现类注册到升级管理器
  • 3.DeviceManager 获取设备相关的信息,例如网络状态,类型,IMEI,屏幕像素,分辨率,px和dp的相互转换等。