android app 架构设计02
二:在开放的过程中,尽量把工具类,BaseActivity 放在指定的位置。
DateFormat
Bitmap
Notification
Shared Preference
Environment
Device
三:
2.2 Task管理
线程仅仅是一种机制,保证我们要完毕的任务不执行在UI线程(也就是说不堵塞UI)。完毕的任务才是我们关注的核心。因此,我们能够通过设计,把线程封装,让使用者根本感觉不到是线程,他仅仅用关心他要做的事情即可了。
这里,我们能够设计一种”异步链式调用”的框架。把线程进行了封装。使用都仅仅须要这样用:
1 |
new TaskManager() |
这里。task1, task2, task3是顺序运行的,举个样例:我们要訪问网络。取得一个图片。使用这个TaskManager我们须要3个task,
task1:显示一个ProgressDialog。
task2:訪问网络,创建bitmap。
task3:关闭对话框,显示bitmap。
这一点,能够參考CoreLibproject中的task.TaskManager类。
关于TaskManager,有下面几点须要注意:
-封装了线程
让调用者仅仅关注自己的业务处理
保证顺序链式地运行某一个任务
上一个任务的输出,作为下一个任务的输入
能暂停、恢复不论什么一个任务
四:
2.3 缓存设计
-把内存占用量大的对象存放在缓存中,如bitmap
利用了LruCache类来实现
利用了AsyncTask类来载入bitmap
不用再手动释放bitmap内存,该操作有风险
不用再关心AbsListView的scroll状态
关于缓存的很多其它具体细节,请參考[ 请參考CoreLibproject中的cache包 ]。
这样做,有什么优点。 不用再手动释放bitmap内在。该操作有风险,由于该bitmap是否有View引用,假设当一个View在试图绘制一个已经回收的bitmap。这里会抛出异常。
五:
2.4 线程管理
无消息循环的线程:
1 |
new Thread(null, new Runnable() {
|
什么情况下使用这样的线程:
-做完一件事情就结束,这件事发生频率不高。比方从SD card中读取图片数据
不须要复用线程
在使用线程,最好给线程加上名字。这样利用高度与跟踪。
有消息循环的线程:
这种线程拥有消息循环,当消息队列中没有消息时。这个线程会被挂起。我们要做一件事情时。仅仅须要给它发送一个消息即可了。
这样的情况一般是为了复用线程,不用频繁创建线程,比方音乐播放器程序。专门启动一个有消息循环的线程来获得音乐的专辑图片。
我们通常还要创建一个与这个线程的消息循环(Looper)相关联的Handler。由它来处理消息,注意。这做的事情是执行在后台线程的。
android app 架构设计02的更多相关文章
- Android APP架构设计——MVP的使用示例
0. 前言 为了更好地进行移动端架构设计,我们最常用的就是MVC.MVP和MVVM,作为三个最耳熟能详的三大架构,应用可谓非常广泛.对于这三种架构设计以及优缺点已经在Android APP架构设计-- ...
- Android APP架构设计——MVC、MVP和MVVM介绍
)对于过大的项目,数据绑定需要花费更多的内存. 关于APP的架构设计就介绍到这吧,转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/529 ...
- android app 架构设计01
1:本文有摘抄, 1 2 3 4 5 - 开发过程中.需求.设计.编码的一致性 - 整个程序具有统一的风格,比方对话框样式,button风格,色调等UI元素 - 整个程序详细统一的结构,比方不同模块訪 ...
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
相关:http://www.cnblogs.com/wytiger/p/5996876.html 和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于 ...
- Android App的设计架构:MVC,MVP,MVVM与架构AAAAA
1. 架构设计的目的1.1 通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合.1.2 这样做的好处是使得程序在开发的过程中,开发人员只需要专注于一点,提高程序开发的效率,并且更容易进行后续 ...
- 【转】App架构设计经验谈:接口的设计
App架构设计经验谈:接口的设计 App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉. 安全机制的设计 现在,大部分App的接口都采用REST ...
- Hybrid APP 架构设计思路
关于Hybrid模式开发app的好处,网络上已有很多文章阐述了,这里不展开. 本文将从以下几个方面阐述Hybrid app架构设计的一些经验和思考. 原文及讨论请到 github issue 通讯 作 ...
- App架构设计经验谈:接口”安全机制”的设计
[原文地址 点击打开链接] 原创文章,转载请注明:转载自Keegan小钢 并标明原文链接:http://keeganlee.me/post/architecture/20160107 微信订阅号:ke ...
- App架构设计学习(一)---- 接口的设计
一.哎,最近换了家工作,结果工作很出的我意外,没有干熟悉的根据需求写代码,反而让我一个小菜鸟去重构一下App的架构(他们公司的app,已经上线了1.0版本了),没办法,只有硬着头皮去先学习学习,再总结 ...
随机推荐
- UVA 11292 - The Dragon of Loowater (water)
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=sh ...
- exe4教程
exe4j_windows-x64_5_0_1.exe <?xml version="1.0" encoding="UTF-8"?> <exe ...
- vi/vim高级命令集粹
vi/vim高级命令集粹 (ctrl +v过来 留着以后看) 1.交换两个字符位置 xp 2.上下两行调换 ddp 3.把文件内容反转 :g/^/m0/ (未通过) 4.上下两行合并 J 5.删除所有 ...
- Spring 从零開始-05
最终能到Spring的AOP编程了,AOP的概念特别的多.所以须要你在開始之前有点了解,然后通过代码慢慢学习! - 切面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象.事务管 ...
- ubuntu下使用charles代理
charles 最新的版本是3.10,但是这个版本还没有license可以用,所以使用3.9.2版本. 解压缩包就可以用了. 如果只是代理http请求,只要设置: Proxy -> Proxy ...
- 初入Android--Activate生命周期
Activate的主要生命周期 (注意:这只是主要的生命周期,而不是完整的生命周期方法,其中的两个周期之间可能还执行了其他的一些方法) 每个时刻在屏幕上的状态 进入onCreate方法:Activat ...
- [Java Performance] 数据库性能最佳实践 - JPA缓存
JPA缓存(JPA Caching) JPA有两种类型的缓存: EntityManager自身就是一种缓存.事务中从数据库获取的和写入到数据库的数据会被缓存(什么样的数据会被缓存.在后面有介绍).在一 ...
- ORA-00942:表或视图不存在(低级错误)
在好多时候.调试PL/SQL对象时会报.ORA-00942 看看错误原因吧: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamFjc29uX2JhaQ== ...
- 【Ubuntu】升到14,攻克了进入用户后没有菜单条导航栏的问题
控制台还能够进,用ctrl+alt+f1用老账号登录,用sudo adduser test新建立一个名字叫test的帐号 然后就能够进去了,可能是配置文件坏掉了
- Java设计模式---外观模式
外观模式(Facade) 外观模式的意图是:为子系统提供一个接口,便于它的使用. 解释: 简单的说,外观模式就是封装多个上层应用需要的方法,使得上层调用变得简单,为上层提供简单的接口,是设计模式中 ...