android开发注意事项

写到哪里算哪里,从新项目 说说我怎样开发

1.新建项目,创建自己的application

在Application中初始化xutils3和自己的UncaughtExceptionHandler,添加 统一管理应用退出,添加activity,移除activity的方法

各Activity继承自己的Activity_Base(方便后期统一处理),base中把每个activity添加进栈(不继承的话,需手动添加进栈  主要为应用退出)

2.命名方式(极大的提高开发效率) eg:

Activity------>Activity_Base

Fragment---->Fragment_Base(类型_功能)

adapter----->Adapter_Fragment_Order (哪个类的adapter)

layout------->activity_base(类名小写)

3.注解   eg:

//布局注解

@ContentView(R.layout.activity_md_using_surface_view)
public class VideoPlayerActivity extends Activity_Base

//view注解

@ViewInject(R.id.button_add_plugin) Button button_add_plugin; //添加plugin
//(点击,长按等)事件注解
@Event(R.id.button_add_plugin)  private void add(View view) {L.i("点击添加");}//按钮添加plugin事件,单击(type可省)
@Event(type = View.OnLongClickListener.class,value=R.id.vr_down)
private boolean vr_down_long(View view){ L.i("选项 长按down");//长按

4. 高内聚,低耦合

4.1.应用内通讯可用eventbus替代handler 或广播

4.2逻辑的解耦合 eg:网络请求,把请求与解析,展示 分离开(核心,代码按顺序执行,逻辑分步骤实现)

public void getData(){
x.task().run(new Runnable() {
@Override
public void run() {
RequestParams params = new RequestParams("http://www.baidu.com/login.php");//接口地址
params.addBodyParameter("username","123");
params.addBodyParameter("password","123");
try {
final String result=x.http().postSync(params, String.class);//在异步任务里进行同步请求,拿到请求结果str
//拿到json,进行解析,我封装的fastjson
List<UserInfo> list =JsonUtil.parasList(result,UserInfo.class); //绑定bean到adapter或者其他方式更新ui,runOnUithread 也可以
x.task().autoPost(new Runnable() {
@Override
public void run() {
//text.setText("更新ui");
}
}); }catch(Throwable e){e.printStackTrace();} }
});
}

5.关于多层回调嵌套的问题,和异步任务的解耦合 可以参考这里的实现

https://github.com/Aiushtha/Android-LessCallBack

6.

上一篇:分布式缓存一致性hash算法理解


下一篇:匿名函数lambda