Android开发高级进阶:开发商业级Android应用程序的注意事项。

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

AndroidAndroidAndroidAndroid开发高级进阶::::主讲:张运芳主讲:张运芳主讲:张运芳主讲:张运芳zhangyunfang@eoemobile.com应用程序的注意事项©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项教学大纲1.客户讨厌慢的程序。------性能,提高应用性能的各种方法总结。2.程序响应方面的注意事项3.程序友好性和使用流畅性方面的注意事项©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项1.客户讨厌慢的程序有限内存有限运算能力有限电池寿命有限存储有限屏幕©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项EfficientCodingDesign两个基本的原则:不要做不必要做的事情。尽可能的节省内存的使用©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项EfficientCodingDesign用户体验三个核心特征:1.快速2.响应3.无缝©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项快速�尽可能避免创建对象(Object)例如:当从原始的输入数据中提取字符串时,试着从原始字符串返回一个子字符串,而不是创建一份拷贝。�使用Native方法例如:当处理字符串的时候,尽可能多的使用诸如String.indexOf()、String.lastIndexOf()这样对象自身带有的方法。因为这些方法使用C/C++来实现的,要比在一个java循环中做同样的事情快10-100倍。©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项快速�缓冲属性调用例如:for(inti=0;ithis.mCount;i++)dumpItem(this.mItems[i]);intcount=this.mCount;Item[]items=this.mItems;for(inti=0;icount;i++)dumpItems(items[i]);©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项快速�尽可能避免接口引用实例对象例如:MapmyMap1=newHashMap();HashMapmyMap2=newHashMap();通过接口引用来调用会花费2倍以上的时间©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项快速�声明Final常量例如:staticStringaction=com.eoemobile.action.SHOW_PHOTOstaticfinalStringaction=com.eoemobile.action.SHOW_PHOTO直接写入了类文件静态属性初始化中,初始化直接由虚拟机来处理。©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项快速�避免浮点类型的使用嵌入式的处理器通常并不支持浮点数的处理所有的“float”和“double”操作都是通过软件进行一些基本的浮点数的操作就需要花费毫秒级的时间©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项一些标准操作的时间比较ActionActionActionActionTimeTimeTimeTimeAddalocalvariable1Addamembervariable4CallString.length()5Callemptystaticnativemethod5Callemptystaticmethod12Callemptyvirtualmethod12.5Callemptyinterfacemethod15CallIterator:next()onaHashMap165Callput()onaHashMap600Inflate1ViewfromXML22,000Inflate1LinearLayoutcontaining1TextView25,000Inflate1LinearLayoutcontaining6Viewobjects100,000Inflate1LinearLayoutcontaining6TextViewobjects135,000Launchanemptyactivity3,000,000©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项2.程序响应在Android中,程序的响应性被ActivityManager和WindowManager这两个系统服务所监视。当出现下列情况是,Android会认为该程序无响应:�5秒内没有响应用户输入事件(如键盘输入)�一个BroadcastReceiver执行十秒还没有完成©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项ANR--ApplicationNotResponding应用程序的执行在你的主线程里超过一段时间就会导致弹出ANR对话框任何主线程的方法都不能做很复杂的处理。特别是Activity对象在它的关键生命周期函数里面不能处理太多,例如onCreate()和onResume()。主线程应该提供一个Handler给子线程去返回完成信息©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项加强响应性�应用程序正在后台运行并响应用户输入,进程正在创建�使用ProgressBar和ProgressDialog�游戏编程�在一个子线程里做位移运算�应用程序有一个比较耗时的初始化过程�考虑显示一个开场动画�尽可能快的显示主窗口然后异步的填充其他部分©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项3.程序友好性和使用流畅性视图和布局越简单越好�如果一个窗口包含很多视图�启动时间长�测量时间长�布局时间长�绘制时间长�如果视图树深度太深�StackOverflowException�用户界面反应速度很慢©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项更多资源�Android专业开发社区�Androidblog�Android应用上传和发布�Android中文学习教程《GoogleAndroid开发入门与实战》©2009copyright3gdci.com3gdci.com3gdci.com3gdci.com东方尚智3G3G3G3G数字内容学院谢谢!!开发商业级AndroidAndroidAndroidAndroid应用程序的注意事项

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功