android sdk怎么设计,android SDK开发-- 功能设计

功能设计

先把app常用的功能进行抽象,主要从Activity Fragment Service等控件进行考虑。

其次完善相关的工具类。主要从代码封装、迭代、可维护性等方面考虑。

抽象

Activity的抽象

Activity抽象主要目的是简化具体功能界面的工作量。主要通过代码封装的方式来达到效果。

同时需要处理网络请求、UI刷新等操作

Fragment的抽象

Fragment的抽象与activity类似。但不同的是需要处理多个Fragment之间的互相调用,传参方式也不太一样。

工具类

App需要一个管理Activity或者Fragment的工具类,对其做全局的操作(方法调用) 为了减少代码的耦合度。不建议在Activity中直接加static引用。可以通过写一些工具类间接的实现。

Activity中访问网络请求以及回调刷新UI是一件比较繁琐的事儿。常规的做法是new一个Thread是传入一个Handler对象,网络请求完成以后sendMessage刷新。但是这种做法耦合度比较强,而且好多业务逻辑都需要在Activity中处理,代码臃肿

private Handler handler;

protected void onCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

handler= new handler(){

publicvoid handlerMessage(){

if(msg.what== 1){

//do sth

}

}

}

}

public class NetRunnable implementsRunnable{

privateHandler handler;

publicNetRunnable(Handler handler){

this.handler= handler;

}

publicvoid run(){

//do sth 处理网络等

Messagemsg = Message.obtain();

msg.what= 1;

msg.obj= “网络请求结果”;

this.handler.sendMessage(msg);

}

}

建议将网络请求的代码封装一下,  封装后续

ActivityMgr

这个类的作用主要是保存app中所有正在运行的Activity的引用。

private static Stackactivities = new Stack;

public static void push(BaseActivityactivity){

activities.push(activity);

}

public static void remove(BaseActivityactivity){

activities.remove(activity);

}

public class BaseActivity extends Activity

public void onCreate(BundlesaveInstanceState){

ActivityMgr.push(this);

}

public void onDestroy(){

ActivityMgr.remove(this);

}

解析一下为什么onDestroy的时候采用remove方法而不是pop()

防止acitivty AB,   A启动 B  如果此时A#finish调用Stack#pop则会把B的引用移除

Fragment的工具类先略过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值