首页 > 代码库 > android app 程序设计思路小结

android app 程序设计思路小结

android app 程序设计思路小结

一、model设计与实现

建立业务POJO,比如user

public class User{
    private int userId;
    private String userName;

    public User(int userId, String userName){
        this.userId = userId;
        this.userName = userName;
    }

    public void setUserId(int userId){
        this.userId = userId;
    }

    public void setUserName(String userName){
        this.userName = userName;
    }

    public int getUserId(){
        return this.userId;
    }

    public String getUserName(){
        return this.userName;
    }

}

二、net网络交互接口设计与实现

1,请求格式定义。

http://192.168.1.31/CommandHandler.ashx
{
"MessageContent":"{‘CourierId‘:‘652‘,‘TrackingY‘:31.174406,‘Province‘:‘上海市‘,‘District‘:‘闵行区‘,‘City‘:‘上海市‘,‘TrackingX‘:121.39061,‘Address‘:‘上海市闵行区万源路2163号‘}",
"Passport":"mWEKICmWIVD0YRGXMSRC5HH7SYVMIVlVEGOMRK",
"Function":"AddCourierTracking",
"Usage":"User"
}

2,返回格式定义

{
"ResultFlag":1,
"ErrorMessage":null,
"Passport":"mWEKICmWIVD0YRGXMSRC5HH7SYVMIVlVEGOMRK",
"MessageContent":{
\"Result\":null,
\"ResponseStatus\":{
\"ErrorCode\":\"1\",
\"Message\":null,
\"StackTrace\":null,
\"Errors\":null
}
}
}

3,实现方法需要适配多样情形(方法重载),内部实现需要避免重复(内聚)。

public class NetUtil{

    public static void doPost(Context context, HashMap<String,String> map, Handler handler, Callback callBack){
        doRequest(context, map, handler, callBack);
    }

    public static void doGet(Context context, Handler handler, CallBack callBack){
        doRequest(context, null, handler, callBack);
    } 

    private static void doRequest(Context context, HashMap<String,String> map, Handler handler, Callback callBack){
        ...
    }
}

三、UI界面框架

1,定义自己的超类,比如MyActivity, MyFragment

public class MyActivity extends Activity{

}

2,建立超类链(),分别插入日志、Toast、进度条、导航栏,标题栏等共用UI元素,分开插入是为了方便拓展和去掉。

public class LoggableActivity extends Activity{

    protected static String TAG = this.getClass.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LogUtil.log(TAG,"onCreate()");
    }

}

3,分别实现各个页面,继承自最低级别的超类。

public class LoginActivity extends LoggableActivity{}

4,Adapter,service,broadCast等类似。

四、管理数据

1,使用ContentProvider。

2,使用Sqlite。

3,文件方式存储(SharedPerference、sd卡)需要添加加解密。

4,使用内存缓存策略,比如LRU算法。

五、发布和proguard

1,所有被androidmanifest.xml定义的类不能混淆,所以关键业务逻辑实现要移除被调用类。

2,引用的第三方包不能混淆。

android app 程序设计思路小结