如何检查是否android 检查更新代码手机植根

机锋市场客户端提供超过300000款应用和游戏、电子书的免费下载
立即下载:
最具深度及说服力的Android与iOS对比
   曾经在不同场合与很多安卓青探讨过一些或浅或深的知识层面问题,如今想来具备真正独立思考能力与当量知识储备的,也只有一人而己;换言之,绝大部分时候只是对牛弹琴。那么我将从以下七点来说明iPhone 4比Android手机们好在哪里:工业设计,操作系统,屏幕显示,开发环境,生态环境,硬件配置,杂项。
  一、工业设计
  林徽因当年动身学建筑的原因,按她自己来说是:&建筑是唯一一门将工程与艺术结合至完美的学科。&词句上可能略有偏差。这句话放到现在来看,应该把&唯一&去掉,因为设计学科几乎都有这方面特质。
  工业设计本身的效用并不是如绝大部分人所想的,只具备&好看&这一特性。这门学科的水很深,从材料到交互,从人性到科技,却还带着无数的限制(比如材料产能不够或者价格过高,比如要为产品部分特性放弃某些绝妙的思想),可以说拖着汽车跑步也绝对不为过。
  苹果在iPhone 4之上的工业设计,精妙绝伦,按乔布斯的说法是&它就和一款老莱卡相机一样美丽&。但它不仅仅于此,它环绕着机身的不锈钢圈,不仅是天线(虽然引发了问 题),也是固定机身的梁,同时也减少了内部占用空间,iPhone 3.5寸手机有1420电池,而i9000 4英寸手机只有1500而且稍厚。它两边的玻璃,不仅与IPS屏幕的光学有着最美丽的匹配,也起着防刮的作用(注意苹果从未说过它防摔)。我觉得一个有正 常审美的人,在看到iPhone 4之后都必须承认它是人类史上最美丽的工业设计之一。它的设计恰到好处,每一个设计都不拖泥带水,与手机功能息息相关。这就是工业设计的作用。它不仅仅是 美观,它还必须是功能。
  当然它还有一个特性,那就是营销,也就是工业设计上很臭名昭著的指导原则&有计划的废止制度&。有计划的废止制度,是指&每一两年对产品进行小改变,三到 四年对产品进行一次大改变&;它是一直到现在都适用的指导原则。它最臭名之处在于,诱引人们放弃手头上依旧可用的产品去追逐最新的产品,造成大量的资源浪 费。但是很明显,它骨子里散发的营销气质是苹果非常看重的。从第一代iPod到iPhone的产品进化,苹果把这项原则用到了极致。
  二、操作系统
  自苹果收购了乔布斯的NeXT之后,花了六年把它打磨成了Mac OS X;又在2005年左右花了两年半时间,基于它制造了iOS。从各种意义上来说,iOS是一个传统技术的操作系统。它有一个基于微内核Mach的 Darwin内核,有一个叫做Cocoa Touch的运行时,用的是Objective-C这个C语言的超集。而Android在Linux内核之上,集成了一个Java虚拟机Dalvik,整 个应用层跑在虚拟机之上,而开发语言用的是Java。
  事实上双方的选择都是很有道理的。苹果有Mac OS X十年基础,当然会选择自己最精通的技术,把iOS打造成一个传统系统,也可以无缝链接Mac OS X的开发者资源。而谷歌没有任何操作系统经验,为了要争取最大的开发者资源,他们选择了世界上最大的Java社区。虽然起点相同,但走出的第一步方向就已 经截然相反。
  究其根底,只在于Java只有自动内存回收,而Objective-C自动与手动内存回收均可(注意iOS只有手动内存回收)。这小小的区别导致,谷歌只 能做一个Java虚拟机,而苹果可以继续他们在Mac OS X上的经验。而这个行为导致了两者在系统流畅性上的最大区别。Java由于只有自动内存回收,系统会在任意时间停掉所有进程开始回收内存,这个过程是人类 可以感受到的数百毫秒。而iOS由于可以手动管理内存,可以在用户操作的间歇由程序员进行回收,用户不会在频繁使用过程中感受到停顿。在日常使用中这个停 顿其实是可以忍的,但是在游戏过程中这个停顿是不可以忍的,比如想像一下一只愤怒的小鸟在空中停顿了零点几秒再继续飞行。
  谷歌事实上意识到了这个问题,于是它在Android 2.3版本中大修了这个问题并将之作为一个特性大书特书。且抛开2.3的普及性不谈,单说这个大修的行为,也并没有修好这个问题。于是谷歌抛出了第二个在 开发上的修补:引入C/C++ NDK。可以说到了这一步, Android整个内核往上的应用层才有了与iOS抗衡的实力,可惜时间已经过去了近四年,iOS积累了十五年,Android刚刚起步。
  而在内核之下呢?基于微内核Mach的Darwin 对比 当今服务器主流Linux又如何?当年Linux创始人曾经与某位牛人吵过一场著名的架,正是关于微内核与内核对比,Linus一直到现在都认为微内核只 是纸上谈兵而在现实中解决不了实际问题。在这场吵架之后的岁月,坚持内核的主流系统只剩下Linux一家,而微内核系统已经延展到了基于SVR4的IBM AIX/HP-UX,GNU/Hurd,Mac OS X,Blackberry QNX,Windows(是的,你没有看错)。Time will tell,这句话从来都没有错。Android三方ROM所困扰的驱动问题,正是Linux内核的最大局限,植根于骨子的病是治不好的。
