第一章Android
2003年10月,Andy Ruby等人创办了Android公司。2005年8月谷歌收购。
1.1 Android全貌
1.1.1 Android系统架构
1.Linux内核层:为Android设备的各种硬件提供底层驱动。如:显示驱动,音频驱动,蓝牙驱动,WiFi驱动,电源管理。
2.系统运行库层:c/c++库为Android层提供了主要的特性支持。如SQLite库提供数据库的支持,OpenGL|ES库提供了3D绘图支持,Webkit库提供了浏览器内核的支持。
Android运行时库,主要提供了一些核心库,还包含了Dalvik虚拟机(5.0后改为ART运行环境)。
3.应用框架层:主要提供了构建应用程序时可能用到的各种API。
4.应用层:所有安装在手机上的应用程序都是属于这一层的。
1.1.2 Android已发布版本(百科)
用甜点作为它们系统版本的代号的命名方法。
-
Android milestone builds (with Astro Boy and Bender floating around in here somewhere)
-
Android 1.0(没有开发代号)
-
Android 1.1 - Petit Four
-
Android 1.5 - Cupcake
-
Android 1.6 - Donut
-
Android 2.0/2.1 - Éclair
-
Android 2.2 - Froyo
-
Android 2.3 - Gingerbread
-
Android 3.0/3.1/3.2 - Honeycomb
-
Android 4.0 - Ice Cream Sandwich
-
Android 4.1/4.2/4.3 - Jelly Bean
-
Android 4.4 - KitKat
-
Android 5.0/5.1 - Lollipop(Android L)
-
Android 6.0 - Marshmallow(Android M)
-
Android 7.0 -Nougat(Android N)
-
Android 8.0 -Oreo(Android O)
-
Android 9.0 -Pie (Android P)
API等级
API等级1:Android 1.0
API等级2:Android 1.1 Petit Four
API等级3:Android 1.5 Cupcake
API等级4:Android 1.6 Donut
API等级5:Android 2.0 Éclair
API等级6:Android 2.0.1 Éclair
API等级7:Android 2.1 Éclair
API等级8:Android 2.2 - 2.2.3 Froyo
API等级9:Android 2.3 - 2.3.2 Gingerbread
API等级10:Android 2.3.3-2.3.7 Gingerbread
API等级11:Android 3.0 Honeycomb
API等级12:Android 3.1 Honeycomb
API等级13:Android 3.2 Honeycomb
API等级14:Android 4.0 - 4.0.2 Ice Cream Sandwich
API等级15:Android 4.0.3 - 4.0.4 Ice Cream Sandwich
API等级16:Android 4.1 Jelly Bean
API等级17:Android 4.2 Jelly Bean
API等级18:Android 4.3 Jelly Bean
API等级19:Android 4.4 KitKat
API等级20:Android 4.4W
API等级21:Android 5.0 Lollipop
API等级22:Android 5.1 Lollipop
API等级23:Android 6.0 Marshmallow
API等级24:Android 7.0 Nougat
API等级25:Android 7.1 Nougat
API等级26:Android 8.0 Oreo
API等级27:Android 8.1 Oreo
API等级28:Android 9.0 Pie
1.1.3 Android应用开发特色
1.四大组件:活动(Activity),服务(Service),广播接收器(Broadcast Receiver),内容提供器(Content Provider)。
2.丰富的控件系统
3.SQLite数据库
4.地理位置定位
1.2 开发环境
1.2.1 工具
JDK; Android SDK; Android Studio
1.3 第一个Android项目
HelloWorldActivity
1.3.4分析程序
1.没有在AndroidMainfest.xml中注册的活动是不能使用的
其中
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
表示HelloWorldActivity是这个项目的主活动,在手机上点击应用图标,首先启动该活动。
2.HelloWorldActivity继承AppCompatActivity(AppCompatActivity是Activity的子类)。onCreate()方法是一个活动被创建是必定要执行的方法。
setContentView()方法给当前活动引入一个hello_world_layout布局。
hello_world_layout.xml文件
1.4 日志工具
Android中的日志工具类是log(android.util.Log)。
五个方法来提供打印日志。
1. Log.v(): 打印那些最为琐碎的,意义最小的日志信息。对应级别verbose,级别最低
2. Log.d(): 打印一些调试信息。对应级别debug,比verbose高一级
3. Log.i(): 打印一些比较重要的数据。对应级别info,比debug高一级。
4. Log.w(): 打印一些警告信息。对应级别warn,比info高一级。
5. Log.e(): 打印程序中的错误信息。对应级别error,比warn高一级
Eg:
Log.d()方法中传入两个参数,第一个为tag,一般传入当前类名,主要用于对打印信息过滤;第二个为msg,即想要打印的具体内容。
使用Log而不使用System.out:
日志打印不可控制、打印时间无法确定、不能添加过滤器、日志没有级别区分……