网站地图|客服中心|设为首页|加入收藏

行业新闻

首页 > 新闻 > 移动端网站 > Android开发性能优化

Android开发性能优化

布局优化Android开发时,如果创建的布局层次结构比较复杂,View树嵌套的层次比较深,会使页面展现的事件比较长,导致应用运行起来越来越慢,所以需要进行布局优化


Android开发性能优化

1.include标签共享布局:
将通用的布局抽取出来,独立成一个XML文件,在需要用到的页面中使用include标签引入进来,减少代码量,便于修改。

2.ViewStub标签实现延迟加载: 
ViewStub是一种不可视并且大小为0的视图,可以延迟到运行时才填充布局资源。当ViewStub设置为可见或者被inflate之后,会填充布局资源,ViewStub会被填充的视图代替,和普通的视图没有区别。 
ViewStub在需要显示的时候才会进行视图的填充,实现延迟加载的目的。


3.merge标签减少布局层次: 

当一个独立的布局文件最外层是FrameLayout且这个布局不需要设置背景等属性时或者当前布局是另外一个布局的子布局时,可以使用merge来减少布局的层次。

 

4.尽量使用CompoundDrawable:

LinearLayout布局中,如果存在相邻的ImageView和TextView,可以使用compound drawable合二为一成为一个TextView,ImageView中的图片变成TextVIew的drawableTop/drawableLeft/drawableRight/ddrawableBottom属性,之间的间隔使用drawablePadding属性来代替。

5.使用
Lint: Lint也可以用来检查应用的布局是否存在可优化的地方,为优化布局设置的规则如下:
AndroidLintUseCompoundDrawables:尽量使用CompoundDrawable。 MergeRootFrame:使用merge标签减少布局层次。TooManyViews:单个布局中存在太多的View,默认情况下,单个布局中View的个数最多只能是80个,可以考虑使用CompoundDdrawables等来减少View的个数。TooDeepLayout:避免过深的布局嵌套,默认情况下,单个布局中最多层级是10,可以考虑使用RelativeLayout来减少布局的层次。UselessParent:当一个布局不是一个SrcollView或者根布局,
只有一个子View且没有设置背景时可以将它移除掉,并将它的子View移动到它的父容器中,得到更扁平的布局层次。 
**NestedWeights:**android:layout_weight属性会使得View控件被测量两次,当一个LinearLayout拥有非0dp值的android:layout_weight属性,这时如果将它嵌套在两一个拥有非0dp的android:layout_weight的LinearLayout,这时测量的次数将呈指数级别增加。 


UselessLeaf:一个布局如果没有子View也没有设置背景,通常可以移除它,可以得到更扁平和高效的布局层次。

InefficientWeight:当LinearLayout中只有一个子View定义了android:layout_weight属性,更高性能的做法是使用0dp的android:layout_height或者android:layout_weidth来替换它,这个子View就不需要测量它自身对应的大小。

网络优化
网络优化可以节省网络流量,节省电量,提高应用的响应。
1.避免DNS解析:
DNS是域名系统,根据应用请求所用的域名URL去网络映射表中查找对应的IP地址,这个过程可能会需要上百毫秒的时间,可能会存在DNS劫持的危险。所有根据具体的业务需求,可以采用增加动态更新能力的IP方式,或者在IP方式访问失败时切换到域名访问方式。
2.合并网络请求:
对于网络请求应该尽量减少请求的接口,能够合并的网络请求就尽量合并。
3.预先获取数据:
预先获取数据能够将网络请求集中在一次,其他时间段手机就可以切换到空闲状态,避免经常性的唤醒和空闲,起到节省电量的作用。
4.避免轮询:
轮询是指客户端每隔一段时间就向服务端主动发起的网络请求,存在需要的数据就拉取,没有就等待下一次轮询。一般情况下能使用推送替换的尽量使用推送,避免使用Thread.sleep()函数循环等待,可以使用系统AlarmMananger实现定时轮询。
5.优化重连机制:
尽量避免网络请求失败时,无限制循环重试连接,可以设定一个最大重连次数,超过次数限制之后结束重连,等一段时间后再尝试连接。
6.离线缓存:
对于图片,文件等数据,可以使用二级缓存策略,当缓存中有对应的图片或者文件时,可以直接从缓存中读取,不需要网络请求,避免网络延迟,节省流量。
7.压缩数据大小:
对于客户端来说,可以对发送给服务器的数据进行gzip压缩,同时可以选用更优的数据传输格式来减少网络上面传输的数据。
8.不同的网络环境使用不同的超时策略:
可以通过监听 ConnectivityMananger.CONNECTIVITY_ACTION的变化来获取最新的网络类型,动态调整网络超时时间。
9.CDN的使用:
CDN,内容发布网络,尽可能避免网络上可能影响数据传输速度和稳定性的环节,实现更快,更稳定的数据传输,其中CDN加速能够缓解电信核心网络延迟带来的影响。
  • 基于用户创新

    界面设计日新月异,梦创义坚持基于用户需求的界面创新设计……

  • 服务设计思维

    互联网的格局发生的改变,在我们进行设计服务时更是考虑不同用户、不同……

  • 洞察用户心理

    洞察用户有意识和无意识的行为以及心理特征通过构造一系列的服务来促进……

  • 查看更多 >>

最新新闻Latest News

中小型企业网站建设完应该如何营销
很多中小型企业往往纠结于以下10个问题:一、我们起步比别人晚,我们的……
做企业网站到底做给谁看?
设计经常时不时的遇到一些企业客户,常常搞不清楚谁会真正看你的企业网……
传统企业进军移动互联网,从移动云网站开始
移动互联网是移动通信和互联网融合的产物,其发展的重要基础便是智能手……
网站建设和运营五大细节决定用户黏性
网站的成功离不开搜索引擎优化,更离不开最基础最根本的用户群体,如何……
2015年值得关注的电子商务5大趋势
线上线下销售的界线正在变得越来越模糊。在2015年,这一趋势仍将继续。……

销售热线

7x24小时全国售前咨询热线:021-716886699

7x24小时全国售后服务热线:13189800217 15313016798

手机 | 微信同号:13188880211   QQ:16886699

立即咨询 网站建设业务咨询|客服热线:021-716886699 13189800217

点这里给我发消息 电子邮箱:obzx@dei34h.com

营业地址(东部):上海市闵行区元江路5500号第1幢

位置分享

营业地址(西部):上海市闵行区汽车博物馆东路1号诺德中心9-605

标准网站,网站建设,域名注册,虚拟主机,独享主机,企业云邮箱,网站维护一条龙,上海网站建设中心


  扫一扫 加微信
  微信号:cnet99com

  扫一扫 加关注
  微信平台

欧博代理平台罗索西丝智力-专注于互联网平台建设与服务领域 中国互联网平台建设服务提供商

万网阿里云金牌首席合作伙伴站点 全线代理万网阿里云产品及服务

中国万网正式通过ISO9001国际标准质量体系认证

Copyright©1999-2024 欧博代理平台罗索西丝智力 备案/许可证编号 沪ICP备2024083233号

公安部备案号 11010502032413