【Android 应用开发】 Android 相关代码规范 更新中 ...(一)

一. 包结构规范





1. 基本包, 业务包, 测试包



包基础结构 :


-- base 包 : 应用中常用的公共包 和 类放在该包中, 例如 工具类, SQLiteOpenHelper, 配置类, Application, 各种类的基类 等;


-- business 包 : 应用中的实际业务包, 这个包存放 与 app 业务相关的具体实现的类 和 包;


-- test 包 : 用于存放单元测试 和 测试用例相关的包;




示例 :

【Android 应用开发】 Android 相关代码规范 更新中 ...(一)







2. 根据类型将 Java 类 分入不同包中



UI 相关 :


-- activity : 存放 Activity 相关的包;


-- fragment : 存放 Fragment 相关类;


-- widget : 存放自定义组件相关类;




适配器相关 :


-- adapter : 各种适配器, 尤其是 BaseAdapter 子类;




Java Bean相关 : 下面的两种包名经常存放 JavaBean 对象;


-- bean :


-- domain :




工具类相关 :


-- utils : 存放工具类;




监听器相关 :


-- listener : 存放各种监听器, 如按钮点击监听器等等;




数据库相关 :


-- sqlite : 存放数据库相关的包;




业务相关 :


-- engine : 存放业务逻辑相关类;








二. Application 代码规范





1. Application 单例规范



单例属性 : Application 本身就是单例模式, 在整个应用中, 只存在一个 Application 对象;




实现 Application 单例 :


-- 定义 Application 类型对象 : 在 自定义的 Application 中定义一个 Application 类型的函数;



private static QIApplication INSTANCE;

-- 定义共有构造方法 :


/**
  * 构造方法构造 Application
  */
    public QIApplication() {
  INSTANCE = this;
    }
-- 公共, 静态方法获取对象 : 在任何类中, 都可以调用该方法, 获取 Application 上下文对象;
    /**
  * 获取 Application 使用该函数可以在任意位置获取 Application 中的数据
  * @return
  */
    public static QIApplication getInstance() {
  return INSTANCE;
    }





2. Application 用于组件间数据传递 和 数据缓存



在   【Android 应用开发】 Application 使用分析  博客中有这方面的讲解;


Application 组件间数据传递 , Application 数据缓存;






3. Application 常用框架



代码示例 :



public class MyApplication extends Application {
    private static MyApplication INSTANCE;
    /** 用于数据传递的 Map 集合 */
    private Map<String, Object> transferMap;
    /** 用于缓存数据的 Map 集合 */
    private Map<String, Object> cacheMap; 
    /**
  * 构造方法构造 Application
  */
    private MyApplication() {
  INSTANCE = this;
    }
    /**
  * 获取 Application 使用该函数可以在任意位置获取 Application 中的数据
  * @return
  */
    public static MyApplication getInstance() {
  return INSTANCE;
    }
    @Override
    public void onCreate() {    
  super.onCreate();
  // 初始化用于数据传递的 Map 集合
  transferMap = new HashMap<String, Object>();
  // 初始化用于数据缓存的 Map 集合
  cacheMap = new HashMap<String, Object>();
    }
    /**
  * 获取数据传递 Map 集合
  * @return
  *     数据传递 Map 集合
  */
    public Map<String, Object> getTransferMap() {
  return transferMap;
    }
    /**
  * 向 transferMap 集合中添加数据元素
  */
    public void putTransferMapElement(String key, Object object) {
  transferMap.put(key, object);
    }
    public Object getTransferMapElement(String key) {
  return transferMap.get(key);
    }
    /**
  * 向 transferMap 数据中移除对应的数据元素
  */
    public void removeTransferMapElement(String key) {
  transferMap.remove(key);
    }
    /**
  * 获取数据缓存 Map 集合
  * @return
  *     数据缓存 Map 集合
  */
    public Map<String, Object> getCacheMap() {
  return cacheMap;
    }
}



上一篇:某市大脑项目护航


下一篇:网络安全好学吗?手把手教你学metasploit 网络安全工程师学习资料汇总