读阿里巴巴 Android 开发手册的总结

code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群

作者:名聪小先生
链接:https://www.jianshu.com/p/9ab0ff79fd3c
声明:本文已获名聪小先生授权发表,转发等请联系原作者授权

在这里小做一下总结,同时也可以加深自己的印象

一、命名规则:

文件命名:

模块+组件+作用;例如module_login_btn_register;

组件命名:

组件+模块+作用;例如声明一个Button btn+module_login_register;

小结:看上去很清晰,但是我觉得还是根据自己习惯来定义比较好,毕竟后续还是自己维护,因此书上也是给出推荐并没有强制要求。

二、基本组件:

1,Activity传值:

相信大部分的人都知道Intent传值它是有数据的大小要求的,超过它传递的最大值时就会出现TransactionTooLargeException异常,

因此当数据量很大的时候最好是不要用Intent的传值,可以用eventbus来代替。

小结:Intent具体最大值多少根据不同厂商的规格制定的,是没有一个准确值这么一说。

2,生命周期以及Activity异常情况

https://www.jianshu.com/p/9844eb905db1

小结:这个连接已经解释的足够详细了,这里就不做小结了

3,显性和隐性需要注意的细节

在android中Intent分显性和隐性,显性只要在主清单文件声明的话一般都不会有错,隐性的则需要通过resolveActivity函数来检验一下当前activity是否存在,如不存在则会抛出ActivityNotFoundException异常

小结:隐性跳转则需要先检测一下,保证程序的健壮性。

4,Service和BroadcastReceiver做耗时操作时

可以用IntentService来做操作,可以有效的避免耗时操作时导致的ui不流畅

5,不要在onDestroy释放所有的资源,配合onstop或者onpause函数结合inFinish来判断;

小结:因为有些耗时操作在onDestroy释放的话可能比较晚。配合使用更佳。

6,onpause不要做太多的耗时操作,因为跳转到下一个activity的时是先调用当前activity的onpause的方法。

小结:如果做在onpause的方法做耗时操作会给用户一种不流畅的感觉

7,不要在Appliction对象中做数据的缓存,会出现NullPointerException。可以使用一些持久化机制对数据进行缓存。

例如:假设当前程序长期处于在后台进程中时,很有可能Appliction会被重新创建,这个时候如果处理不当的话会出现异常。

8,使用toast时写成一个单例的全局的toast。这样可以避免重复被用户点击时一直弹出toast,而不能取消的情况。

9,在adapter中做判断的时候一定要写else这个反之条件,众所周知item会出现复用的情况,如果不写会出现显示错乱问题。

三、UI与布局 :

1,布局时很多时候都需要多个viewgroup嵌套时不要使用LinearLayout 嵌套,要使用RelativeLayout,需求中RelativeLayout会比LinearLayout 更加的容易实现效果,但是如果

是简单的布局的话还是需要用LinearLayout,因为在源码中LinearLayout只是测量了一次,而RelativeLayout测量了多次,测量是需要cpu去做操作的,因此还得看个人的需求来实现。

小结:不过现在完全可以用约束布局来实现啦。已经完全可以不用考虑这些。

2,帧动画慎用

3,使用NestedScrollView去做RecyclerView的嵌套会避免很多问题;

比如:滑动冲突;而且性能会比ScrollView要强很多

相关阅读

2019 年终总结,245+篇,已分类整理
深度 |  Android 整体设计及背后意义
两年 android 经验面经
Android性能优化:关于 内存泄露 的知识都在这里了!(文不如图,图不如表)
如何统计Android App启动时间

如果你有写博客的好习惯

欢迎投稿

点在看,小生感恩大家❤️

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值