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

Android开发性能优化

信息来源:深圳市易捷网络科技有限公司
信息发布时间:2025-5-4

布局优化在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、解密360官方推出友链交换平台的意义何在?
3、手机网站建设让网页设计在众多同类中被注意
4、如何为网站选取挖掘有价值的长尾关键词
5、原创文章写不出来网站SEO优化该怎么进行呢
6、注册域名需要注意哪些事项-深圳网站建设
7、英文网站建设需要注意哪些问题
8、公司网站制作时首页的设计关键点是什么
9、怎么写文章收录速度快
10、撰写百度竞价排名广告语应注意的九点
11、成功的网站运营思维之选择好你的主题
12、教你如何挑选Windows虚拟主机空间
13、企业网站建设内容聚合的技巧
14、网站建设时如何挑选编程语言
15、网站优化文章编写规则有哪些?
16、seo优化:竞价如何选择省钱高转化率的关键词
17、网站优化之软文篇
18、中国站长第一人:李兴平
19、影响网站排名的因素有哪些
20、网站制作中图片优化的好处
21、用户界面网站建设的原则有哪些(上)
22、智能手机vs桌面:推广优化+Web开发重心转移
23、论坛运营如何解决用户粘度
24、独立博客的价值
25、网站建设的视频制作技巧
26、应怎样看待企业网站的价值
27、企业做网站细谈,从零开始做导航
28、网站建设的用户体验
29、商城网站建设关键词挖掘策略技巧
30、企业做网络推广的方法有哪些?
31、让图片替你的网站“说话
32、如何快速提升百度关键词排名
33、细节决定成败,网站优化也需熟能生巧
34、企业为什么重视竞价而忽略优化
35、网站建设的页面怎样设计才能更加有美感
36、在网站优化中,robots文件有什么用
37、企业网站制作存在的问题有哪些如何解决
38、在网站建设中如何实现信息的更新和交互能力
39、网络推广中建筑站型的选择技巧
40、如何做一份高质量的网站策划方案
41、外贸网站如何在谷歌做网站优化
42、外链多但网站没有排名的原因你分析了吗
43、如何优化可以留住用户
44、百度算法改进后,我们该如何做网站优化
45、如何让推广关键词展现在左侧
46、利用SEO技术提高关键词排名的几个因素
47、怎样区分自然排名与竞价排名
48、做网站制作需要准备哪些资料
49、更改网站标题关键词对网站建设后期维护有何影响
50、初学做网站选择什么建站管理系统通俗易懂

相关视频推荐

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