谷歌刘昌皓分享Android设计技巧(2)

1970-01-01 08:00

如果对错误是存在系统之中,肯定会有人发现,一个普通非IT人员试用你的程序是最容易找出问题的,如果你找一个专业人员,有一些测试人员刚刚大学毕业,不知道什么测试会慢慢形成一个思维框架,不要说你自己,你自己测试肯定测不出来错误,要想让一个真正用户想怎么做,能把这个东西测出来。在设计应用程序的时候,现在程序有很多版本,我们程序最好看一下我们CDD相关测试,才能确保你程序在Android系统上面可以很好的跑。

我们还要考虑一些相关问题,比如说物理屏幕尺寸,还有横的还是竖的,有没有物理键盘虚拟键盘,如果是虚拟键盘屏幕会截住很多这些东西都要考虑,越深入考虑问题越多,你对UI不在行招一个人,或者找一个合作伙伴专门服务UI设计会好很多,这里面给大家一些信息,看一下我们现在系统分布图,是全球,截止于8月2日,我们Android2.1最多,2.2越来越,1.5有一些,1.6有一些,还有其他的一些更早的一些系统,占很少一个比例,这里面我看屏幕,高分屏很当,中分平也有,低分平就很少了。

同时我要说到一点,尽量使用relotivelayout,可以节省你屏幕的渲染页面性能开销。我说一下国际化的问题,什么是国际化,如果做过Java可能都知道,Android在我们写我们应用程序把各种语言素材放在我们包里面,会选择一个合适的素材,对于字符我们放到RES/VOLUES,定义我这个素材是针对哪个语言,过高分辨率。qualifier有优先级问题,有些高于是高于屏幕尺寸,优先级编列可以在这个列表里面看到,我们看一个流程图,首先找我当前应用程序有没有qualifier定义,判断当前系统是什么状态,搜索qualifier有没有满足,找到满足的,完成相关内容,会有一个小问题,我手机是一个英国英文这样的环境,这个是一个竖屏幕,高分平,不太触摸有有这么多的qualifier哪一个是最终系统会被限定的。

正确答案肯定不会是第三个因为是法语,也不是第一个和最后一个,第5个也不对,第二有线既是PORT只有第四个。这个要注意我们优先级的问题。

这里面有几个点是可以提高性能的,是我们近8年来个人开发经验的一个总结,这个是通用的,这里面首先提到一点就是memory和objects,这个东西只要管理好,基本上性能会很好,Android里面也一样,怎么管理呢,是一个很大的话题,我想提到首先关注gC,会话费几百个毫秒可能是历史长河一瞬但是用户会是很长时间,会觉得你界面是一卡一卡的,因为GC会停到所有的现场,但是怎么避免让系统尽量少用就是下一个环节,不要在一些关键经常调用的函数里面创建对象,如果你能避免更多创建对象可以节省很多被消耗掉,看到这些函数不要在内部创建对象,而是或者缓存其他,或者放在池里面,不要放在函数里面,你有联系人列表,用手很快画一下屏幕,会被调用上百次,所以在划以后会越来越慢,很多会用到listview,做这个的时候通过用adapter,gettview会经常调用,我们把对象创建出来,simple,but expensive。Improve it recycle view。Try,viewHolder。如果以后做Android开发如果做到listview,要计下关键字是viewHolder,你在屏幕上如果用第一种方法,我们不到十个SPS每秒钟刷新率不到十个。还有一个是我们background和lmage不要实时缩放图片,缩放是非常耗时如果是图象直接影射屏幕就出来了,缩放要对每个象素进行运算,才能得到完整图象,对于计算机还好,但是对于移动设备CPU不高,内存很小时间开销是很高。如果你用一个已经pre—resize,zheimage会提升一倍的性能。

还有一个是invalidate你做页面的时候,你刷新一个内容的时候,会调用一下invalidate,我们建议你对仅仅需要的区域做invalidate,加上一个参数画了一个方块,还有一个就是views和layouts,如果有很多views叠加在一起,加载要进行编译过滤这个用时间是非常多,把压

缩成几个简单的views放在一起,这样layoulc看回来会简单一些,有几方法,我们用relativelayout合在一起,再我们可以用merge的方法,还有用手动需要显示出来,这样才能提升你的性能,总结起来最重要一点,在一些关键性函数不要分配大量对象。把你逻辑代码设计越简单越好,越简单就越快,不要太简单,要在简单和漂亮找到一个平衡点,我们使用一个正确的方法,今天我要讲的内容就这么多。

提问:你刚才说应用放到云计算里面,你能再详细说一下。