[ 责任编辑: ]
01 - 最具深度及说服力的Android与iOS对比(01)
& 上一篇:
还可以输入140个字
没有相关专题
■热点推荐
■热文排行安卓游戏/手机安卓市场
Android一词的本义指“机器人”,同时也是Google于日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android 2.3Gingerbread(姜饼),Android 3.0Honeycomb(蜂巢)和Android4.0 Ice Cream Sandwich(冰激凌三明治)Android4.1Jelly Bean(果冻豆)Android4.2Jelly Bean(果冻豆)。中文名:安卓(非官方)安致(官方)注:Google日收购美国Android公司得到手机巨头摩托罗拉的支持,摩托罗拉2010年放弃其他的操作系统(包括自家的Linux和UIQ)只支持Android。Android的特色业务是手机软件,之后Google在其基础上发展了Android业务。在Android发展的过程中,摩托罗拉付出的是核心代码,Google付出的是公关和品牌效应,当然还有它的google app,但是Google掌握了Android Market以及通过android google apps获得的大量用户。Android一词最早出现于法国作家利尔亚当在1886年发表的科幻小说《未来夏娃》中。他将外表像人的机器起名为Android。
安卓游戏平台介绍/手机安卓市场
开放性在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显着的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。 开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,随大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。挣脱运营商的束缚在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。丰富的硬件选择这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。开发商不受限Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如可控制正是留给Android难题之一。Android一词的本义指“机器人”,同时也是Google于日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android 2.4 Gingerbread,Android 3.0Honeycomb和Android4.0 Ice Cream Sandwich。中文名:安卓(非官方) 安致 (官方)注:Google日收购美国Android公司得到手机巨头摩托罗拉的支持,摩托罗拉2010年放弃其他的操作系统(包括自家的Linux和UIQ)只支持Android。Android的特色业务是手机软件,之后Google在其基础上发展了Android业务。在Android发展的过程中,摩托罗拉付出的是核心代码,Google付出的是公关和品牌效应,当然还有它的google app,但是Google掌握了Android Market以及通过android google apps获得的大量用户。Android一词最早出现于法国作家利尔亚当在1886年发表的科幻小说《未来夏娃》中。他将外表像人的机器起名为Android。
特色/手机安卓市场
1、软件最全,用户最多。手机安卓市场提供海量软件资源,包罗万象应有尽有;拥有上千万忠实用户,日均下载量在同类市场中居前列,在国内Android市场上占主体地位。2、更新最快,首发优势。手机安卓市场为您第一时间呈现各类应用软件,主动更新热门应用,充分满足的尝鲜体验;与众多国内外优秀开发者保持密切合作关系,拥有独家首发优势。3、特色专栏,超低流量。手机安卓市场根据软件优势,结合时事热点、生活百态推出各具人性化专栏,贴近用户心理同时带来愉悦享受;应用业界先进技术,压缩数据节省流量,体验Android手机无限精彩。4、界面精美,操作简易。手机安卓市场全新的界面呈现时尚精美的视觉感受,简单合理的个性化页面布局,更符合中国人的操作习惯,上手容易操作更佳。5、安全下载,放心使用。手机安卓市场上所有的应用软件,均经过系统人工双重审核,带给用户安全的无限应用体验,彰显责任感的同时做到永久免费。6、云推送,无限便捷。手机安卓市场支持云推送、二维码等多种下载渠道,脱离数据线的束缚,让下载省时省力方便快捷。
功能/手机安卓市场
主界面精品推荐:经严格筛选以及精品等应用程序将会出现在此分类中。最新上架:根据全部用户对应用程序的整体评价从高至低的方式展现。探索发现:与微博好友发现、分享安卓应用。新手指南:初次使用软件时特别增加了快速教程,便捷操作、主要功能一览无余。只消短短几分钟,让使用者充分掌握使用技巧,更能帮助用户发现它人性化的隐蔽便捷操作。类别手机安卓市场将所有的应用程序按照应用程序、游戏以及装机必备三大类别进行完整的分类。每个大类别中还各自有非常详细的小细节分类,让用户直观便捷的找寻自己所要下载的资源。推出趣味设计:快捷操作“泡泡”按钮。只需点击的软件图标,就会弹出快捷操作“泡泡”按钮,简化了繁琐的步骤,操作更疾速。进入每项独立的分类后还有针对性更强的分类,如今日热门、用户评级、最新上架这三个分类。用户还可以通过点击标签来选择“本周热门”“本月热门”“今年热门”。搜索标签云:独特标签云设计,左右横划可更换关键字。允许用户通过四种不同方式的搜索条件来找寻自己所需的应用程序。管理可方便的查看用户当前应用安装情况及安卓位置,进行移动、卸载、备份等管理查看当前已安装应用的更新情况,并进行更新操作。管理当前下载任务。其他我的收藏:登入后,可以将已收藏的软件集中管理、下载,一键解决重装系统后重新安装软件的问题。备份/安装:将已安装的apk包备份在SD卡上,用户在重装系统或更换手机后不需重新下载也可以进行进行备份软件还原安装。设置:设置安卓手机应用市场各项参数,达到节约流量、搜索中/英文软件等目的。云推送:注册登入后,可以在安卓手机应用市场web端浏览资源信息,并便捷的从安卓网推送各种资源到设备。SD卡APK:可查看用户手机SD卡上的APK文件,进行管理/安装。扫描下载:通过扫描软件扫描条形码进行下载。软件下载/收藏/评价用户通过该界面可看到该软件的软件名称、版本号以及详细的软件介绍以及相关的用户评论以及作者的相关开发程序介绍。点击收藏按钮就可收藏该软件。支持用户将软件分享给好友。Menu按键菜单无论用户在手机安卓市场的任何界面均可通过按下手机上的Menu按键来调出相应的菜单选项界面。进入更多选项中还可对手机安卓市场进行相应的个性化设置,具体的市场配置包含了是否加载软件图标显示软件截图等节省流量的选项。
APP事件/手机安卓市场
在3月份的下旬,新浪微博上出现了这样一条微博内容:“经过本人通宵达旦的测试,最终对几个Android应用市场的情色APP软件进行了横向的对比测试,结果如下,请各位网友自行下载”并且正文下面是多个应用市场的情色APP测试报告图,最重要的内容在下面:图片上的最后一句话:宅男最不受干扰商店——乐商店。就是这条微博短短一天时间内引起了众多Android网友的强烈热议。而这个评测最后指出的主角,乐商店这个Android应用市场,也成为了议论的焦点。一天后,微博中开始出现网友恶搞调侃乐商店的PS图,其中包括愤怒的小鸟之愤怒的女优,找你妹之找女优等等。事件的高潮部分在于乐商店官方微博在发现自己被调侃后,竟将所有网友的PS图做成合集,并自嘲的对此事进行表态,并用了相当隐晦的文字,并且宣称要推出官方版情色APP,一时将乐商店推致舆论的风口浪尖。
安卓应用市场APP上传流程及心得/手机安卓市场
对开发者而言,开发完成一款APP仅仅只是开始,接下来一步是要将APP上传到应用市场。用户手机中的APP无非来自两种渠道:一种是通过水货商刷在ROM里,另一种则是从应用市场下载,包括谷歌官方应用市场和国内第三方应用市场,还有苹果App Store。上传APP到安卓第三方应用市场需要哪些步骤呢?今天主要分享一些上传APP到安卓第三方应用市场的操作经验。首先要明确的一点是,安卓的第三方市场有很多,因此,虽然上传的步骤大同小异,却还是有着些许差别。下面就以几个典型的安卓第三方应用市场为例,来看看上传APP需要哪些具体的步骤吧。一、安卓市场的上传步骤:1.首先注册账号:2、账号注册完以后进入网站3、选择apk文件上传,然后上传2-5张JPG截图,不大于80k ,之后的软件项目名称可以写软件名,软件语言填中文,软件类别填应用-网络社区,填写标签,最后提交审核。二、91助手的上传步聚:一样是先注册账号,进入网站,选择软件上传,上传成功后 所有的信息会自动填满,无需人工填写,然后就选择基本信息,包括选择软件分类 ,选择社区交友 ,软件性质选择免费等,接着上传ICON ,也可直接选择软件的ICON上传。在写软件标签和软件开发者的时候,如果可以请写关键字。官方地址则填你的论坛地址,软件说明需要2-5张软件截图,不大于80K ,高度可宽度不高于480像素,最后提交审核。三、应用汇的上传步聚:1、先注册账号,进入网站:2、选择开发者,上传软件3、所有的信息填写完成后保存信息,上传软件,等待审核,大概2-3个工作日。综上所述,安卓第三方应用市场的上传步骤差别不大,基本只要抓住主干:注册—进入网站—上传软件—填写信息—上传截图就行了。步骤虽都如此,但能否顺利发布还有待商榷,毕竟各应用市场的审核机制也不一样。作为一个开发者,上传安卓第三方应用市场的过程中,也曾经遇到些问题,把相关的总结贴出来分享给大家。
&|&相关影像
互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于。
登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。
此词条还可添加&
编辑次数:10次
参与编辑人数:5位
最近更新时间: 21:35:52
申请可获得以下专属权利:
贡献光荣榜乐商店安卓手机版官方免费下载_乐商店安卓版9.4.0-PChome下载中心
推荐专区:
您当前位置: &
乐商店 for Android 9.4.0
乐商店 for Android 9.4.0
扫描二维码下载
乐商店&是联想集团全力打造的开放的、中国的、安全的、社交游戏化的应用商店,向大众传递&乐享应用、快乐生活&的理念。
&乐商店全新版本3.0,全面适配所有Android手机和平板电脑,所有Android应用都可上架,开放性为您提供应用服务;植根中国,深入洞察本土用户工作生活所需,提供符合中国人习惯的应用;无吸费,无木马病毒,保护用户隐私,从源头上保障使用安全;新增社区版块,可通过应用交接好友,在乐商店、微博、邮件、短信全面分享和推荐应用!
热门高清手机壁纸推荐
热门软件系列推荐
网友讨论共0条Android应用开发过程中,如何对性能进行优化
Android应用开发过程中,如何对性能进行优化
开发一款手机应用, 在开发的同时就要做好性能优化,这样才能提升用户体验,假如用户打开一个应用在使用过程中经常出现卡顿,则会影响到用户对产品的态度,所以我们做产品的都很重视人机交互方面的用户体验。
虽然谷歌官方也是一直在优化 android 系统,无论是碎片化处理还是系能上面,都与IOS存在比较大的差距,IOS在流畅度方面比android高,体验效果更好。
那么怎样在Android平台的开发过程中让应用运行更流畅,尚学堂李老师为大家总结了以下几点,希望对大家有所帮助。有不到位的地方还请大家谅解。
应用程序的性能问题 往往体现在很多方面, 比如应用程序第一次启动速度慢,或者进入某一界面速度慢;启动某一有动画效果的界面,动画执行过程不流畅,或者动画执行卡顿时间长;ListView列表滑动过程中卡顿,不流畅;应用程序自定义的某特定界面执行速度慢,例如Launcher应用桌面左右滑动效果不平滑;响应某一用户事件时长时间无响应(ANR);操作数据库时,执行大量数据的增删改查操作,执行速度慢;应用长时间运行后,随机出现卡顿现象。
以上的问题的原因可能不只一个,并且很多情况下并不是应用本身的问题,也有可能是系统其他层次有问题,只不过体现在应用层。所以说应用层总是首当其冲,开发人员在处理 性能问题时,需要做的第一件事情就是判断是否是应用自身引起的性能问题,然后再对症下药;但有些时候应用本身逻辑正常,明显是系统的硬件配置不足引起,此时就要根据产品或项目需求,采取一些更加激进的方式优化性能,以弥补硬件配置的不足。
以下从几个不同的角度总结一下应用程序性能优化的一些方法。一、编程思想上应用层的性能优化通常可以从以下几个方面考虑:1. 了解编程语言的编译原理,使用高效编码方式从语法上提高程序性能;2. 采用合理的数据结构和算法提高程序性能,这往往是决定程序性能的关键;3. 重视界面布局优化;4. 采用多线程、缓存数据、延迟加载、提前加载等手段,解决严重的性能瓶颈;5. 合理配置虚拟机堆内存使用上限和使用率,减少垃圾回收频率;6. 合理使用native代码;7. 合理配置数据库缓存类型和优化SQL语句加快读取速度,使用事务加快写入速度;7. 使用工具分析性能问题,找出性能瓶颈;当然肯定还有很多其他的性能优化方法,此处仅列出一些经常会用到的方法。二、编程技巧(一)Performance Tips (For Java)Google官网上有一些关于应用程序性能提升的技巧,之前公司内也有很多总结提到过,在此简单罗列一下,详细内容可以从官网获取。需要说明的是,文章列出的优化技巧主要是一些微小的性能提升,决定程序整体性能的仍然取决于程序的业务逻辑设计、代码的数据结构和算法。研发人员需要将这些优化技巧应用到平时的编码过程中,积少成多,也会对性能有很大的影响。写出高效的代码需要遵循两条原则:不执行不必要的操作;不分配不必要的内存;两条原则分别针对CPU和内存,完成必要操作的前提下尽可能的节省CPU和内存资源,自然执行效率要高。单纯这样说听起来很虚,毕竟没有一个统一的标准判断什么是必要和不必要的,需要结合具体情况具体分析了。1. 避免创建不必要的对象创建太多的对象会造成性能低下,这谁都知道,可是为什么呢?首先分配内存本身需要时间,其次虚拟机运行时堆内存使用量是有上限的,当使用量到达一定程度时会触发垃圾回收,垃圾回收会使得线程甚至是整个进程暂停运行。可想而知,如果有对象频繁的创建和销毁,或者内存使用率很高,就会造成应用程序严重卡顿。2.合理使用static成员主要有三点需要掌握:如果一个方法不需要操作运行时的动态变量和方法,那么可以将方法设置为static的。常量字段要声明为“static final”,因为这样常量会被存放在dex文件的静态字段初始化器中被直接访问,否则在运行时需要通过编译时自动生成的一些函数来初始化。此规则只对基本类型和String类型有效。不要将视图控件声明为static,因为View对象会引用Activity对象,当Activity退出时其对象本身无法被销毁,会造成内存溢出。3. 避免内部的Getters/Setters面向对象设计中,字段访问使用Getters/Setters通常是一个好的原则,但是在Android开发中限于硬件条件,除非字段需要被公开访问,否则如果只是有限范围内的内部访问(例如包内访问)则不建议使用Getters/Setters。在开启JIT时,直接访问的速度比间接访问要快7倍。4. 使用for-each循环优先使用for-each循环通常情况下会获得更高的效率;除了一种情况,即对ArrayList进行遍历时,使用手动的计数循环效率要更高。5. 使用package代替private以便私有内部类高效访问外部类成员私有内部类的方法访问外部类的私有成员变量和方法,在语法上是正确的,但是虚拟机在运行时并不是直接访问的,而是在编译时会在外部类中自动生成一些包级别的静态方法,执行时内部类会调用这些静态方法来访问外部类的私有成员。这样的话就多了一层方法调用,性能有所损耗。一种解决这个问题的方法就是将外部类的私有成员改为包级别的,这样内部类就可以直接访问,当然前提是设计上可接受。6. 避免使用浮点类型经验之谈,在Android设备中浮点型大概比整型数据处理速度慢两倍,所以如果整型可以解决的问题就不要用浮点型。另外,一些处理器有硬件乘法但是没有除法,这种情况下除法和取模运算是用软件实现的。为了提高效率,在写运算式时可以考虑将一些除法操作直接改写为乘法实现,例如将“x / 2”改写为“x * 0.5”。7. 了解并使用库函数Java标准库和Android Framework中包含了大量高效且健壮的库函数,很多函数还采用了native实现,通常情况下比我们用Java实现同样功能的代码的效率要高很多。所以善于使用系统库函数可以节省开发时间,并且也不容易出错。(二)布局性能优化布局直接影响到界面的显示时间。关于界面布局的性能优化在技术上并没有难点,个人认为最重要的是是否认识到布局优化的重要性。起初我也会觉得布局本身不会是性能瓶颈,并且也很难优化,好不容易写了复杂的布局文件,或者原生代码就是那样,而且也用log查看了setContentView的时间,似乎没什么问题,实在是不想去研究。但实际上布局问题没有想象的那么简单。布局的性能优化之所以重要,因为以下两个方面: 布局文件是一个xml文件,inflate布局文件其实就是解析xml,根据标签信息创建相应的布局对象并做关联。xml中的标签和属性设置越多,节点树的深度越深,在解析时要执行的判断逻辑、函数的嵌套和递归就越多,所以时间消耗越多; inflate操作只是布局影响的第一个环节,一个界面要显示出来,在requestLayout后还要执行一系列的measure、layout、draw的操作,每一步的执行时间都会受到布局本身的影响。而界面的最终显示是所有这些操作完成后才实现的,所以如果布局质量差,会增加每一步操作的时间成本,最终显示时间就会比较长。那么布局如何优化?总结如下几点:1. 遵循一条规则:布局层次尽量少也就是说,在达到同样布局效果的前提下,xml文件中树的深度尽量的潜。要做到这一点需要合理的使用布局控件:典型的情况是你可以使用RelativeLayout来代替LinearLayout实现相同的布局效果;还有一种是如果布局树的A节点只有一个子节点B,而B只有一个子节点C,那么B通常是可以去掉的;合理的使用标签,如果布局X可以被include到Y中,那么需要考虑X的根节点是否可以设置为,这样在解析时会将的子节点添加到Y中,而本身不会添加。2. 使用Lint分析布局Lint是SDK中tools目录下的工具,ADT中集成了Lint的可视化控制界面。用Lint扫描应用程序,它会从很多方面对应用进行分析,并提示那些可能有缺陷的地方,其中就包含与性能相关的内容。你可以在Google官网上了解详细信息。3. 使用HierarchyViewer分析布局HierarchyViewer(以下简称HV)也是SDK中tools目录下的工具,ADT中也集成了HV的可视化控制界面。可以使用HV查看当前界面的布局,它能提供很多信息,其中有两个可以帮助我们分析性能问题: HV的树视图展现了视图控件的相互关系,可以用来检查是否有第1点中提到的情况。 树视图中可以显示每个节点measure、layout、draw的时间,并且每一项用一个圆点表示其耗时是否正常,每个圆点分别用绿色、黄色、红色表示耗时正常、警告、危险,这样就可以很方便的找到有性能瓶颈了。如果树视图中没有显示这些时间,你可以点击“Obtain layout times for tree rooted at selected node”按钮刷新界面显示。4. 使用ViewStub延迟加载视图ViewStub是一个没有尺寸大小并且不会在布局中嵌套或渲染任何东西的轻量级的视图。如果界面中有一部分视图控件不需要立即显示,则可以将其写到一个单独的layout文件中,用ViewStub标签代替,当要真正显示这部分内容时再通过ViewStub将视图加载进来。三、工具使用遵循好的编码习惯可以让程序执行更有效率,但是实际运行时仍然会遇到各种各样的性能问题。幸好有很多强大的工具能帮助我们分析性能瓶颈,找到问题所在。以下介绍的工具想必大家已经很熟悉了,网上有很多相关文章写得都很不错,在此不再赘述,仅对这些工具在使用时的一些关键点做一些说明。(一)Traceview做性能优化的最直接的方法,就是复现有性能问题的场景,并监控此过程中程序的执行流程,如果能够方便的分析程序中函数的调用关系和执行时间,自然也就很容易找出性能瓶颈了。Traceview就是用来分析函数调用过程的工具,利用它可以方便的分析性能问题。它的使用方式需要以下几步:使用Android的Debug API,或者DDMS监控程序运行过程;复现有性能问题的场景,用第1步的方法获取程序过程中的函数调用日志文件,即trace文件;使用Traceview导入trace文件即可;Traceview的界面很直观,但是在分析过程中需要特别注意以下几点:1. Profile Panel中的各列的含义: Incl – 指函数本身和内部嵌套的其他函数的执行时间; Excl - 指函数本身,不包含内部嵌套的其他函数的执行时间; Cpu Time – 指函数执行时所占用的CPU时间片的总和,不包含等待调度的时间; Real Time – 指函数执行过程的真实时间,包含等待调度的时间; Cpu Time/Call – 指函数平均每次调用的CPU时间; Real Time/Call – 指函数平均每次调用的真实时间; Calls+Recur Calls/Total – 指函数调用的总次数+递归调用次数百分比; % - 带有%的列是指函数的执行时间占总采样时间的百分比;2. 如何分析性能瓶颈首先通常需要关心的是CPU时间,可以找出程序自身的问题,真实时间会受到系统其他因素的影响。然后可以从四个方面进行分析:1)分析有哪些函数单次执行时间长可以点击“Cpu Time/Call”一列,按照降序排列,并找出那些执行时间相对较长同时也是我们关心的函数,然后再查看其函数内部的详细执行过程;2)分析有哪些函数调用次数过多可以点击“Calls+RecurCalls/Total”一列,按照降序排列,并找出哪些执行次数相对较多同时也是我们关心的函数,然后再查看其函数内部的详细执行过程;3)分析有哪些函数总执行时间长有些函数的单次执行时间不是特别长,总调用次数也不是特别多,但是二者相乘得出的总的执行时间较长,可以点击“Incl Cpu Time”,按照降序排列,找出这些函数;4)有时我们很明确需要查看一些特定类的特定方法,可以在页面最下方的搜索条中搜索,不过好像只支持全小写输入。3. 提示一点:利用API或工具采样trace信息时,会禁用JIT功能,同时因为采样本身也需要占用系统资源,所以用Traceview查看函数的执行时间都要比正常运行时慢不少,我们只要关心相对的时间消耗即可。(二)dmtracedumptrace文件除了可以用TraceView分析外,还可以利用另外一个工具dmtracedump,它的功能也很强大。如果你觉得在Traceview中查找类和函数很痛苦,不妨试试这个工具。dmtracedump是SDK的tools目录下的可执行文件,你可以查看它的帮助信息,并执行类似如下的命令:dmtracedump -h -g tracemap.png path-to-your-trace-file & path-to-a-html-file.html然后就可以得到两样东西,一个是各函数调用的树状图,可以一目了然的查看函数关系;另一个是可操作的html的文件,用浏览器打开就可以方便的查找你关心的类或函数。(三)systraceSystrace是从4.1引入的一个强大的性能分析工具,依赖于Kernel的ftrace功能,可以对系统中很多重要模块,特别是图形显示模块做性能分析。它功能包括跟踪系统的I/O操作、内核工作队列、CPU负载以及Android各个子系统的运行状况等。Systrace的使用方法也是需要先通过Android提供的API或者DDMS开启跟踪监控模式,然后运行程序生成日志文件,最后分析日志文件即可。Systrace输出的是一个html文件,直接用浏览器查看即可。如果你使用最新版本的ADT,可以很方便的通过界面操作,不用再用命令了。更详细的内容可以在网上搜索。分享的内容就是以上这些,希望能够对大家有所帮助。
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
百家号 最近更新:
简介: 植根社会,服务组织,汇聚民意,反映民生。
作者最新文章}

我要回帖

更多关于 android 检查内存泄露 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信