当前位置: 代码迷 >> Android >> android app 程序设计思路小结
  详细解决方案

android app 程序设计思路小结

热度:88   发布时间:2016-04-28 03:35:37.0
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,引用的第三方包不能混淆。

  相关解决方案