Android编码规范

作者: looper1211 | 来源:发表于2016-06-04 16:08 被阅读187次

    Android开发代码规范相关系列文章:

    1. Android命名规范
    2. Android编码规范

    Android编码规范有很多中,不是为了规范而规范,规范为了解决实际问题,帮你养成良好的编码习惯,提高编码效率的,这里只做一些个人经验总结。

    1. 要分门别类存放各种类
    具体请参考 重新规划项目结构

    2. 高效的使用findViewById
    具体请参考 重新学会findViewById

    3. Laytou中的常量要在资源string.xml中定义
    以下的的使用方式是错误的

    <TextView android:text="评论"... />
    

    我们应该将“评论”这个常量定义在string.xml中

    <resources>
       <string name="tvPersonContent">评论</string>
    </resources>
    

    然后在Layout布局文件中这样使用:

    <TextView android:text="@string/tvPersonContent"... />
    

    另一方面,在Activity中也需要设置一些常量,不能把它写死,要将其定义在string.xml中,然后每次都从资源文件中取值,如下代码:

    String content = this.getString(R.string.tvPersonContent);
    

    4. Layout中所有控件的字体大小,都定义在dimens.xml中
    dimens它相当于网站的CSS样式表,如下所示:
    使用方式如下:

    <resources>
        <!-- 字体样式 -->
        <dimen name="font_size_small">12sp</dimen>
        <dimen name="font_size_normal">14sp</dimen>
        <dimen name="font_size_normal_high">16sp</dimen>
        <dimen name="font_size_large">18sp</dimen>
        <dimen name="font_size_large_high">20sp</dimen>
    
        <!-- 边距 -->
        <dimen name="offset_2dp">2dp</dimen>
        <dimen name="offset_4dp">4dp</dimen>
        <dimen name="offset_6dp">6dp</dimen>
    </resources>
    

    使用方式如下:

     <TextView
            android:textSize="@dimen/font_size_large" />
    

    此外,对于所有控件的Margin偏移量,也需要统一规格,正如上面dimens.xml
    中的定义,有若干种尺寸事先定义好供我们选择

     <LinearLayout
            android:layout_marginLeft="@dimen/offset_4dp"
            android:layout_marginTop="@dimen/offset_6dp" >
     </LinearLayout>
    

    这样的好处是,只要稍微修改一下dimens.xml中的定义,就可以批量修改页面的样式。Androd的手机千奇百怪,各种奇葩分辨率都存在,在一些手机上,font_size_normal可能会过大或者过小,我们可以修改为13dp或则15dp,迅速完成修改任务。

    5. 在Activity总,定义新的Activity的生命周期
    具体请参考 为Activity定义新的生命周期

    6. 统一事件编程模型
    具体请参考 统一事件编程模型

    7. Activity中不要嵌套内部类,尽量都独立出来,该放哪儿放哪儿

    8. Adapter的编码规范如下:

    • 所有的Adapter,都放在Adapter这个包中
    • Adapter绑定的数据,一律为ArrayList<自定义可序列化的实体>
    • 在Adapter中创建适合于列表自身的ViewHolder实体类,请统一命名为ViewHolder。

    9. 数据类型转换一定要进行校检
    具体请查考 类型安全转换函数

    相关文章

      网友评论

        本文标题: Android编码规范

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