刘昌皓:谷歌有一个API,C2DM里面会有很详细,怎么使用谷歌云功能,云计算这个东西概念很虚,很多人说云计算,我个人看,云计算本质就是说把一些数据放在网络,对于网络基础构架是云计算中心的范畴,对于Android系统来说,谷歌想表达意思,更多把你的网络相关的功能放进来,把数据更多到网络上,不要你的数据全部放在网络上本地做数据处理没有问题把地数据放在网络上去,C2DM是Android针对云计算的一个解决方案。

提问:因为Android是开源的,不同厂商导致原代码导致UI各方面设计不一样,Android不停推出新版本,从1.5到2.2Android会不会最终解决UI统一性的问题,这个可能无形中给开发者造成很大的负担,我需要对各个机型做匹配开发。

刘昌皓:这个也是我们头疼问题之一,我对这个问题没有一个很好的答案,我想给大家分享一下我的看法,所有开源产品有很多分支,最终肯是最优秀分支主导市场,现在可以说谷歌的原本Android2.2,这个可以说是一个旗,对这个问题要分几个层面看,首先是系统本身的改变,比如说Ophoen,UI也有改变,每个厂商做一个自己UI体系,这一点不是很大的问题,最主要系统本身变化,因为我们谷歌对于Android系统是最资深的一个公司,所以可以看到就是说Android一些很有价值的特性会在新版本慢慢体现,这些厂商做分支化他们也有很大风险,如果他们的速度没有谷歌原始版本快,或者产品没有产品号,有很多人用谷歌,会导致市场占有率越来越低,我们野战军不排除会超过谷歌,但是我们在还没有看到,这个事情很难讲不允许厂商做这个,这个不是一个很开放生态系统对于整个东西,我觉得我们开发人员想做这个市场的话,找大旗看哪个是市场率最高的。你要想说我想做应用程序又向在标准Android老,又想在乐phoen跑是不太可能的。

对于其他的改造厂商我可能偶尔做一些辅助更新,做一些兼容的方式,看你自己,对于谷歌自己,Android是开源的我们没有任何权利限制别人,在市场净化当中总户有人倒下,起来要找对方向,这是我个人的看法。

提问:现在iPhone和Android都做电子商城,大家看到这个趋势是比较明显,但是它的隐患是什么,做Android开发,怎么做UI,有很多好前景,从谷歌整个开放平台开源这个门槛有一点拉低,做开发我开发一个应用怎么能够更好的体现自己的区别度,再怎么比较好防止山寨化。

刘昌皓:首先我个人对于电子商城的看法,我们有自己的看法,把应用程序放在一个集中地方让用户下载,苹果有审批机制,要跟用户做很多的要求,比如说某些程序不能做,有很多限制,我们采取开放态度,所有人可以在商城里面放程序,只要不要放恶意的弊端任何事情都优与劣对Android我觉得弊端可能是里面软件量会非常大,有时候用户不能选择,搜索某种软件,其实这个问题也在不停被谷歌解决,也就是说我们内部经常会沟通怎么把

Android商城做得更好,我们想提供一个互动平台让用户决定好与坏,比如说我们看用户下载量,使用频率,安装率,用户评价,更新次数很多因素找到一个好的算法,可以大概算出来这个软件是不是好的软件,是好的软件可以给用户一个排序功能,或者按时间,用户推荐度或者算法优先度,用户还是可以找到合适的软件,当然也有一些垃圾软件,是有一层一层的淘汰,因为它肯定排在最后,只要我们能把算法找好,安全性控制住就不是问题。

怎么做很好应用程序,让他在里面很突出,不仅仅关系到应用程序思路,市场接入点,是要做细分市场,还是关心你商城怎么做,怎么做广告,宣传,还有产品技术本身,程序是不是足够健壮,功能是不是最好好,确实能满足用户需求,还有UI是不是合适,推出时间点这个是非常好的话题,这个话题里面我相信我们一个小时,再多时间也说不完,是你需要跟你的团队不停的商量,因为每个团队都有自己优势,你要到到优势,把其他地方补上去,把这个产品放到商城里面做,同时可以跟其他放在网上下载,可以跟商业谈,直接帮你预装,各个方式都可以做。

怎么防止山寨化,哪有钱赚哪的人就会多,现在苹果数量,随着C语言很难,同样会有很多人学习,这个跟语法简单和难没有关系,只要市场好肯定有人做,Android使用JAVA语法不是说Android门槛低,怎么防止山寨化我个人感觉你看看谷歌的产品就知道,谷歌产品有很多也可以山寨化,可以山寨谷歌搜索引擎,界面一样,核心不一样,这里面有很多,包括算法,产品,不断更新及这些都是你的核心竞争力,你要找到你的核心竞争力,别人就山寨不了,这个跟你平台,语言是没有任何相关性的。


谷歌刘昌皓分享Android设计技巧(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:绿化工程 施工方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: