第一行代码学习笔记1——Android简介
来源:互联网 发布:dnf趣味数据查询2017 编辑:程序博客网 时间:2024/05/20 17:24
一 ,Android系统架构:
1.1 Linux内核层
这一层为Android的设备的各种硬件提供了底层的驱动,如显示驱动,音频驱动等。
2.1 系统运行库层
这一层通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库为Android提供数据库的支持,OpenGL|ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持。
同时,在这一层提供了Android运行时库,它主要提供了一些核心库,能够允许开发人员使用java开发Android应用。另外,Android运行时库还包含了Dalvik虚拟机,它使得每个Android应用都能运行在独立的进程中,并且拥有自己的虚拟机实例。相较于java虚拟机,Dalvik是专门为移动设备设备定制的,他针对手机内存,CPU性能有限等情况做了优化处理。
3.1应用程序框架层
这一层主要提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者可以通过使用这些API来构建自己的应用程序。
4.1应用层
所有安装在手机上的应用程序都是属于这一层的,比如系统自带的联系人,短信等程序,或者从应用市场下的应用,以及自己开发的应用程序。
下面是架构图:
二,Android应用开发特色
开发之前先了解一下,Android系统提供了哪些东西,供我们开应用程序。
1. 四大组件
Android系统四大组件分布是活动(Activity)、服务(Service)、广播接收者(Broadcast)、内容提供者(Content Provider)。其中活动是所有Android应用程序的门面,凡是在应用程序中看得到的东西,都是放在活动中的。也就是说活动是提供了应用程序的界面。而服务就比较低调了,服务没有界面,它会一直在后天默默运行,即使你退出了应用,服务仍然是可以运行的。广播接收者可以允许你的应用接收来自各处的广播消息,比如电话、短信等,当然你的应用程序也可以向外部发出广播消息。内容提供者则为应用程序之间的共享数据提供了可能,比如你想读取系统电话簿中的联系人,就需要通过内容提供者来实现。
2. 丰富的系统控件
Android系统为开发者提供了丰富的系统控件,使得我们可以很轻松的编写漂亮的界面。当然如果觉得系统自带的控件效果难以满足你的需要,也完全可以自行定制自己的控件。
3.SQLite数据库
Android系统还自带了这种轻量级、运算速度快的嵌入式关系型数据库。它不仅支持标准的SQL语法,还可以通过Android封装好的API进行操作,让存储和读取数据变得非常方便。
4.地理位置定位
移动设备和PC相比起来,地理位置的定位算是一个亮点。现在的Android手机都内置GPS,可以很方便的定位自己的位置。
5.强大的多媒体
Android系统提供了丰富的多媒体服务,如音乐、视频、录音、拍照、闹钟等,这些都可以通过代码来控制,让应用更加丰富多彩。
6.传感器
Android手机都会内置多种传感器,如加速度传感器、方向传感器、压力传感器、光线传感器等,这也是移动设备的一大特点。通过灵活使用这些传感器可以做出很多PC上无法实现的应用。
- 第一行代码学习笔记1——Android简介
- 《第一行代码 Android》学习笔记1
- Android-第一行代码学习笔记——activity
- ListView的用法 - 第一行代码—android学习笔记
- Android学习笔记—第一行代码第二章
- Android第一行代码学习笔记总结
- 《Android第一行代码》学习笔记
- 《Android第一行代码》学习笔记
- FrameLayout《第一行代码Android》学习笔记
- Android第一行代码学习笔记
- Android学习笔记_《第一行代码》
- 《第一行代码》Android 学习笔记
- 《第一行代码》笔记——第1章 开始启程—你的第一行Android代码
- 第一行代码学习笔记-第一章 开始启程-1.android简介
- Android--第一行代码笔记(1)
- Android第一行代码笔记<1>
- 数据存储之文件存储——第一行代码Android学习笔记
- 数据存储之SharedPreferences存储——第一行代码Android学习笔记
- C++基础
- Oracle PL/SQL之LOOP循环控制语句
- 分享一个Markdown pad2 pro的授权key
- Poj 3061 Subsequence【尺取法】
- sort()/qsort()函数的用法及cmp比较函数的写法
- 第一行代码学习笔记1——Android简介
- different-ways-to-add-parentheses
- 关于ADT与SDK
- 玩转AI(Adobe illustrator)——小西瓜(2)
- 指针常量与常量指针
- stormzhang Android 学习之路
- struts2配置文件struts.xml详解
- 《leetCode》:Number of 1 Bits
- nginx(二)