了解Android
Android大致可以分为4层架构:Linux内核层、系统运行库层、应用框架层和应用层。
- 内核层:Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。
- 系统运行库层:提供一些特性支持,如数据库支持,OpenGL ES提供3D绘图支持,webkit库提供浏览器内核支持。在这一层还有Android运行时库,它主要提供了一些核心库,允许开发者使用Java语言来编写Android应用。另外,Android运行时库中还包含了Dalvik虚拟机(5.0系统之后改为ART运行环境),它使得每一个Android应用都能运行在独立的进程中,并且拥有一个自己的虚拟机实例。相较于Java虚拟机,Dalvik和ART都是专门为移动设备定制的,它针对手机内存、CPU性能有限等情况做了优化处理。
- 应用框架层这一层主要提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者可以使用这些API来构建自己的应用程序。
- 应用层:用户安装的所有应用
版本发布:08年Google发布1.0,14年发布5.0,目前一年一个新版本,已经发布到Android 14。
四大组件
Android系统四大组件分别是Activity、Service、BroadcastReceiver和ContentProvider。
- Activity负责管理用户与应用界面的交互。Activity类是Android系统提供的一个基类,我们项目中所有自定义的Activity都必须继承它或者它的子类才能拥有Activity的特性。该类有个onCreate()方法,这个方法是一个Activity被创建时必定要执行的方法。
- BroadcastReceiver允许你的应用接收来自各处的广播消息,比如电话、短信等,当然,你的应用也可以向外发出广播消息。
- ContentProvider则为应用程序之间共享数据提供了可能,比如你想要读取系统通讯录中的联系人,就需要通过ContentProvider来实现。
安卓的应用对象分为模型、视图和控制器三类。Android应用基于模型-视图-控制器(Model-View-Controller,MVC)的架构模式进行设计。MVC设计模式表明,应用的任何对象,归根结底都属于模型对象、视图对象以及控制器对象中的一种。
模型对象存储着应用的数据和“业务逻辑”。模型类通常用来映射与应用相关的一些事物,比如用户、商店里的商品、服务器上的图片或者一段电视节目
视图对象知道如何在屏幕上绘制自己,以及如何响应用户的输入,比如触摸动作等。一条简单的经验法则是,只要能够在屏幕上看见的对象,就是视图对象。Android自带很多可配置的视图类例如Button等。当然,你也可以定制开发其他视图类。应用的全部视图对象组成了视图层。
控制器对象含有应用的“逻辑单元”,是视图对象与模型对象的联系纽带。控制器对象响应视图对象触发的各类事件,此外还管理着模型对象与视图层间的数据流动。在Android的世界里,控制器通常是Activity或Fragment的子类
项目结构
- gradle.properties这个文件是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。
- app文件夹,项目的主要主体,也是我们主要的工作目录
- build:编译自动生成的相关中间文件
- libs:第三方jar包
- AndroidTest,安卓测试用例
- java:java代码
- res:资源目录,图片放在drawable目录下,布局放在layout下,图标文件放在mipmap文件夹下,字符串也算资源,放在value下
- AndroidManifest.xml这是整个Android项目的配置文件,你在程序中定义的所有四大组件都需要在这个文件里注册。
- proguard-rules.pro这个文件用于指定项目代码的混淆规则,当代码开发完成后打包成安装包文件,如果不希望代码被别人破解,通常会将代码进行混淆,从而让破解者难以阅读。
layout就是布局,安卓可以在代码中创建视图类,也可以使用xml定义视图layout。
辅助
- 日志类:Log: Android中的日志工具类是Log(android.util.Log)