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版本了),没办法,只有硬着头皮去先学习学习,再总结 ...
随机推荐
- Swift - 纯代码实现页面segue跳转,以及参数传递
下面通过一个例子说明如何在代码中进行segue页面的切换,以及参数的传递. 样例功能如下: 1,主界面中是一个列表(这个列表是在代码中实现) 2,点击列表项时,界面会切换到详情页面,同时传递改列表 ...
- pomelo研究笔记-RPCclient
1. mailbox数据收发模块 一个RPC客户端可能同一时候须要调用多个远端(server)提供的服务.在pomelo里每一个server抽象为一个mailbox.先来看看mailbox的实现: v ...
- 经典集合 与 IQueryable集合 的差别
经典集合 与 IQueryable集合 的差别 经典集合与IQueryable 集合存在本质的区别,经典结合是在内存中开辟一片区域用来存储数据,而IQueryable集合是延迟加载的集合,只有在用到的 ...
- js和循环依赖
kmdjs和循环依赖 循环依赖是非常必要的,有的程序写着写着就循环依赖了,可以提取出一个对象来共同依赖解决循环依赖,但是有时会破坏程序的逻辑自封闭和高内聚.所以没解决好循环依赖的模块化库.框架.编译器 ...
- Java_1Lesson
cmd使用 进入硬盘分区:D: E: F: 查看目录 dir 进入文件夹 “cd 文件名” .使用javac编译器编译运行. Javac 文件名 运行java程序 Java 文件名 第一个程序 pub ...
- http://www.cutt.com/
简网APP工场-服务介绍 服务介绍
- IE Jquery中拒绝訪问的处理方法
多人合作开发一个站点过程中,为便于开发,将一些公共文件如js,css,images放在外网上,各自链接这类文件以供使用.本地測试时网页的一些JS代码在IE8,IE6中会停止运行,并报某个js文件拒绝訪 ...
- 怎样在ios开发中设置tableview的cell颜色
//方法一: cell .contentView .backgroundColor = [ UIColor redColor ]; //方法二: UITableViewCell *cell = [ta ...
- EasyUI - DataGrid 组建 - [ 搜索功能 ]
效果: html代码: 使用css加载的方式,所以要在写html代码,也可以使用js操作. <div> <!--使用JS加载方式--> <table id="t ...
- EasyUI - NumberSpinner 组件
效果: html代码: <input id="ss" /> JS代码: $(function () { $('#ss').numberspinner({ //属性继承自 ...