Android程序框架设计思想01

一、基本概念

1、使用设计模式
在项目开发中,总会设计一些框架设计、模块设计,如果能理解并很好的运用设计模式,将会使框架和模块稳定很多,毕竟这些设计模式都是经过实验总结出来的。
2.统一规范

  • 在开发过程中,需求、设计和编码的一致性;
  • 整个程序具有统一的风格,比如主题、色调、对话框样式、按钮样式、控件点击样式、自定义的吐司样式、进度条样式等。
  • 整个程序具有统一的结构,比如不同的模块访问网络,他们的调用方式一致,例如异步访问都用回调的方式通知结果,相同的功能应该提取成共同的模块。
  • 开发人员能很好的执行需求人员和设计人员你的意图。
  • 有完整的需求文档、设计文档、测试文档、处理流程的文档等。
  • 技术人员(SE/SL)必须严格执行项目的需求、设计,必须深入到编码细节。
  • 设计人员、开发人员之间要保持持续的沟通,并根据情况提出改进意见。

二、设计之前的准备工作

1.共通类的设计
①Widget的设计
比如TextView、EditText、Button、TitleBar、ToolBar等。
目的:

  • 统一字体样式,比如:app字体不随系统字体变化而变化。
  • 统一UI式样,比如所有的Button控件具有相同的背景和selector。
  • 复用代码。
    ②Adapter Items
  • 根据式样,提取需要在AdapterView中显示的Item。
  • 简单的符合布局。
  • 自绘制,尽量优化绘制,从而提高滑动性能。
    ③Dialog
  • 自定义对话框的风格样式,真个app使用统一的对话框风格样式。
    ……
    2.缓存设计
  • 把内存占用量大的对象存放在缓存中,比如bitmap。图片加载多的时候,使用多级缓存机制,如Volley加载图片,默认使用L2缓存机制。
    3.线程管理
    ①无消息循环的线程。昨晚一件事就结束,发生频率不高,不需要复用线程。在使用线程的时候,最好给线程加上名字,方便跟踪。
new Thread(null, new Runnable() {
    public void run() {
        // Do you works.
    }
}, "Thread_name_request_image").start();

②有消息循环的线程
这样的线程有消息循环,当消息队列中没有消息时,这个线程就会被挂起。当我们需要做某一件事时,只需要给它发送一个消息就可以。这种情况通常是为了复用线程,不用频繁创建线程。我们通常还需要创建一个与这个线程的消息循环(Looper)相关的Handler,用来处理消息。注意,这做的事都是运行在后台线程的。

三、程序框架的设计

1.Android程序的结构

  • UI层:
    • 数据展示与管理;用户交互;绘制;Adapter
  • 业务逻辑层:
    持久化数据(内存中,相当于全局数据)
    数据加工处理
    数据变化的通知机制
  • 数据层:
    数据访问(数据库、文件、网络、内容提供者、参数配置信息存储)
    2.一些基本原则
    一些在开发中应当遵循的基本原则:
    ①提供initialize()方法
    在Activity.onCreate或者View的构造方法中调用。
    ②封装点击事件
    把View的点击事件,提成方法,这样在listener处只是一个方法调用者,onXXXClick(View view)
    ③设计一个BaseActivity类
    让所有的Activity都继承自BaseActivity类。在该类中定义共通属性,显示共通对话框,取得topactivity,手动管理启动的activity
    ④设计application类
    保存一些全局数据,或者配置一些全局参数。
    ⑤异常处理
    某些情况,可以考虑使用自定义的异常类。
    ⑥标注的使用,对于重写的方法,一定加上@Override。不使用的方法可以标记为@Deprecated,这个做法在维护型项目中特别有用。
    ⑦注册和反注册
    广播或者服务,注册后,适时反注册。
    ⑧封装一些逻辑操作
    把对Bitmap、文件加载、网络加载、算法逻辑等封装起来,可以对其集中优化。
    ⑨绘制处理
    一定不要在OnDraw、onTouchEvent中创建新对象。

    未完待续
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android核心分析之一--------分析方法论探讨之设计意图..........................................1 Android核心分析之二-------方法论探讨之概念空间篇..............................................3 Android是什么之三-------手机之硬件形态.....................................................................5 Android核心分析之四---手机的软件形态......................................................................6 Android核心分析之五-----基本空间划分....................................................................7 Android核心分析之六-----IPC框架分析Binder,Service,Servicemanager.....11 Android核心分析之七------Service深入分析..............................................................21 Android核心分析之八------Android 启动过程详解...................................................31 Android核心分析之九-------ZygoteService..................................................................36 Android核心分析之十-------AndroidGWES之基本原理篇.......................................40 Android核心分析之十一-------AndroidGWES之消息系统.......................................43 Android核心分析(12)-----AndroidGEWS窗口管理之基本架构原理......................48 Android核心分析(13)-----AndroidGWES之Android窗口管理...............................50 Android核心分析(14)------AndroidGWES之输入系统..........................................57 Android核心分析(15)--------Android输入系统之输入路径详解..............................59 Android核心分析(16)-----Android电话系统-概述篇...............................................66 Android核心分析(17)------电话系统之rilD............................................................69 Android核心分析(18)-----Android电话系统之RIL-Java........................................76 Android核心分析(19)----电话系统之GSMCallTacker.............................................84 Android核心分析(20)----Android应用程序框架之无边界设计意图.......................87 Android核心分析(21)----Android应用框架AndroidApplication.......................88 Android核心分析(22)-----Android应用框架之Activity..........................................93 Android核心分析(24)-----AndroidGDI之显示缓冲管理.........................................104 Android核心分析(25)------AndroidGDI之共享缓冲区机制................................112 Android核心分析(26)-----AndroidGDI之SurfaceFlinger.....................................116 Android核心分析(27)-----AndroidGDI之SurfaceFlinger之动态结构示意图..123 Android核心分析(28)-----AndroidGDI之Surface&Canvas..................................126

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值