ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:218.44KB ,
资源ID:2859500      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2859500.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(提升android应用开发性能.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

提升android应用开发性能.docx

1、提升android应用开发性能出色的用户体验有三个特征:速度快、响应及时以及无缝。下面的信息帮助你的应用如何能够在Android上实现这些特征。一、速度快你不能假设手机与桌面系统和服务器一样提速,更多的是你要关注你的代码是否高效。编写高效的Android代码,应遵循两个原则:不要做不必要的事不要分配不必要的内存以下是一些达到此目标的小技巧(有一些技巧是与oo的原则冲突,斟酌使用场景):1、避免建立对象例如,int数组比Integer数组好,同理,这适用于所有基本类型的组合2、使用本地方法不要吝惜使用String.indexOf(),String.lastIndexOf()等特殊实现的方法(sp

2、ecialtymethods)。这些方法都是使用C/C+实现的3、使用实现类比接口好MapmyMap1=newHashMap();HashMapmyMap2=newHashMap();调用一个接口的引用会比调用实体类的引用多花费一倍的时间4、不用getter和setter应该直接访问变量5、将成员变量缓存到本地for(inti=0;ithis.mCount;i+)dumpItem(this.mItemsi);最好改成这样:intcount=this.mCount;Itemitems=this.mItems;for(inti=0;iAndroid-Launch加入-sdcardF:/mysdca

3、rd.img(此步骤就是在第一种创建方式中添加sdcard的支持)备注1:如果sdcard分配的空间太小,则程序追踪文件就一直记录到sd储蓄卡容量慢为止,所以调试前,要为程序生成一个适当的SD存储卡也较为重要,因为程序运行时间越长,这个追踪文件也就越大。备注2;(如果第二种创建方式中的第二部激活出现emulator:ERROR:theuserdataimageisusedbyanotheremulator.aborting,请关闭模拟器,或者进入目录:/DocumentsandSettings/用户/.android/的AVD/*设备*/(比如我的目录是:C:/DocumentsandSett

4、ings/Administrator/.android/avd/android2.0.avd)然后删去以.lock结尾的文件夹就行(我简单解释下为什么要删除这些文件呢,其实.lock是加锁,如果程序崩溃等原因导致无法清除这些以.lock结尾的文件夹,就会出现这个问题,也就是这个avd的锁没有被释放,导致avdmanager以为这个avd正在使用当中。)2.将我们的调试代码嵌入工程正如我们XX到的说明一样,在程序运行的开端加上Debug.startMethodTracing(yourActivityTrace);然后在onPause()中调用Debug.stopMethodTracing();为

5、什么要将结束写在onPause()中而不写在onStop(),那么如果你去看api的话,你会看到,Api中介绍onPause()会在你返回和点击home按键后触发,而onStop()一般是由系统来触发,当该程序处于后台的时候,而且当内存紧张的时候,可能会调用,但是可能永远不会调用到!备注:要记住当把调试代码加入项目中以后不要立即运行项目,而是必须在AndroidMainfest.xml中定义一条写入SD卡的权限那么添加权限的代码如下:因为咱们的调试代码会在SD卡中生成一个追踪文件,也就是往SD卡中写入了数据,所以需要声明一条权限。这里必须注意哦!java:showcolumnsviewplai

6、ncopy1020304050607080901001101201301401501267910111213141516173.运行项目并且退出项目从而得到的追踪文件,利用TraceView来进行分析代码运行状况:打当正常运行了项目并且点击返回或者home按键就会在sdcard中生成一个.trace的文件。sdcard目录在eclipse下,点击:windows-showview-other-android-Fileexplorer右上角的两个箭头,第一个表示从模拟器sdcard导出文件,第二个表示从PC上导入文件到sdcard中、“”代表删除.然后我们通过cmd来运行生成的追踪文件trace

7、viewC:/name追踪文件所在的路径放在C盘,放在C盘以外别的盘的话我这里是无法正常打开traceview的不知道什么原因。name表示生成的.trace文件,cmd的时候不需要输入“.trace”后缀;然后会出现TraceView的分析窗口;【cmd命令!打开cmd并且cd到androidsdktools路径下;(或者在环境变量Path中将sdktool路径配置上,然后重新打开cmd)】注意1:如果出现一下图片这种内存溢出的问题;解决方法:到SDK下的tools下找到traceview.bat文件,鼠标右键-编辑(或者记事本打开),最后一行替换成这样:calljava-Xms128m-X

8、mx512m-Djava.ext.dirs=%javaextdirs%-jar%jarpath%*注意2:如果出现路径不对的问题:例如:我的himi.trace放在了C盘,那么我的cmd命令是:traceviewc:/himi然后回车!但是这里要小心,因为/h这样可能被认为是转义字符!为了避免可以尽可能不要使用h,n,r,t,等等成为名字的头字母,当然还有一种就可以完全避免这种问题,例如还是我的C盘himi.trace文件,可以写cmd命令的时候写成:traceviewc:/himi嘿嘿要注意细节。下面是运行起来的TranceView:最右上角表示运行程序总共用了多少时间,从traceview

9、画面中我们看到有各种颜色,每种颜色代表不同的函数和步骤,那么同一颜色的区域越大,就代表这个步骤运行时间越长,或者看到下面的统计表,明显可以看出除了序列01是系统函数外,2.3.函数占用的时间比较长,那么序列4是个自定义的函数名为“hot”这个占用了几乎与主线程主draw的时间一样了,那么肯定有问题。当然其实这个方法是我故意写的,就是为了来演示traceview。这个hot函数的代码如下:java:showcolumnsviewplaincopy10203040506070809010011012013014015018/*19*authorHimi20*paramcanvas21*/22pub

10、licvoidhot(Canvascanvas)23for(inti=1;i100;i+)24Bitmapbmp=BitmapFactory.decodeResource(getResources(),25R.drawable.icon);26canvas.drawBitmap(bmp,i+=2,i+=2,paint);2728很明显我在故意消耗内存和时间。那么,在traceview的右半部统计字段中:Exclusive:同级函数本身运行的时间Inclusive就是说除统计函数本身运行的时间外再加上调用子函数所运行的时间Name:列出的是所有的调用项,前面的数字是编号,展开可以看到有的有Parent和Children子项,就是指被调用和调用。Incl:inclusive时间占总时间的白分比Excl:执行占总时间的白分比。Calls+RecurCalls/Total

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2