Android框架
网上资料已经一大堆了,咱们就从通俗易懂易理解的角度出发,好,开始!!!
Android原始版本是由一个小团队开发,核心库用的Linux,运行库用的C/C++,应用层和应用框架层都用的JAVA,当时为了节省成本,全部采用开源框架,所以做出来的东西当然也是开源的。后来被google收购了,现在创始人已经被撵走了。
架构是这样的
应用层-->应用框架层-->系统运行库-->Linux核心库
框架释义
应用层
首先,所有的应用都是在应用层的,也就是都用JAVA编写的,肉眼能看到的所有的程序,都在应用层。他的UI及相关控制都必须在一个叫Activity的超类上进行。
应用框架层
这一层主要是为上一层服务的,一些管理器,如Activity Manager, Window Manager,内容,通知,通信之类的应用层控件都在这一层,为应用层所需要的一切东西,至于他的东西从哪儿来的,是基于什么的,别着急,继续往下看。
运行库
这一层就是你看到的Android系统的所有应用的根基了,SqLite数据库,WebKit内核,SSL框架,OpenGL图形引擎之类的基类统统都在这里,而且它还有最重要的一个——运行时环境,也就是Dalvik虚拟机。
如果我要深度定制咋办?比如华为,小米,锤子之类的,如果你不改驱动的话,那就在这里改。
但是有个问题,这一层是用C/C++写的,一些硬件厂商要深度定制咋办?JAVA中有个叫JNI的,可以调用C/C++程序编写的动态链接库,在windows下叫dll,大多数人应该见过,在Linux下叫.so,他们都叫动态链接库。
这一层要废话一些,万能的C写出来的东西通常稳定性较好,而且反汇编难度较大,最重要的是可以到处跑,和原来的客户端保持一致性,所以一些大厂通常用C/C++封装成.so库供应用层调用,如果你要集成BAT的任何插件,你会惊奇的发现,他们都有动态库。
核心库
这里通常跟我们关系不大了,主要是硬件驱动,如果不打算做自己的手机,不用管它。
Android应用
简介
这部分是跟我们关系最大的部分了。
JAVA语法其实和JS差不多,虽然比JS多了一些数据类型,但是比起C至少要少一半以上,起码没有sign,unsign之类的需要区分,所以这就少了一半。
Android主要用的是javaSE部分,也就是基础部分,java不做过多介绍了,只需要知道javaSE是所有java的基础就行了,虽然还有很多java**,有的做服务器的,有的做移动端的,有的做web的...但跟我们都没什么关系。
在JAVA的基础上,Android添加了自己的库,而且很大,要下载Android的源码,必须在Linux环境下。
IDE
Android长期以来一直用的eclipse来作为主流开发工具,直到2013年,google发布了自己的Android IDE——Android Studio,后来发现人们不鸟他,就干脆宣布从此以后停更eclipse插件,于是Android Studio就成为唯一官方IDE。
Android Studio是基于IntelliJ内核的一款开发工具,一开始切换过来感觉也不太习惯,慢慢就发现东欧人的这款闭源工具,不仅能够严谨的指出明文错误,还会提示可能发生的运行时错误,而且还具有ST3一般的强大插件功能,所以如果你开发JAVA也推荐用IDEA。