Android - 学习笔记(一)

Android 应用开发

1.1 什么是Andorid

Android 是一个开源软件栈,它包括一个操作系统,中间件,以及面对移动和嵌入式设备的关键应用。
更重要的是,它提供了一组非常丰富的API库,使用这些API库,我们可以对那些运行在Android的设备上的应用,进行视觉、感官和功能的构建。
在Android中,无论是系统、内嵌应用还是所有的第三方应用,都使用相同的API编写,并在相同的运行时上执行。这些API支持硬件访问、视频录制、基于定位的服务、后台服务、地图、通知、传感器、关系型数据库、应用间通信、蓝牙、NFC以及2D和3D的图形功能等。

1.2 Android的生态

Android 生态系统主要是由以下的三部分组成:

  • 一个用于嵌入式设备的免费开源操作系统
  • 一个用于创建应用的开放式平台
  • 运行Android系统的设备(以及其创建的应用)

更确切的说,Android由一下的几个必要的部分组成

  • 一份兼容性定义文档(Compatibility、Definition Document,CDD)和兼容性测试套件(Compatibility Test Suite,CTS)描述了设备支持Android软件栈所需的功能。
  • 一个Linux操作系统内核,提供了硬件、内存管理、进程控制以及所有移动设备和嵌入式设备优化的底层接口。
  • 一系列用于应用开发的开源库,包括SQLite,WebKit,OpenGL 和一个多媒体管理器。
  • 一个用于执行和托管Android应用的运行时环境,包括Android运行时(ART)和提供Android特定功能的核心库。环境小巧且搞高效,方便应用于嵌入式设备。
  • 一种应用框架,它向应用层提供系统服务接口,其中包括窗口管理器,位置管理器,数据库,电话和传感器。
  • 一个用户页面框架,用于托管和启动应用。
  • 一组核心的预安装应用
  • 一套用于创建应用软件的软件开发工具包(SDK),包括了集成开发环境(IDE)、示例代码、文档和相关工具。

真正让Android引人注目的是其开放的理念,他确保你可以通过编写扩展或替代方案来修复用户界面和手机应用的任何缺陷,作为开发人员Android为你提供了构建外观、感官以及功能都符合想象应用的机会。
Android 设备上每个月的活跃用户超过20亿,16年GooglePlay安装的应用就超过了820亿。

1.3 预安装应用

  • 电话拨号器
  • SMS管理应用
  • Web浏览器
  • 电子邮件客户端
  • 日历
  • 通讯录
  • 音乐播放器和相册
  • 相机和视频录制应用
  • 计算器
  • 主屏启动软件
  • 闹钟
  • 个别设备安装:
    • Google Play
    • 谷歌地图
    • Gmail邮箱
    • YouTube
    • Chrome
    • 谷歌助手和桌面启动器

1.4 Android SDK 特性

  • 通过GSM、EDGE、3G、4G、LTE和WiFi网络支持透明的访问电话和互联网资源,使应用能够通过移动网络和WiFi来收发数据。
  • 提供了像GPS和网络定位这样基于位置服务的API
  • 完全支持在用户界面中集成地图控件
  • 支持完整的多媒体硬件控制,包括录音,录像及音视频回放
  • 用于播放和录制各种音视频或定格图像格式的媒体库
  • 用于调用传感器硬件的API,包括加速度计、罗盘、气压计和指纹传感器
  • 用于调用Wifi、蓝牙、NFC等硬件的API
  • 用于联系人、日历和多媒体的共享数据存储和API
  • 后台服务与高级通知系统
  • 一个继集成的Web浏览器
  • 为移动设备进行优化的图形硬件加速,其中包括一个基于路径的2D图形库以及对使用的OpenGL ES 2.0的3D图形的支持
  • 通过动态资源框架进行本地化

1.5 Android开发框架介绍

每个Android应用都运行在一个单独的进程,并将所有的内存和进程管理的责任都交给了ART,ART会根据需要暂停和终止进程,从而实现对资源的管理。
ART位于处理底层硬件交互(包括驱动程序和内存管理)的Linux内核上,而对所有底层服务、特性和硬件的访问都通过一组API来提供。

