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,引用的第三方包不能混淆。

更多相关文章

  1. Android 比较全面的自定义刷新空间
  2. android实践项目七自定义的Spinner
  3. Android 自定义控件实现点击波浪效果(九)
  4. Android 自定义ListView实现Item左右滑动删除
  5. 自定义android Intent Action与继承TextView形成一个动态改变tex
  6. Android 自定义通知Notification 适配不同背景颜色
  7. android 最简单的自定义控件 自定义view
  8. Android 自定义控件的简单实现

随机推荐

  1. Android 屏幕亮度调节(2.0以后出现亮度自
  2. android之eclipse更新ADT碰见No reposito
  3. 【Android】常用控件及布局
  4. 禁止Android 的锁屏功能. Disable Lock S
  5. Android 延迟发送消息的用法
  6. Android网络状态检测
  7. Android SD 卡文件浏览器
  8. Android简易实战教程--第九话《短信备份~
  9. android使用Animation的两种方式
  10. android实战教程(一)