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,引用的第三方包不能混淆。
时间: 2024-10-19 18:02:37