浅谈Android开发中项目的文件结构及规范化部署建议

2019-12-10 18:50:53于海丽

这样的话,整个结构看起来就是一个典型的MVC结构。一个Models包包含POJOs,用来转化API接口获取的Json数据,一个views包包含Views,notifications,action bar views,widgets等。Adapters是一个中间层,位于数据和视图之间。但是,它们通常需要通过getView()来输出View视图,所以你可以把adapters放在views包的子包位置。
一些应用程序级别、仅属于Android系统的控制器类,应该放在managers包里。各种各样的数据处理类,例如DateUtils可以放在utils包里。与后台服务器交互的类应该放在network包里。
总之,从与服务器交互到与用户交互的整体架构可设计如下:

com.futurice.project
├─ network
├─ models
├─ managers
├─ utils
├─ fragments
├─ views
  ├─ adapters
  ├─ actionbar
  ├─ widgets
  ├─ notifications

资源文件
命名
遵循加前缀的惯例,类似type_foo_bar.xml,如:fragment_contact_details.xml,view_primary_button.xml,activity_main.xml。

组织布局文件
如果你不知道如何规范化一个布局XML文件,可参考下面惯例:

  • 每行一个属性,缩进4个空格;
  • android:id永远放在第一个;
  • android:layout_** 属性要放在顶部;
  • style属性放在尾部;
  • 结束标志位 />要独占一行,有助于对属性排序或添加;
  • 不要写hard code,如 android:text,对于Android Studio来说可考虑使用Designtime attributes方法。
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
     xmlns:android="http://www.easck.com/apk/res/android"
     xmlns:tools="http://www.easck.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
    >
    
      <TextView
       android:id="@+id/name"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_alignParentRight="true"
       android:text="@string/name"
       style="@style/FancyText"
      />
    
      <include layout="@layout/reusable_part" />
    
    </LinearLayout>