Android应用开发揭秘之优化技术
2013-06-28
第15章 优化技术
不管用什么语言进行开发,所有的优秀代码都会展示出共有的经典品质:
简练,可读性强,模块化,层次性,设计良好,高效,优雅,清晰等。
Java程序员能够依据Java编程规范养成良好的编程习惯,是编写良好Java程序的先决条件。
从一开始就写干净的代码,可以在程序开发过程中以及程序维护阶段不断受益。
1. 基本要求
2. 可读性要求
3. 结构化要求
4. 正确性与容错性要求
5. 可重用性要求
有些问题可能在多个模块中都出现(比如,日志记录、权限检查和事务管理),为了记录每个方法进入和离开时的信息,你不得不在每个方法中添加log等信息。将这些解决问题的功能点散落在多个模块中会使冗余增大,并且当多个功能点出现在一个模块中时,代码会变得很难维护。因此,AOP(Aspect Oriented Programming ,面向切面编程)应运而生。如果说OOP(Object Oriented Programming ,面向对象编程)关注的是一个类的垂直结构,那么AOP就是从水平角度来看待问题的。
动态代理类可以在运行时实现若干接口,每一个动态代理类都有一个Invocation Handler对象与之对应,这个对象实现了InvocationHandler接口,通过动态代理的接口对动态代理对象的方法调用会转而调用Invocation Handler对象的invoke方法,通过动态代理实例,方法对象和参数对象可以执行调用并返回结果。
性能测试主要包括以下几个方面:
1. 计算性能:执行一段代码所用的时间。
程序实现:http://www.cnblogs.com/fengzhblog/p/3161822.html
2. 内存消耗:程序运行所占用的内存大小。
程序实现:http://www.cnblogs.com/fengzhblog/p/3162370.html
3. 启动时间:程序启动到程序正常运行的时间。
4. 可伸缩性:应用程序如何应对增长的流量。
5. 用户察觉性能:不是程序实际运行有多快,而是用户感觉程序运行有多快。
Android应用开发揭秘之优化技术的更多相关文章
- android webview开发问题及优化汇总
我们在native与网页相结合开发的过程中,难免会遇到关于WebView一些共通的问题.就我目前开发过程中遇到的问题以及最后得到的优化方案都将在这里列举出来.有些是老生常谈,有些则是个人摸索得出解决方 ...
- 浅谈Android样式开发之布局优化
引言 今天我们来谈一下Android中布局优化常用的一些手段.官方给出了3种优化方案,分别是</include>.</viewstub>.</merge>标签,下面 ...
- 关于 Android 平台开发相关的有哪些推荐书籍?
转自:http://www.zhihu.com/question/19579609 作者:Shan Huang 链接:http://www.zhihu.com/question/19579609/an ...
- 转——Android应用开发性能优化完全分析
[工匠若水 http://blog.csdn.net/yanbober 转载请注明出处.] 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉 ...
- Android 应用开发性能优化完全分析
1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...
- 【转】Android应用开发性能优化完全分析
http://blog.csdn.net/yanbober/article/details/48394201 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关 ...
- Android应用开发性能优化完全分析
1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...
- 转:Android应用开发性能优化完全分析
转自:http://blog.csdn.net/yanbober/article/details/48394201 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜 ...
- [阿里Hao]Android无线开发的几种经常使用技术
本文由阿里巴巴移动安全client.YunOS资深project师Hao(嵌入式企鹅圈原创团队成员)撰写,是Hao在嵌入式企鹅圈发表的第一篇原创文章.对Android无线开发的几种经常使用技术进行综述 ...
随机推荐
- PAT甲级1076. Forwards on Weibo
PAT甲级1076. Forwards on Weibo 题意: 微博被称为中文版的Twitter.微博上的一位用户可能会有很多关注者,也可能会跟随许多其他用户.因此,社会网络与追随者的关系形成.当用 ...
- Add current boost to a USB charger
The popular USB interface can charge a portable device while transferring data. But for high-capacit ...
- LWIP轻量级TCPIP协议栈的移植
http://blog.csdn.net/ygrx/article/details/8020516 好久没有做过技术工作了,前几天因为一些需要,要在ST的OS20平台上进行了LWIP的移植,有一些心得 ...
- 查看系统自带的RPM
我在home目录下创建了目录mei 1.管理员权限 su 2.进入mei目录 cd /home/mei 3.创建cdrom目录作为挂载点 mkdir cdrom 4.把目录 /dev/cdrom-hd ...
- git和SVN的差别
1)GIT是分布式的.SVN不是: 这 是GIT和其它非分布式的版本号控制系统,比如SVN.CVS等.最核心的差别.优点是跟其它同事不会有太多的冲突.自己写的代码放在自己电脑上,一段时间后再提交.合并 ...
- 如何查找python安装包的路径site-packages?
使用命令: python -m site python -m site --user-site 注意当查看指定版本的python的安装包时,需要指定python版本,比如python2.7.15 -m ...
- vim/vi的文件内、跨文件复制粘贴操作、替换操作
vi/vim 中可以使用 :s 命令来替换字符串 1.s/vivian/sky/ 替换当前行第一个 vivian 为 sky 2.:s/vivian/sky/g 替换当前行所有 vivian 为 sk ...
- Spark应用程序运行的日志存在哪里(转)
原文链接:Spark应用程序运行的日志存在哪里 在很多情况下,我们需要查看driver和executors在运行Spark应用程序时候产生的日志,这些日志对于我们调试和查找问题是很重要的. Spark ...
- iOS:提示框(警告框)控件UIAlertView的详解
提示框(警告框)控件:UIAlertView 功能:当点击按钮或标签等时,弹出一个提示框,显示必要的提示,然后通过添加的按钮完成需要的功能. 类型:typedef NS_ENUM(NSInte ...
- 对开源库使用 AutoCAD 文件格式[转]
https://www.ibm.com/developerworks/cn/opensource/os-autocad/ 对开源库使用 AutoCAD 文件格式 读取 DWG 和 DXF 文件格式 C ...