以下内容转载自牛人博客,很多牛叉内容,请点击: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. 1.php代码块

    一.登录 <form action="index.php?m=admin&c=index&a=login&dosubmit=1" method=&qu ...

  2. PCL特征点与配准(1)

    关于输入一个具体的物体的点云,从场景中找出与该物体点云相匹配的,这种方法可以用来抓取指定的物体等等,具体的代码的解释如下,需要用到的一些基础的知识,在之前的博客中都有提及,其中用到的一些方法可以翻阅前 ...

  3. Flutter 1.0 正式版: Google 的便携 UI 工具包

    Flutter 1.0 正式版: Google 的便携 UI 工具包 文 / Tim Sneath,Google Dart & Flutter 产品组产品经理 Flutter 是 Google ...

  4. Android Studio安装Kotlin插件

    1 Kotlin语言介绍 Kotlin 是 JetBrains 在 2010 年推出的基于 JVM 的新编程语言,是一种新的静态类型编程语言.开发者称,设计它的目的是避免 Java 语言编程中的一些难 ...

  5. SDRAM 学习笔记(三)

    上图是terasic公司提供的SDRAM控制器,大部分已经封装好,我们需要修改其中部分代码,以此来实现我们自己需要的功能. 1.PLL时钟设定 首先上面的sdram_pll.v中产生上一篇博客所需要的 ...

  6. android 系统广播

    Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00012731 String ADD_SHORTCUT_ ...

  7. Pandas DataFrame 函数应用和映射

    apply Numpy 的ufuncs通用函数(元素级数组方法)也可用于操作pandas对象: 另一个常见的操作是,将函数应用到由各列或行所形成的一维数组上.Dataframe的apply方法即可实现 ...

  8. 【转】【Python】Python正则表达式使用指导

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  9. e770. 确定按钮租中已选的单选按钮

    When you ask a button group for the currently selected radio button, it returns the selected radio b ...

  10. c#中的对象生命周期

    无论是指类型的变量或是类类型的变量,其存储单元都是在栈中分配的,唯一不同的是类类型的变量实际上存储的是该类对象的指针,相当于vc6中的CType*,只是在.net平台的语言中将指针的概念屏蔽掉了.我们 ...