文章目录
序
一直想系统的总结一下Android的学习,从浅入深,循序渐进的,对自己目前做一个知识的梳理,明确自己的知识学习体系,为后续拓展体系明确方向,而不是学了新的忘记了旧的,也为以后面试复习的时候提供一个靠谱的知识库。最近,打算坚持看书,做好读书笔记,首先从最基础的郭霖的《第一行代码》开始。
一、Android系统架构
Android系统架构大致可以分为4层5块。Linux内核层,系统运行库层,应用框架层,应用层。
1,Linux内核层
Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动,音频驱动,相机驱动,蓝牙驱动,WiFi驱动等等。
2,系统运行库层
这一层通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLit库提供了数据库的支持,OpenGL|es库提供了3d绘图支持,webkit库提供了浏览器内核的支持。
这一层还有一个Android运行时库,主要提供了一些核心库,能够允许开发者使用java语言来编写Android应用。另外,Android运行时库还包含了dalvik虚拟机(5.0之后为art运行环境),它使得每一个Android应用都能够运行在独立的进程当中,并且拥有一个自己的dalvik虚拟机实例。
3,应用框架层
这一层主要提供了构建应用程序时可能用到的各种API。
4,应用层
所有安装在手机上的应用程序都属于这一层。
参考博客,https://www.jianshu.com/p/69f0d25c727a
二,Android应用开发工具组件
Android提供了那些东西可供使用,来开发出优秀的应用程序?
1,四大组件
Android系统四大组件,活动Activity,服务Service,广播接收器Broadcast Reciver,内容提供器Content Provider。其中活动是所有Android应用程序的门面,凡是在应用中看得到的东西都是放在活动中的。服务一直在后台默默运行,机试用户退出了应用,服务任然可以继续运行。广播接收器允许你的应用接收来自各处的广播消息,比如电话,短信等,当然你的应用也可以向外发出广播消息。内容提供者为应用程序之间共享数据提供了可能,如你想要读取系统电话本中的联系人,就需要通过内容提供者来实现。
2,系统控件
系统控件和自定义控件。
3,sqlite数据库
支持标准SQL语法,通过Android封装好的API进行操作,让存储和读取数据变得非常方便。
4,多媒体服务
音乐,视频,录音,拍照,闹铃等等。
5,地理定位
手机内置GPS,可以定位。
三,开发环境
话不多说,Android studio。
当前的版本号。
四,项目目录结构分析
先看一张图
默认as是这样的目录结构,但这并不是真实的项目结构,而是被as转换过的,这个结构简单明了,适合快速开发。可以切换到其他模式下查看目录,project下才是真实的目录结构。
切换到project下分析一下每个文件是什么负责功能的。
project下最外层的目录
1,.gradle和.idea
这两个目录下放置的都是as自动生成的一些文件,无需关心,不需要手动编辑。
2, app
项目的代码,资源等内容几乎都放在这个目录下,开发工作基本上都是在这个目录下进行的。稍后详细分析。
3,build
这个目