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

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.

android开发注意事项的更多相关文章

  1. Android Library开发注意事项

    Android Library开发注意事项 App Module添加依赖Android Library时可以设置library的优先级, 在编译时,app按照library从低到高的优先级依次与每个l ...

  2. VS2015下的Android开发系列01——开发环境配置及注意事项

    概述 VS自2015把Xamarin集成进去后搞Android开发就爽了,不过这安装VS2015完成的时候却是长了不知道多少.废话少说进正题,VS2015安装时注意把Android相关的组件勾选安装, ...

  3. Android开发自学笔记(Android Studio)—4.1布局组件

    一.引言 Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.在Android4.0之前,我们通常说 ...

  4. Android开发之高效加载Bitmap

    一.概述 在Android开发中,我们经常与Bitmap打交道,而对Bitmap的不恰当的操作经常会导致OOM(Out of Memory).这篇文章我们会介绍如何高效地在Android开发中使用Bi ...

  5. Android开发中,那些让您觉得相见恨晚的方法、类或接口

    Android开发中,那些让你觉得相见恨晚的方法.类或接口本篇文章内容提取自知乎Android开发中,有哪些让你觉得相见恨晚的方法.类或接口?,其实有一部是JAVA的,但是在android开发中也算常 ...

  6. Android开发实例详解之IMF(Android SDK Sample—SoftKeyboard)

    本博前面的文章介绍了Android开发环境的搭建和模拟器的常用操作.本次,将以Android Sample中经典的SoftKeyboard项目为例,详细解析Android上一个小型项目的开发过程和注意 ...

  7. 浅谈 Android 开发文化

    Hello,亲爱的读者朋友们(希望你们是 Android 开发者,或者正在成为 Androider 的路上-)! 质量从用户反馈很清凉然后我们就只能看 CPU 原来的想法是但是事实上不是这些但是我们可 ...

  8. android开发关于和使用本机内存、内置存储卡和外置存储卡 (转)

    转自:http://www.2cto.com/kf/201304/204729.html 关于android存储器简介:                  android开发常常需要涉及数据缓存,这就 ...

  9. Android开发之异步具体解释(二)之AsyncTask

    请尊重他人的劳动成果,转载请注明出处:Android开发之异步具体解释(二)之AsyncTask http://blog.csdn.net/fengyuzhengfan/article/details ...

随机推荐

  1. Mysql Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='

    MySQL字符串比较bug: select * from table_a a left join table_b b on a.field_a = b.field_b   error: Illegal ...

  2. Python中关于字符串的问题

    在Python里面,字符串相加经常会出现'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128)这样的 ...

  3. cookie 跨域访问的解决方案

    Cookie 同域单点登录  最近在做一个单点登录的系统整合项目,之前我们使用控件实现单点登录(以后可以介绍一下).但现在为了满足客户需求,在不使用控件情况下实现单点登录,先来介绍一下单点登录.    ...

  4. 【转】 XenServer架构之HA概述

    一.XenServer HA概述 XenServer HA是一套全自动功能设计,规划,安全地恢复出现问题的XenServe 主机上的虚拟机的功能组件. 启用 HA 后,XenServer 将持续监视池 ...

  5. [No0000A5]批处理常用命令大全

    1.Echo 命令打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置.语法echo [{on|off}] [message]Sample: echo off e ...

  6. .NET跨平台之旅:增加文件日志功能遇到的挫折

    在将我们的ASP.NET 5示例站点(about.cnblogs.com)升级至ASP.NET 5 RC1的时候,我们增加了控制台日志功能. 在ASP.NET 5添加日志功能很简单,只需在projec ...

  7. C# 提交网页请求时出现如下错误: System.Net.WebException: 操作超时

    原因一: 连接超时时间 Timeout 以及写入Post数据超时时间 ReadWriteTimeout 设置得太短,一般要设置大于6000ms. 原因二: Expect100Continue 属性的值 ...

  8. JaveScript-解决表格使用滚动条时冻结表头栏问题

    解决方法: //设置表格表头里的th==表格内容里的td function ThEqualTd(thId, tdId) { var tdNum = document.getElementById(td ...

  9. Gulp:自动化构建工具

    一.介绍: gulp是一个基于流的构建工具,可以自动执行指定的任务,简洁且高效 二.优点: 开发环境下,想要能够按模块组织代码,监听实时变化 css/js预编译,postcss等方案,浏览器前缀自动补 ...

  10. 使用TortoiseGit对android studio工程进行代码版本控制

    阅读下列文章时请保证你是否有以下工具: 1.Android Studio 2.TortoiseGit 和 msysGit 安卓工程版本控制哪些文件可以忽略 可以省略的文件如下: 目录 .gradle  ...