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.
android开发注意事项的更多相关文章
- Android Library开发注意事项
Android Library开发注意事项 App Module添加依赖Android Library时可以设置library的优先级, 在编译时,app按照library从低到高的优先级依次与每个l ...
- VS2015下的Android开发系列01——开发环境配置及注意事项
概述 VS自2015把Xamarin集成进去后搞Android开发就爽了,不过这安装VS2015完成的时候却是长了不知道多少.废话少说进正题,VS2015安装时注意把Android相关的组件勾选安装, ...
- Android开发自学笔记(Android Studio)—4.1布局组件
一.引言 Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.在Android4.0之前,我们通常说 ...
- Android开发之高效加载Bitmap
一.概述 在Android开发中,我们经常与Bitmap打交道,而对Bitmap的不恰当的操作经常会导致OOM(Out of Memory).这篇文章我们会介绍如何高效地在Android开发中使用Bi ...
- Android开发中,那些让您觉得相见恨晚的方法、类或接口
Android开发中,那些让你觉得相见恨晚的方法.类或接口本篇文章内容提取自知乎Android开发中,有哪些让你觉得相见恨晚的方法.类或接口?,其实有一部是JAVA的,但是在android开发中也算常 ...
- Android开发实例详解之IMF(Android SDK Sample—SoftKeyboard)
本博前面的文章介绍了Android开发环境的搭建和模拟器的常用操作.本次,将以Android Sample中经典的SoftKeyboard项目为例,详细解析Android上一个小型项目的开发过程和注意 ...
- 浅谈 Android 开发文化
Hello,亲爱的读者朋友们(希望你们是 Android 开发者,或者正在成为 Androider 的路上-)! 质量从用户反馈很清凉然后我们就只能看 CPU 原来的想法是但是事实上不是这些但是我们可 ...
- android开发关于和使用本机内存、内置存储卡和外置存储卡 (转)
转自:http://www.2cto.com/kf/201304/204729.html 关于android存储器简介: android开发常常需要涉及数据缓存,这就 ...
- Android开发之异步具体解释(二)之AsyncTask
请尊重他人的劳动成果,转载请注明出处:Android开发之异步具体解释(二)之AsyncTask http://blog.csdn.net/fengyuzhengfan/article/details ...
随机推荐
- Mongodb 3.2 Manual阅读笔记:CH9 存储
9. 存储 9. 存储 9.1 存储引擎 9.1.1 WiredTiger存储引擎 9.1.1.1 文档级别并发 9.1.1.2 快照和检查点 9.1.1.3 Journaling 9.1.1.4 压 ...
- 基于H5的微信支付开发详解
这次总结一下用户在微信内打开网页时,可以调用微信支付完成下单功能的模块开发,也就是在微信内的H5页面通过jsApi接口实现支付功能.当然了,微信官网上的微信支付开发文档也讲解的很详细,并且有实现代码可 ...
- spring.net 框架分析(三)ContextRegistry.GetContext()
我们通过ContextRegistry.GetContext()建立了一个IApplicationContext得实例,那么这个实例具体是怎么建立的了. 我们来分析一下容器实例建立的过程: 我们在配置 ...
- js 批量设置css样式
在js中更换样式比较常见,但是批量设置比较少遇见: 但是在做就是插件时,不想额外的添加css文件(需要导入,还可能引起冲突),能批量设置就比较方便了. 以下代码是来自网上的三种方法,使用第二种最方便了 ...
- redux-observable笔记
欢迎指导与讨论:) 前言 本文不涉及深入的知识,只是在概念层面和一个简单的例子解释redux-observable的工作原理. redux-observable,是redux的一个中间件库.它能够自动 ...
- [LeetCode] Binary Watch 二进制表
A binary watch has 4 LEDs on the top which represent the hours (0-11), and the 6 LEDs on the bottom ...
- [LeetCode] Self Crossing 自交
You are given an array x of n positive numbers. You start at point (0,0) and moves x[0] metres to th ...
- Docker实践--部署Nodejs应用
这个例子的目标是为了向大家展示如何在Docker的container里运行Node.js程序.我会先创建一个简单的Node.js web app,来构建一个镜像.然后基于这个Image运行一个cont ...
- SQL Server数据库设计规范
数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的 ...
- 扩展RadioButtonListFor和CheckBoxListFor
在我们做正常的MVC的开发中,一些基本的控件已经够用了,但是有时候我们需要用到库里面没有的一些控件,比如RadioButtonListFor和CheckBoxListFor这类的列表控件,在MVC库里 ...