Soumettre la recherche
Mettre en ligne
Android最佳实践
•
Télécharger en tant que PPT, PDF
•
0 j'aime
•
737 vues
S
supernlee
Suivre
Technologie
Signaler
Partager
Signaler
Partager
1 sur 33
Télécharger maintenant
Recommandé
SASS入門實作
SASS入門實作
Kingsley Zheng
小步快跑如何跑
小步快跑如何跑
Peter Su
MIX2016 工作坊:小步快跑的協作式使用者研究
MIX2016 工作坊:小步快跑的協作式使用者研究
Angela Lin
getPDF.aspx
getPDF.aspx
byron zhao
getPDF.aspx
getPDF.aspx
byron zhao
魏琪君-重构-关于可读性、原则和模式
魏琪君-重构-关于可读性、原则和模式
fangdeng
魏琪君-重构-关于可读性、原则和模式
魏琪君-重构-关于可读性、原则和模式
fangdeng
Tangramgrid
Tangramgrid
衡锋 阳
Recommandé
SASS入門實作
SASS入門實作
Kingsley Zheng
小步快跑如何跑
小步快跑如何跑
Peter Su
MIX2016 工作坊:小步快跑的協作式使用者研究
MIX2016 工作坊:小步快跑的協作式使用者研究
Angela Lin
getPDF.aspx
getPDF.aspx
byron zhao
getPDF.aspx
getPDF.aspx
byron zhao
魏琪君-重构-关于可读性、原则和模式
魏琪君-重构-关于可读性、原则和模式
fangdeng
魏琪君-重构-关于可读性、原则和模式
魏琪君-重构-关于可读性、原则和模式
fangdeng
Tangramgrid
Tangramgrid
衡锋 阳
Web爬虫那点事
Web爬虫那点事
Yihua Huang
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
drewz lin
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
yang alex
掌星 移动互联网开发笔记-Vol002
掌星 移动互联网开发笔记-Vol002
rainx1982
N-layer design & development
N-layer design & development
Xuefeng Zhang
My sql数据库开发的三十六条军规
My sql数据库开发的三十六条军规
isnull
MySQL数据库开发的三十六条军规
MySQL数据库开发的三十六条军规
mysqlops
Mysql数据库开发的三十六条军规 石展_完整
Mysql数据库开发的三十六条军规 石展_完整
Yousri Yan
Data Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouse
Jack Gao
Python小团队不妨知道的技术
Python小团队不妨知道的技术
jie.wang
What do you mean, Backwards Compatibility? (Chinese)
What do you mean, Backwards Compatibility? (Chinese)
Trisha Gee
重构——关于可读性、原则和模式
重构——关于可读性、原则和模式
cnfi
Best practice for coding
Best practice for coding
Bin Feng
张勇 搜搜前端架构
张勇 搜搜前端架构
isnull
Dreaming Infrastructure
Dreaming Infrastructure
kyhpudding
[2008]网站重构 -who am i
[2008]网站重构 -who am i
Twinsen Liang
Djt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.com
drewz lin
Djt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.com
drewz lin
Mysql遇到的一些问题
Mysql遇到的一些问题
wang tongchao
Taobao数据库这5年
Taobao数据库这5年
yp_fangdong
Contenu connexe
Similaire à Android最佳实践
Web爬虫那点事
Web爬虫那点事
Yihua Huang
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
drewz lin
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
yang alex
掌星 移动互联网开发笔记-Vol002
掌星 移动互联网开发笔记-Vol002
rainx1982
N-layer design & development
N-layer design & development
Xuefeng Zhang
My sql数据库开发的三十六条军规
My sql数据库开发的三十六条军规
isnull
MySQL数据库开发的三十六条军规
MySQL数据库开发的三十六条军规
mysqlops
Mysql数据库开发的三十六条军规 石展_完整
Mysql数据库开发的三十六条军规 石展_完整
Yousri Yan
Data Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouse
Jack Gao
Python小团队不妨知道的技术
Python小团队不妨知道的技术
jie.wang
What do you mean, Backwards Compatibility? (Chinese)
What do you mean, Backwards Compatibility? (Chinese)
Trisha Gee
重构——关于可读性、原则和模式
重构——关于可读性、原则和模式
cnfi
Best practice for coding
Best practice for coding
Bin Feng
张勇 搜搜前端架构
张勇 搜搜前端架构
isnull
Dreaming Infrastructure
Dreaming Infrastructure
kyhpudding
[2008]网站重构 -who am i
[2008]网站重构 -who am i
Twinsen Liang
Djt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.com
drewz lin
Djt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.com
drewz lin
Mysql遇到的一些问题
Mysql遇到的一些问题
wang tongchao
Taobao数据库这5年
Taobao数据库这5年
yp_fangdong
Similaire à Android最佳实践
(20)
Web爬虫那点事
Web爬虫那点事
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
掌星 移动互联网开发笔记-Vol002
掌星 移动互联网开发笔记-Vol002
N-layer design & development
N-layer design & development
My sql数据库开发的三十六条军规
My sql数据库开发的三十六条军规
MySQL数据库开发的三十六条军规
MySQL数据库开发的三十六条军规
Mysql数据库开发的三十六条军规 石展_完整
Mysql数据库开发的三十六条军规 石展_完整
Data Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouse
Python小团队不妨知道的技术
Python小团队不妨知道的技术
What do you mean, Backwards Compatibility? (Chinese)
What do you mean, Backwards Compatibility? (Chinese)
重构——关于可读性、原则和模式
重构——关于可读性、原则和模式
Best practice for coding
Best practice for coding
张勇 搜搜前端架构
张勇 搜搜前端架构
Dreaming Infrastructure
Dreaming Infrastructure
[2008]网站重构 -who am i
[2008]网站重构 -who am i
Djt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.com
Mysql遇到的一些问题
Mysql遇到的一些问题
Taobao数据库这5年
Taobao数据库这5年
Android最佳实践
1.
android 应用开发最佳实践
董炼师(黎三平) 201 2.4.7
2.
•
总行数: 101722 • 代码行数: 73656 • 注释行数 ( 包括单行注释 ) : 14915 • 空行数: 13151
3.
Agenda •
代码实践 • 设计实践 • android 实践 • 更多…
4.
包的划分 极端,过粗过细 客户端由过粗(一个包)到现在的过细 类二叉树,适合人脑处理
5.
命名 变量名,成员变量和局部变量 类名 方法名 不要过长也不要过短
6.
代码规模 • 一个类不要超过 1
000 行 • 一个方法不要超过 47 行
7.
注释 不用的代码删除,而不是注释,有 svn 呢 ,否则混淆试听并且增加人脑负担 注释用来描述干什么的(最好这都不要, 用你的代码说明一切
- 命名),为什么这 么干
8.
Agenda •
代码实践 • 设计实践 • android 实践 • 更多…
9.
原则 以功能为导向,而非过程 低耦合,高内聚
10.
解耦 数据和 UI 分离 更重要是解开数据与
activity 上下文的耦合 ,因为同一数据可能跨多个 a ctivity 数据再可以根据业务分成不同模块,顶多 门面模式一下
11.
数据管理 同样的数据只保存一个副本,否则难以维 护且浪费内存 配置数据和业务数据分开 全局数据和局部数据? Activity context/Applica context?
tion
12.
纯数据对象 纯数据对象跟 ma 比有啥好处?
j 串呢 p son ?直观,静态检查 尽量不用纯数据对象 封装数据和操作
13.
静态变量 不那么 OO 不利于垃圾回收,它的生命周期与类加载 器一致,需要显式释放 静态变量对象引用到上下文,容易引起内 存泄露 尽量杜绝使用静态变量,除非 final它
14.
15.
单例 跟静态变量一样,难以回收 如果需要上下文 , 与上下文生命周期不一 致是不稳定的因素 尽量少用,除非是全局只读数据
16.
静态方法 不那么 OO 最好只在工具类中使用
17.
多线程 线程运行不靠谱,依赖于虚拟机的线程调 度 需要处理同步,复杂度高 少用多线程,宁愿多进程(比如 service )
18.
异常处理 try 块不要过大,特别是不要嵌套 尽量不要用异常来做流程控制 不处理的异常尽量向上抛,而不是被猫吃 掉 异常捕获不是万能的,不要出现问题全套 进来
19.
20.
访问控制 建议显式的声明访问控制 尽量使用存取方法,而不是点操作
21.
同步 vs异步 别等我,我会告诉你 回调比返回值优美(比如网络) 耗时操作必须异步
22.
Agenda •
代码实践 • 设计实践 • android 实践 • 更多…
23.
view or activity? 以功能导向,同一功能的可以放在一个 a
ctivity ,不同的分开 没必要自己维护 view 树结构,考虑 setContentView()
24.
图片 图片是内存使用大户,主动回收 可以考虑使用软引用 可以保存图片数据 (byte[ ]
), 而不是 bitma 对 p 象 尽量不要去处理图片(合成,拷贝等)
25.
回收再利用的对象 数组类( list类)的视图尽量使用 AdapterView Adapter的使用,注意使用 convertView 可以考虑
viewHolder
26.
活用资源 尽量使用资源解决问题,而不是代码 资源包括: layout,dra ble,va
wa lues,a 等 nim 可以考虑自定义的资源,来描述一些数据
27.
对象生命周期 能局部(没有上下文生命周期那么长 )的不全局保存 保证 a
ctivity 中的对象与 activity 本身的 生命周期一样长 过长的生命周期的对象可以考虑引用 applica context tion 在生命周期回调函数适当的地方释放 内存,特别是静态变量
28.
流和游标 记得关闭流,文件句柄等 游标关闭,使用方需要关闭
29.
Agenda •
代码实践 • 设计实践 • android 实践 • 更多…
30.
操作性 不追求完美, 1 00% 目标
,80% 随手改进,小步快跑
31.
继续… 好的设计、架构是自己长出来的(迭代) 根据实际需求,而不是想象的需求,别过 度设计 没有完美,适合的就是最好的
32.
Q &A
33.
T hanks!
Notes de l'éditeur
有内存泄露
OO :抽象,封装,多态
影响后续流程
事实上,有些 API 只开放给资源
Android 源代码 Vs 塞班源代码
Télécharger maintenant