美文网首页
Android开发注意事项

Android开发注意事项

作者: stormbaron | 来源:发表于2017-03-07 15:08 被阅读0次

代码质量,一个可大可小的问题。

美的东西值得追寻

一  规范

(1)命名

 变量:mNumberOfPlayer(number_of_player)

常量:INTEM_IMAGE(intem_image,intemImage)

(2)方法 

命名:采用小驼峰式

注意:

1、严格要求自己写体量小的方法,一个方法在20行左右(getter、setter一行解决),方法过大一定要分拆,比如如多 if-else里面的内容完全可以分别拆出2个单独方法 

2、避免空方法(Methods should not be empty

如果有特殊原因写了内容为空的方法,一定要有详细的注释说明原因。

3、表达式不应该太复杂(Expressions should not be too complex,maximum allowed 3)

 if(edge == DragEdge.Right && childRight <= getWidth()&& childBottom <= getHeight()&&                childTop >= getPaddingTop()&& childLeft >= getPaddingLeft())

 4、字符串字面值不应重复(String literals should not be duplicated

HashMapmap =newHashMap();

map.put("ItemImage", R.drawable.wb_icon_myproject);

map.put("ItemImage", R.drawable.wb_icon_myproject2);

修改为:

constant String INTEM_IMAGE="ItemImage";

 map.put(INTEM_IMAGE, R.drawable.wb_icon_myproject2);

二  规避Bug

(1)java.lang.NullPointerException

空指针最为常见,也最容易规避,使用的时候一定要进行null check,采取不信任原则:

方法形参要判空后才使用;

全局变量容易被系统回收或者更改,使用全局变量前建议判空;

第三方接口的调用,对返回值进行判空。

(2)java.util.ConcurrentModificationException

异常示例:java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)

异常代码示例:

mTimer.schedule(newTimerTask() {

        public voidrun() {

                  initEleLocationData();

          }},0,DELAY_TIME_InitData);

mTimer.schedule(newTimerTask() {

 public void  run() {

   if(mEleInfoList!=null) {

           for(HashMap mInfoMap :mEleInfoList) {

                      calculateTime(mInfoMap);}

  }}},0,DELAY_TIME);

[原因分析]:该异常表示迭代器迭代过程中,迭代的对象发生了改变,如数据项增加或删除。

由于迭代对象不是线程安全,在迭代的过程中,会检查modCount是否和初始modCount即expectedModCount一致,如果不一致,则认为数据有变化,迭代终止并抛出异常。常出现的场景是,两个线程同时对集合进行操作,线程1对集合进行遍历,而线程2对集合进行增加、删除操作,此时将会发生ConcurrentModificationException异常。

具体解决方法:多线程访问时要增加同步锁,或者建议使用线程安全的集合:

1. 使用ConcurrentHashMap替换HashMap,CopyOnWriteArrayList替换ArrayList;

2. 或者使用使用Vector替换ArrayList,Vector是线程安全的。Vector的缺点:大量数据操作时,由于线程安全,性能比ArrayList低.

(3)java.lang.IllegalArgumentException: You must pass in a non null

(4)Switch   "switch" statements should end with "default" clauses

持续补充。。。

相关文章

  • Android项目开发注意事项

    Android项目开发注意事项 App 研发录 阅读笔记 (1-2) 10种软件开发中 over-engineer...

  • Android 开发注意事项

    对于不需要用的 View,设置它的 visibility 为 GONE 。这样防止 view 再占据布局的空间,而...

  • android 开发注意事项

    starter.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);会直接触发 onA...

  • Android开发注意事项

    代码质量,一个可大可小的问题。 一 规范 (1)命名 变量:mNumberOfPlayer(number_of_p...

  • Android开发注意事项

    以下总结全部来源于开发经验积累,干货满满的,有问题请邮箱1057915589@qq.com,感谢!敬礼~ 1、安卓...

  • 画虚线

    注意事项: android:layerType="software"

  • 笔记

    Android 的四大组件, Android 界面, Android 内部机制, Android 注意事项,数据库...

  • 移动端的交接注意事项

    移动端的交接注意事项(iOS/Android): 1. 账号部分: 1.开发者账号,上传到各大应用市场的账号 (比...

  • android开发中注意事项

    1、代码中储存数据通常会采用 2、清除缓存 3、为了节省网络流量、且其它地方不需要用到的数据,一般存缓存目录当中,...

  • Android设备开发注意事项

    关于项目环境的搭建就不说了 现在只记住真机开发的坑 一般情况下安卓使用 Genymotion来进行安装测试 个人...

网友评论

      本文标题:Android开发注意事项

      本文链接:https://www.haomeiwen.com/subject/ubemgttx.html