以下内容转载自牛人博客,很多牛叉内容,请点击:http://www.stay4it.com/?p=281

Android三年,现在写代码,真心没什么很大的兴趣,每天都是优化代码,优化框架,技术支持。非常枯燥乏味。

一个项目做了大半年,才做了1/4,光src就有3M了。对这种大型app,我表示很无奈。什么时候才能到个头。

不过感谢我的line manager,让我专心做架构,还有我老大给予我技术支持。

写代码的时候三要素:Stable,Flexible,Readable

现在我搭个小型app的框架,大概3小时(复制,粘贴)

1.HTTP框架,用自己的,

2.ActionBarSherlock ,集成actionbar,我还是比较喜欢4.0风格,现在做的app都遵守标准的4.0

3.重写ActionBar Style , 更换主题样式。

4.图片lib(Android-Universal-Image-Loader),最近找了个不错的。

5.下拉刷新,改的开源的,增加下拉和上拉的区分回调,链接不记得了。我博客里有。

6.瀑布流,最近也碰到的牛x的。PinterestLikeAdapterView 不过代码我也改过了,在onscroll里加载更多,回调。发现下拉刷新的方式都是一样的。。。

7.数据库,自己写的框架太大了,基本手写。ormlite没试过,db4o,perst太小众,不怎么灵活。

8.BaseActivty,BaseFragment,BaseFragmentActivity. 很多时候有基类是非常好的事,逻辑都在基类里写好,子类只要改下UI布局就好了。

9.工具类。

10.复制粘贴,一个项目搭好了。

我喜欢把UI和逻辑拆开,如果拆不开,要么弃用,要么重写。不然以后维护没人能看懂,可别提改bug了。

