• 01 - Android系统架构


    一、 Android系统架构

    架构图:
    在这里插入图片描述

    1.1 Linux 内核层

    • Android系统是基于Linux内核的, 这一层为Android设备的各种硬件提供了底层的驱动, 如显示驱动、蓝牙驱动、WIFI驱动、音频驱动、照相机驱动、电源管理等;

    1.2 系统运行库层

    • 这一层会通过一些C/C++库来为Android系统提供主要的特性支持。如SQLite库提供了数据库的支持, OpenGL|ES库提供了3D绘图的支持, Webkit库提供了浏览器内核的支持等;
    • 在这一层里面还有Android运行时库, Android Runtime, 它主要提供了一些核心库, 能够允许开发者使用Java语言来编写Android应用。另外, Android运行时库还包括了Dalvik虚拟机(5.0系统之后改为ART运行环境),它使得每一个Android应用都能运行在独立的进程中, 并且拥有一个自己的Dalvik虚拟机实例。相较于Java虚拟机, Dalvik是专门为移动设备定制的, 它针对手机内存、CPU性能有限等情况做了优化处理;

    1.3 应用框架层

    • 这一层主要提供了构建应用程序时可能用到的各种API, Android自带的一些核心应用就是使用这些API完成的, 开发者也可以通过使用这些API来构建自己的应用程序;

    1.4 应用层

    • 所有安装在手机上的应用程序都是属于这一层的, 比如系统自带的联系人、短信等程序, 或者是你从Google Play上下载的小游戏, 当然还有自己开发的APP

    二、 Android 应用开发特色

    2.1 四大组件

    • Android 的四大组件分别是Activity(活动)、Service(服务)、Broadcast Receiver(广播接收器)和Content Provider(内容提供器)
    • Activity是所有应用程序的门面, 在应用中可以看到的全是在活动中。
    • Service无法被看到, 会一直在后台默默的运行, 即使应用退出, 服务仍然可以继续运行, 比如下载, 就是挂到后台运行的服务;
    • Broadcast Receiver可以向外发出广播消息, 当然也可以接收来自各处的广播消息(应用本身, 或者其他应用), 比如电话,短信等等。
    • Content Provider, 则是让应用之间可以共享数据, 比如,你开发的应用需要系统电话簿中的联系, 就像抖音的根据电话联系人关联用户进行应用内关注, 这就需要通过内容提供器来实现;

    2.2 丰富的系统控件

    • Android系统为开发者提供了丰富的系统控件, 这样就可以设计编写出很漂亮的UI界面, 如果觉得系统自带的控件的效果不好, 还可以定制自己的控件。

    2.3 SQLite数据库

    • Android系统还自带了像SQLite这种轻量级, 运算速度极快的嵌入式关系型数据库。它不仅支持标准的SQL语法, 还可以通过Android封装好的API进行操作, 让存储和读取数据变得非常方便;

    2.4 强大的多媒体

    • Android系统还提供了丰富的多媒体服务, 如音乐、视频、录音、拍照、闹铃等等,这一切你都可以在程序中通过代码进行控制, 让你的应用变得更加丰富多彩;

    2.5 地理位置定位

    • 移动设备和PC相比起来, 地理位置定位功能是一个很大的特色。现在的Android手机中都内置有GPS, 走到哪里都可以定位到自己的位置, 再结合功能强大的地图功能, LBS(基于位置服务)这一领域将潜力无限。(比如, 美团外卖就可以根据定位的位置, 找到附近的店家)

    三、 准备开发所需要的工具

    • JDK : JDK 是Java语言的软件开发工具包, 它包含了Java的运行环境、工具集合、基础类库等内容。开发使用JDK 8以上的版本最好。
    • Android SDK。Android SDK是谷歌提供的Android开发工具包, 在开发Android程序时, 需要通过引入该工具包, 来使用Android相关的API;
    • Android studio : Android studio是Google推出的一款官方的IDE工具, 取代了之前的Eclipse +ADT 插件的开发;
  • 相关阅读:
    [leetCode 128] 最长连续序列
    Flink SQL: UNLOAD Statements
    Bootstrap5 教程
    lora训练之偷师
    java基于微信小程序的培训机构报名作业管理系统 uniapp 小程序
    线程的深度剖析
    Windows下解决Loading composer repositories with package information 慢的问题。
    【HTML期末学生大作业】 制作一个简单HTML宠物网页(HTML+CSS)
    第二章 SpringBoot核心运行原理
    NativeScaler()与loss_scaler【loss.backward()和 optimizer.step()】
  • 原文地址:https://blog.csdn.net/weixin_43306271/article/details/126709700