笔者前言
最近在读郭霖大神的第二行代码,借助第二行代码,在这里我认真梳理Android知识,为了形成自己的知识体系。坚持写一系列关于第二行代码的学习笔记,一是来提升自己的学习能力,坚持每天学习; 二是给自己整理一份资料,方便以后的查阅与复习。希望能够帮助到更多的小伙伴们:
Android系统是目前世界上市场占有率最高的移动操作系统。
1.1 了解全貌——Android王国简介
Google为Android王国建立了一个完整的生态系统。
1.1.1 Android系统架构
Android系统架构分为四层:
(1) Linux内核层:
Android系统基于Linux内核。 为Android硬件提供底层驱动,例如显示驱动,音频驱动,照相机驱动,蓝牙驱动,Wi-Fi驱动,电源管理等。
(2)系统运行库层:
通过C/C++库为Android系统提供特性支持,如:SQLite库提供数据库支持,Webkit库提供浏览器内核支持。
该层还有Android运行时库,提供核心库,允许用Java语言开发Android应用。Android运行时库还包含Dalvik虚拟机(5.0后是ART运行环境)。
(3)应用框架层:
提供应用程序的各种API。
(4)应用层:
手机中所有的应用程序属于应用层。
1.1.2 Android已发布的版本、
Android至今为止已经发布到7.1版本——API版本为25。
通常开发最低版本为4.0——API为15。
查看最新数据请访问:http://developer.android.com/about/dashboards/。
1.1.3 Android应用开发特色
(1) 四大组件
Activity(活动)
Service(服务)
BroadCast Receiver(广播接收者)
Content Provider(内容提供者
(2)丰富的系统控件
编写漂亮界面。
定制自己的组件。
(3)SQLite数据库
轻量级,运算速度极快的嵌入式关系型数据库。支持SQL语法。
4)强大的多媒体
音乐,视频,照相,录音,闹铃等。
(5)地理位置定位
Android手机内置GPS,随时随地发现自己的位置。
1.2 手把手带你搭建开发环境
“工欲善其事,必先利其器”
1.2.1 准备所需要的工具
- JDK1.8以上:Java语言的软件开发工具包(包含Java的运行环境,工具集合,基础类库等内容)
- Android SDK:Android开发工具包
- Android Studio:Android编译器
1.2.2 搭建开发环境
下载Android Studio:
https://developer.android.google.cn/studio/index.html
下载下来是一个安装包,一直点Next就可以了,选择Android组件全部建议勾上。
1.3 搭建你的第一个Android项目
HelloWorld——永恒的经典。
1.3.1 创建HelloWorld项目
点击Start a new Android Studio Project打开创建项目界面:
1.3.2 启动模拟器
第三方模拟器——Genymotion模拟器。号称史上最快的模拟器可不是吹的。
访问官网下载地址:https://www.genymotion.com/download/
安装好了之后,启动并登录Genymotion。
我已经下载好了几个不同版本模拟器,大家无视即可,点击上方的”Add”按钮。
下载好之后,点击上方的”Start”按钮,启动模拟器。
这样我们的模拟器已经启动起来了。
开发建议用真机,毕竟模拟器再快,也不如真机用的舒心。
1.3.3 运行HelloWorld
运行HelloWorld到模拟器上。
点击三角形按钮,弹出对话框。
HelloWorld运行成功:
接下类我们来分析下HelloWorld这个项目吧。
1.3.4 分析你的第一个Android程序
展开HelloWorld项目。
可以切换项目模式。
切换成Project,真是的目录结构
分析结构:
- .gradle和.idea
Android Studio自动生成的文件。 - app
项目中的代码,资源几乎都在放app目录下。 - build
项目编译时自动生成的文件 - gradle
包含gradle wrapper的配置文件 ,使用gradle wrapper不需要提前将gradle下好,Android Studio会自动根据缓存情况决定是否需要联网下载。默认不启用gradle wrapper,可以通过File ——> Setting ——> Build , Execution , Deployment ——>Gradle进行配置更改,打开gradle wrapper。 - .gitignore
指定的目录或文件排除在版本之外 - build.gradle
项目全局的gradle构建脚本 - gradle.properties
全局的gradle配置文件,这里配置的属性影响项目中所有的gradle编译脚本 - gradlew和gradlew.bat
命令行界面执行gradle命令 ,gradlew Linux或Mac系统中使用 ,gradlew.bat Windows系统中使用 。 - HelloWorld.iml
所有IntelliJ IDEA项目中都会自动生成的文件,用来标识这是一个IntelliJ.IDEA项目。 - local.properties
指定本机中SDK路径,通常自动生成 。 - setting.gradle
指定项目中所有引入的模块。
app目录的结构:
分析app目录结构:
- build
编译时自动生成的文件。 - libs
放置第三方jar包 - androidTest
编写Android Test测试用例,项目自动化测试 - java
放置所有Java代码 - res
项目资源目录 - AndroidManifest.xml
Android项目配置文件 - test
编写Unit Test测试用例,项目自动化测试 - .gitignore
控制版本忽略文件 - app.iml
IntellJ IDEA自动生成的文件 - build.gradle
app模块的gradle构建脚本 - proguard-rules.pro
指定项目代码的混淆规则
1.3.5 详解项目中的资源
drawable 存放图片
mipmap 存放应用图标
value 存放字符串,样式,颜色等配置
layout 存放布局文件
1.3.6 详解build.gradle文件
Android Studio是采用Gradle构建项目的。
最外层build.gradle文件:
app目录下的build.gradle文件:
1.4 前行必备——掌握日志工具的使用
1.4.1 使用Android的日志工具Log
Android中日志工具类:Log(android.util.log)提供了5个方法来打印日志:
- Log.v()。最小的日志。——verbose。
- Log.d()。调试信息。 ——debug,比verbose高一级。
- Log.i()。比较重要的信息。——info,比debug高一级。
- Log.w()。警告信息。——warm,比info高一级。
- Log.e()。错误信息。——error,比warm高一级。
1.4.2 为什么使用Log而不使用System.out
Log:可控制打印信息,确定打印时间,能添加过滤器,日志有级别区分……
而System.out满足不了。
1.5 小结与评论
搭建了第一个Android项目,并且对Android项目的目录结构和执行过程有一定的了解。以及日志的使用。
快速生成Log方法:log* 按Tab建。
运行程序的快捷键:Shift+F10(MAC control+R)。