深圳易捷网络科技注册咨询网-jiujiuya.com.cn 返回首页

Android开发性能优化

信息来源:深圳市易捷网络科技有限公司
信息发布时间:2019-7-11 21:42:35

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

1.include标签共享布局:
将通用的布局抽取出来,独立成一个XML文件,在需要用到的页面中使用include标签引入进来,减少代码量,便于修改。
2.ViewStub标签实现延迟加载:
ViewStub是一种不可视并且大小为0的视图,可以延迟到运行时才填充布局资源。当ViewStub设置为可见或者被inflate之后,会填充布局资源,ViewStub会被填充的视图代替,和普通的视图没有区别。
ViewStub在需要显示的时候才会进行视图的填充,实现延迟加载的目的。

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

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

4.尽量使用CompoundDrawable:

在LinearLayout布局中,如果存在相邻的ImageView和TextView,可以使用compounddrawable合二为一成为一个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加速能够缓解电信核心网络延迟带来的影响。

相关行业资讯

1、网页设计的目录结构规范有哪些
2、推广优化便携潮流主张:网站随身带成主流
3、做网站为什么要聚合页面数据
4、互联网的发展导致SEO优化作用将逐渐减弱
5、个人站长选择虚拟主机应该考虑的7个问题
6、企业网站也要做seo优化的原因是什么
7、在404页面附带flash小游戏,减少网站跳出率
8、浅析:平台外链效果之站长观点
9、网站建设中做好网站用户体验度的几个技巧
10、浅析通用链接在推广优化中的作用
11、如何构建一个强壮网站内部结构设计
12、提高网站收录和SEO排名的4个小技巧
13、房地产行业在网站建设中的要点
14、导致营销型网站被降权的原因是什么
15、网站设计页面不可缺少的几个地方
16、网站运营重要的维护和促进
17、新网站不收录原因都有那些
18、网站优化内链的建设方法有哪些?
19、网站的收录数量与权重、PR的关系
20、制作网站时企业如何审查位于CSS中的错误
21、有效节省竞价推广成本四个方法
22、中小企业网站内页优化有什么方法?
23、医疗网站该如何做好站内优化
24、了解百度算法做好网站优化
25、robots文件代表了什么样的含义呢
26、简约大气的网站设计风格
27、怎么找合适的深圳品牌网站建设公司?
28、Z权威的整站流量优化教程
29、创建外贸网站的注意事项-深圳网站制作
30、网络图谱论“知乎”逻辑是什么知乎是如何运作的
31、网站建设技术难点有哪些
32、网站制作需从用户浏览网页的角度出发
33、企业网站建设选择域名有何技巧
34、说说企业营销型的网站建设有什么特点
35、如何使普通外链变成优质的外链
36、网站如何合理优化推荐系统来提高转化率
37、网站优化中百度蜘蛛抓取的规则有哪些
38、网站空间的概念
39、企业建网站冷暖色的对比
40、剖析SEO中网站数据统计指标的演变历程
41、在建造网站时必需有明晰的网站主题
42、企业网站图片的优化方式
43、公益性教育行业怎么创建品牌
44、用谷歌管理员工具来帮你的网站把把脉吧
45、说说SEO优化对企业互联网营销的意义
46、内容站的出路在哪里 网站如何盈利
47、深圳网站制作中背景设计要求
48、如何判断关键词的优化难易程度
49、企业网站改版需要考虑哪些方面
50、说说SEO优化的外链建设准则有哪些?

相关视频推荐

自动化行业网站制作焊锡机/点胶机/螺丝机网站
企业网站制作新模式全部仅需800元/年
如何提高企叫网站打开速度
公司网站到期了该怎小续费
企业为什么必须要做一网站
企业网站的导航栏一般要规划哪些栏目
国际物流FBA物流网站建设深圳易捷网站公司公司
银制品金银器网站建设深圳易捷网站公司
包装印刷行业网站设计
膜结构公司网站设计
工商财务公司网站设计
购买一个域名需要多少钱
企业网站建设云虚拟主机需要多少钱
财务公言的网站怎么做才能显示在搜索引擎的首页
网站建设一站式服务
深圳网站建设公司网站排行榜
深圳市易捷网络科技有限公司版权所有     粤ICP备2022153140号
best smoke alarms australia |  vape detectors