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

微信扫一扫,分享到朋友圈

读阿里巴巴 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要强很多

微信扫一扫,分享到朋友圈

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

BAT大神都在用的AndroidStudio插件

上一篇

基于Nginx的媒体服务器技术

下一篇

你也可能喜欢

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

长按储存图像,分享给朋友