1)Android 是基于java语言进行开发的
2)|Android是开源的,是基于Linux的移动设别的操作系统(现:Linux3.6版本)。
API级别:Android开发的 不同的版本的API,分别可能增加不同的功能的API。
环境的需求:
1)jdk的安装
2)eclipse、Android studio的开发工具的安装。
Android架构:
Android操作系统是一个 软件组件的栈,(可以理解为:通过上一层的调用到底层然后再返回上层,所以是一个栈的关系在组件之间)
Linux内核(linux kernel):
提供了基本的系统功能,比如:进程管理,内存管理,设备管理(摄像头,键盘,显示器)
内核处理:eg:网络和大量的设备驱动,从而避免大量外围硬件接口带来的不便。
程序库(libraries):
包括开源的的web浏览器的Webkit引擎,知名的libc库。用于存储和共享数据的sqlite数据库,用于播放、录制音频的库,用于网络安全的ssl库等。
Android程序库(librarises):
包括就是基于java语言开发的程序库(针对于Android的开发而开发的),
包括:用户界面构建、图形绘制和数据库的访问。
android.app - 提供应用程序模型的访问,是所有 Android 应用程序的基石。
android.content - 方便应用程序之间,应用程序组件之间的内容访问,发布,消息传递。
android.database - 用于访问内容提供者发布的数据,包含 SQLite 数据库管理类。
android.opengl - OpenGL ES 3D 图片渲染 API 的 Java 接口。
android.os - 提供应用程序访问标注操作系统服务的能力,包括消息,系统服务和进程间通信。
android.text - 在设备显示上渲染和操作文本。
android.view - 应用程序用户界面的基础构建块。
android.widget - 丰富的预置用户界面组件集合,包括按钮,标签,列表,布局管理,单选按钮等。
android.webkit - 一系列类的集合,允许为应用程序提供内建的 Web 浏览能力。
Android运行时(Runtime):
1)Dalvik虚拟机的关键组件,,类似于java虚拟机,但是专为Android设计和优化。
Dalvik 虚拟机使得可以在 Java 中使用 Linux 核心功能,如内存管理和多线程。Dalvik 虚拟机使得每一个 Android 应用程序运行在自己独立的虚拟机进程。
【基于linux的虚拟机,程序的独立进程】
2)Android 运行时同时提供一系列核心的库来为 Android 应用程序开发者使用标准的 Java 语言来编写 Android 应用程序。
应用框架(application framework):
应用框架层以 Java 类的形式为应用程序提供许多高级的服务。(也即是暴露java
的api接口)
活动管理者 - 控制应用程序生命周期和活动栈的所有方面。
内容提供者 - 允许应用程序之间发布和分享数据。
资源管理器 - 提供对非代码嵌入资源的访问,如字符串,颜色设置和用户界面布局。
通知管理器 - 允许应用程序显示对话框或者通知给用户。
视图系统 - 一个可扩展的视图集合,用于创建应用程序用户界面。
应用程序(application):
也就是应用程序层(包括:系统自带的和自己开发的)
Android 应用程序组件
Android的组件构成了android的应用,同时也就基本上决定了开发的基本框架以及开发模式。
Activities:
就是一个activity标示一个用户的单一屏幕。
eg:一个邮件应用程序可以包含一个活动用于显示新邮件列表,另一个活动用来编写邮件,再一个活动来阅读邮件。当应用程序拥有多余一个活动,其中的一个会被标记为当应用程序启动的时候显示。
public class MainActivity extends Activity {}
Services:
服务是运行在后台,执行长时间操作的组件。
eg:服务可以是用户在使用不同的程序时在后台播放音乐,或者在活动中通过网络获取数据但不阻塞用户交互。
public class MyService extends Service {}
Broadcast Receivers:
广播接收器简单地响应从其他应用程序或者系统发来的广播消息。
(这里应该是一些广播消息,或者是系统推荐等等内容)
public class MyReceiver extends BroadcastReceiver {}
Content Providers:
内容提供者组件通过请求从一个应用程序到另一个应用程序提供数据。这些请求由ContentResolver类的方法来处理。这些数据可以是存储在文件系统、数据库或者其他其他地方。
public class MyContentProvider extends ContentProvider {}
接下来:需要的应该就是实战了。
&&&&
原来Android的屏幕的适配是通过meta 和Viewport两个属性来进行设置匹配
(页面上的配置基本上是经过ViewPort,不管是Android还是iOS)