浅谈安卓和Java

之前一段时间,看了很多关于Java的资料,什么《代码整洁之道》,什么《Java Concurrency In Practice》,然后还有各种设计模式。那时候我想:要是我java学的6,是不是安卓就是小case了?
一直到打算看JVM,才如梦终醒:安卓用的是Dalvik 和ART啊,压根不是JVM,连底层都不一样,那些J2EE的东西能套用吗?
答案自然是不能。
且不说java只是安卓的一部分,就算只看安卓里的java,和J2EE的环境的java也不一样:

  • 对内存敏感;
  • 对依赖敏感;
  • 轻量化。有些小App可能并不需要什么设计模式和各种基类以及接口,也不需要太高端的架构。当然,如果想要做比较大型的App,这些还是必要的,可维护性和可扩展性会强很多。

举个例子,J2EE里面使用enum毫无顾虑,因为可以使得代码更具可读性;但是安卓要三思后行,因为enum会增加apk大小。很多J2EE可以不在乎的东西,安卓需要考虑,因为是在手机上运行。
当然,也不是说要为了性能放弃可读性。就算App用机器码写好,速度飞快,然而没人看的懂也是白搭。所以要考虑到一个度,或者说平衡。
比如代码拆得细,符合SRP,但是调用是花时间的,可能效率就不如不拆。
总而言之,不能生搬硬套地把J2EE的东西用到安卓里面,安卓有自己的java生态。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,455评论 25 708
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 2,031评论 0 3
  • 去年开始接触正面管教,将近一年时间,认识上始终停留在一些简单的符号层面。直到不久前阅读到这本书,一下子和书中的思...
    宗澤Johnny阅读 540评论 0 0
  • 梧桐床 白色的床身被时光染黄,如少女的晶莹逐渐褪去,日子在它的怀里舒坦的成长,渐渐丰盈饱满,有了沧桑的味道,恍若梦...
    珒若风阅读 897评论 19 28