android系统架构
Linux内核层
为android提供了各种底层的驱动,如显示驱动,音频驱动,照相机驱动,蓝牙驱动,Wi-Fi驱动,电源管理等。系统运行库
通过一些c/c++库,为android系统提供主要特性支持。如SQLite提供数据库支持,OpenGL/ES提供3d绘图,webkit提供浏览器内核的支持。 <br /> 提供一些核心库,允许开发者使用java来编写android应用;还包含Dalvik虚拟机,让每一个android应用运行在独立的进程中。应用框架层
构建应用程序是可能用到的各种API,android开发者可以使用这些API构建自己的应用程序。应用层
安装在手机上的应用程序属于这一层。
android应用开发特色
- 四大组件 activity , services , broadcast receiver , content provider
- 丰富的系统组件
- SQLite数据库
- 强大的多媒体 如音乐,视频,拍照,录音,闹铃等
- 地理位置定位
开发环境搭建
- jdk 是java语言的软件开发工具包
- android sdk Google提供的android开发工具包,使用android相关的API
- android studio
建工程-分析android程序项目包的结构
build.gradle文件的理解
最外层build.gradle文件:
jcenter() :代码托管仓库,android很多开源项目会选择将代码托管到 jcenter上,声明该配置,可以轻松引用各种 jcenter上的开源项目。
classpath 'com.android.tools.build:gradle:2.1.3' :gradle并不是为android开发的,java,c++等项目也可以用gradle来构建,故需要声明这个插件。app目录下的build.gradle理解:
minifyEnabled false :true 混淆,false不混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' : 混淆的规则文件,proguard-android.txt是android sdk目录下的所有项目通用混淆规则; proguard-rules.pro,当前项目根目录下,编写特有的混淆规则。