不管team有多少人,一开始写代码尽量写伪代码(//TODO),把整体逻辑写完,TODO的地方慢慢加上,一个Activity就写完了。而且如果不做了,或者让别人来做,能很快顺着你的思路继续下去。如果你有很好的画流程图的习惯。把它们变成TODO试试。你会发现代码写起来很轻松。把写代码当成一种享受。当我看到别人在Activity有一堆算法逻辑的时候,简直是噩梦。如果team都能按照这个标准,效率至少提高50%。

对于新手来说,借鉴别人的sourcecode不是越多越好,整天有人问,这个项目的那个方法怎么用。你连看懂的资质都没有,到时候出bug了,谁来帮你fix。再者需求不是生搬硬套,别人的源码拿来还要改的,那么怎么改?建议好好分析一个项目,自己再试着写个简单的libary。你就明白怎么使用别人的框架,而且还会修改。框架本身就是为了更简化开发,所以很灵活,考虑的情景也很多。看明白一个框架,你的逻辑能力会变强,自己试着写个小框架哪怕是个小自定义view,动手能力也会变强。当然,如果简单基础知识都不理解的话,建议还是一步步来。

当你在写代码时,调用api,或者别人的框架,首先先想想你要什么样的功能,对方应该要提供给你什么功能,这个方法会叫什么样的名字,多YY,这样你会很惊喜的发现,它们确实有这样的方法。如果没有,自己加,或者换个思路。这样YY多了,你也会在写代码的时候想提供什么样的方法给外部。这样良性循环,写代码就真的是很容易的事情了。

当你成为team里的核心人员,如何去把控整个项目,梳理逻辑和框架,就需要平时多YY,多画流程图,多站在非技术的角度看整个项目,很难说有需求是无法实现的,也不能因为需求频繁改动而去抗拒。所以多想想在技术之外你还能为这个项目贡献什么。idea,沟通,协作。这样你在team扮演的角色越来越重要。升职,转行,随你。

最近没啥技术可以分享的,只能写写心得,仅供参考,可以交流,但真正问我什么问题怎么解决,我可能回答不了。术业有专攻,不是所有我都能解答,也不是所有都非得问他人才能有答案。

个人Android开发习惯[转载]的更多相关文章

  1. Android学习总结(1)——好的 Android 开发习惯

    Android编码规范 java代码中不出现中文,最多注释中可以出现中文: 局部变量命名.静态成员变量命名:只能包含字母,单词首字母出第一个都为大写,其他字母都为小写: 常量命名:只能包含字母和 ,字 ...

  2. Myeclipse8.6配置android_SDK,进行android开发(转载)

    Myeclipse8.6下部署环境,总结一下个人Android环境配置的过程(首先不要急着启动Myeclipse) 1.下载SDK:http://developer.android.com/sdk/i ...

  3. 摘录知乎上关于android开发的话题精华

    1.初学者学习 Android 开发,有什么好网站推荐? http://www.zhihu.com/question/19611325 2.Android 开发有哪些新技术出现? http://www ...

  4. 58. Android一些开发习惯总结

    作者:漫步 链接:https://www.zhihu.com/question/27227425/answer/35973793 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  5. 50个Android开发人员必备UI效果源码[转载]

    50个Android开发人员必备UI效果源码[转载] http://blog.csdn.net/qq1059458376/article/details/8145497 Android 仿微信之主页面 ...

  6. [转载]Android开发必备的21个免费资源和工具

    转载自: http://blog.csdn.net/shimiso/article/details/6788375 Android移动开发平台现在不是一个“火”字能形容的,今年Android平台在市场 ...

  7. Android开发教程之【环境搭建及HelloWorld】(转载)

    引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教. 在开始A ...

  8. 用python开发android应用 【转载】

    用python开发android应用 [转载] 转载自:http://www.miui.com/thread-995114-1-1.html Python是动态语言,比较简洁.Android不直接支持 ...

  9. (转载) Android开发mac /dev/kvm is not found

    Android开发mac /dev/kvm is not found 标签: KVMAndroid开发KVM is not found芒果Android芒果iOS 2016-10-29 16:31 2 ...

随机推荐

  1. ANT配合FIS执行前端打包任务

    <target name="help"> <exec executable="cmd"> <arg value="/c& ...

  2. Extjs4.x (MVC)Controller中refs以及Ext.ComponentQuery解析

    refs : Object[]5 Array of configs to build up references to views on page. For example: Ext.define(& ...

  3. 提高Java代码质量的Eclipse插件之Checkstyle的使用具体解释

    CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发者遵守某些编码规范的工具.它可以自己主动化代码规范检查过程.从而使得开发者从这项重要可是枯燥的任务中解脱出来. Ch ...

  4. Shell数组遍历

    #!/bin/bash emp_info=( aaa aaa@qq.com bbb bbb@qq.com ccc ccc@qq.com ddd ddd@qq.com eee eee@qq.com ) ...

  5. Scrapy 导出的 cvs 文件,双击打开乱码问题

    默认可能是utf8格式,在excel的不要直接打开,而是在excel - 数据 -导入里打开,或者打开前用vscode之类的保存为GBK编码

  6. 从PCD文件写入和读取点云数据

    (1)学习向PCD文件写入点云数据 建立工程文件ch2,然后新建write_pcd.cpp  CMakeLists.txt两个文件 write_pcd.cpp : #include <iostr ...

  7. git 通过nginx 无法clone

    git服务器架设在内网,通过nginx做反向代理后如果公网质量差的话部分项目无法clone,报错: error: RPC failed; result=18, HTTP code = 200B | 3 ...

  8. 14款优秀的JavaScript调试工具大盘点

    JavaScript是一种非常简单的语言,一般说来任何人都可以在几小时内掌握它的基本知识. 然而就像其他任何语言一样,JavaScript存在着一些可以轻易避免的常见错误和不好的做法.开发人员喜欢使用 ...

  9. JNDI是什么?

    JNDI,全称 Java Naming and Directory Interface. 以数据库的配置为例,简单的说,就是将对数据库的连接设置(driverClass.URL.user.passwo ...

  10. (实用)使用unetbootin制作Linux的U盘启动盘

    本文介绍在Ubuntu(基于Debian的操作相同)使用unetbootin将Linux操作系统的安装镜像烧录到U盘中,使得U盘成为安装介质.当然,windows系统下也同样可以使用该软件的相应版本. ...