1.5.1 Android的SDK都包括什么

Android包含了开发、测试、调试一个Android应用会用到的所有工具。

  • Android API库 — AndroidSDK的核心就是API库,他提供了对Android开发栈的访问接口。这些API库与谷歌创建Andorid自带引用时使用的开发库是一样的。
  • 开发工具 — AndroidSDK 包含了 AndroidStudio IDE 和其他的一些开发工具,使开发人员可以编译和调试应用,将应用的源代码编译成可执行的应用。
  • Android虚拟设备管理器和模拟器 — 是一个完全交互式的手机模拟器,并且提供了多种可选的外观,模拟器运行在模拟硬件设备配置的Android虚拟设备(AVD)中。
    • 使用模拟器可以提前看到应用运行在真正的Android设备上的外观和交互方式,由于所有的Android应用都运行在ART中,因此模拟器成为了一个非常优秀的开发环境,毕竟他与硬件无关,并且提供了比任何单一硬件都要好的测试环境。
  • 完整的文档 — AndroidSDK包含了大量的代码层注释参考信息,详细描述了每个包和每个类中包含的内容以及如何使用它。除了代码文档,Android的参考文档和开发人员指南还解释了如何入门,详细解释了Android开发背后的基础知识,重点介绍了最佳实践。并深入了解了框架的主体。
  • 示例代码 — AndroidSDK包括一些应用示例,这些应用演示了Android的一些可用功能,并重点介绍了一些如何使用各种API特性的简单示例项目。
  • 在线支持 — Android在大多数社交网络,Slack和许多开发人员论坛上都有非常活跃的开发人员社区。Stack Overflow 和 Twitter 都是 初学者寻找答案的好地方。

1.5.2 Android 软件堆层

这是Android系统纵向分层,通过 Application Framework 向运行环境和应用提供服务和管理的接口。
在这里插入图片描述

  • Linux内核 — 核心服务(包括硬件驱动、进程内存管理、安全、网络和电源管理)由Linux内核提供
  • 硬件抽象层(HAL)— HAL系统在底层物理设备和Android软件堆层的其余部分之间提供了一个硬件抽象层
  • 本地方法库 — 本地方法库运行在内核和HAL之上,Android包括各种C/C++核心库,如libc和SSL
    • 用于播放音视频的媒体库
    • 提供显示管理的界面管理工具
    • 包含用于2D和3D图形的SGL和OpenGL的图形库
    • 用于本机数据库支持的SQLite
    • 用于集成Web浏览器和Internet安全的SSL和WebKit
  • Android运行时 — Android运行时使得Android手机成为智能手机而不是一台移动的Linux实现设备。其内部包含了核心库,为应用提供了支持的引擎以及构建框架的基础。
  • 核心库 — 虽然大多数Android应用开发都是使用Java和Kotlin等JVM语言来编写的,但是ART不是JVM。核心库提供了Java核心库和Android特定库中的大部分功能
  • 应用框架 — 所有应用,无论是系统自带的还是第三方的,都是通过应用层提供的无安全相同的API构建而成的。应用层则通过使用应用框架提供的类和服务,最终在Android运行时中运行。

1.5.3 Android 运行时

Android 没有 Java 传统的 JVM,而是使用自主设计的运行时,以确保可以在一台设备上同时高效的运行多个应用实例。
ART使用设备底层的Linux内核来处理底层功能,包括安全、线程、进程和内存管理。
如果应用需要C/C++语音的执行效率和速度,Android提供了一套本地的开发工具包NDK。
ART作为中间层,对所有Android硬件和系统服务的访问进行了统一管理。开发人员可以通过ART来托管应用的执行,并且会拥有一个抽象层,以确保他们不用担心特定的硬件实现。
ART执行的是Dalvik,是以早期虚拟机的实现Dalvik来命名的。是一种进行了内存优化的最小占用格式。通过使用SDK提供的工具转换Java或Kotlin语音的编译文件,可以创建出.dex可执行文件

1.5.4 Android库

Android 在线文档

  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值