保罗迪乔内

很可能,你已经多次听说过Android。你甚至可以拥有Android智能手机、平板电脑、手表或电视。但什么是安卓?Android是由谷歌设计和开发的移动操作系统(OS)。Android操作系统是基于Linux内核的。那么,“Linux内核”是什么?为什么这是Android的一个重要细节?

简言之,Linux内核是一个操作系统,嗯,有点-它的一部分一个操作系统。更像一个小的部分是一个操作系统,但却是一个重要的操作系统。Linux内核是负责与设备硬件接口并管理设备CPU和内存的层。安卓操作系统是基于Linux内核的,因为Linux内核允许更开放和可定制的操作系统,这是安卓所提倡的——任何设备制造商都可以采用安卓操作系统,并将其打造成自己的操作系统。

2021年Android开发大师级综合课程必威真人投注

最后更新日期:2021年4月

  • 388次讲座
  • 各级
4.5 (2,803)

掌握现代安卓API:房间数据库、ML套件人脸识别、Firestore、Firebase、地图和安卓Studio IDE|作者:Paulo Dichone | Android、Java、Flatter开发者和教师

探索课程

此外,任何人都可以为Android的实际源代码做出贡献,让它变得更好!这使得Android成为一个开源操作系统,不像苹果的iOS和苹果的iPhone。Android是真正开放的。Android是开放手机联盟的一部分,开放手机联盟是一个由移动和技术领导者组成的社区,他们对改变消费者的移动体验有着共同的愿景。Android的开放性使其成为世界第一的移动操作系统。因此,Android操作系统运行在三星智能手机(三星galaxy)和平板电脑、亚马逊的Kindle、Fire和许多其他设备上。

Android作为软件栈

现在你了解Android的基础,让我们来看看Android的全貌。Android是一个软件栈,这意味着它不仅仅是一件事.Android有几个层,每个层都是整个Android系统的一部分。

Android软件栈

上面,我们有一个Android软件栈的图形表示。让我们快速剖析每一层(我们将从底部开始):

Linux内核

正如上面所讨论的,Linux内核是Android的基础。Linux内核主要处理所有底层内存和CPU管理,这是Android操作系统的一部分。在这个堆栈级别上,Android制造商可以为音频、摄像头、WiFi、蓝牙等创建硬件驱动程序。大多数开发人员不会在这个级别上工作。Linux内核确保在Android上运行的每个应用程序都在安全的环境中运行。这就是安卓工程师使用Linux内核而不是安卓操作系统的任何其他基本内核的原因之一。

为什么安卓系统的安全性很重要?

想象一下,如果一个应用程序中的资源从另一个应用程序的文件中读取信息,反之亦然,并且没有任何限制,那么情况会有多糟——恶意的、不安全的交互将占据主导地位,并使整个系统停止运行。

应用程序之间的信息(数据)共享是构建互联应用程序的一个重要部分,因此Android操作系统要求开发者设置用户必须授予的权限来完成某些事情。例如,对于访问手机文件系统(内部文件)的应用程序,用户必须首先授予访问权限。这意味着应用开发者必须提前让用户知道他们正在安装的应用想要访问什么。例如,当用户安装需要访问照片库或手机摄像头的Android应用程序时,该应用程序将请求访问照片库或摄像头的权限。应用程序用户有权授予或拒绝权限。Android中的应用程序权限可确保用户免受恶意软件和软件病毒的侵害。

硬件抽象层(HAL)

这个级别位于Linux内核之上。HAL是设备的物理功能(硬件)与Java应用程序编程接口(API)框架通信的地方(稍后将详细介绍),因此开发人员可以访问设备的音频/扬声器、蓝牙、摄像头、传感器等。

Android运行时(ART)

在这个软件堆栈级别上有两层,但是让我们首先关注Android运行时(ART)层。艺术主宰着Android操作系统。它与几个Android库一起工作,以促进艺术作品。可以这样想:对于Android操作系统内部运行的每个应用程序,都有一个独特的“沙盒”——艺术——专门负责管理该应用程序的生命周期。

本机C/C++库

该堆栈承载许多核心Android系统组件和服务,如ART。这些组件都是使用本机代码(C和C++编程语言)构建的。例如,为了让设备打开浏览器并显示web内容,Webkit库正在内部使用。如果你想在手机上听音乐或录制视频,媒体框架可以处理。

应用程序框架

作为Android开发者(或有抱负的Android开发者),应用程序框架是最常用的一层。在这个级别上,开发者可以通过Google Android团队的API类进行调用,从而访问底层Android系统。

换句话说,Android团队为您构建了一种编写代码的方法,该代码将与Android软件堆栈的所有较低层交互,从而使开发人员的工作更加简单。想象一下,你想构建一个Android应用程序来跟踪用户的位置。您所要做的就是使用location API。

系统应用程序

每个安卓设备都会预装一些应用程序,比如拨号器、电子邮件应用程序、日历、照相机、浏览器等。这些是核心应用程序。安卓系统的美妙之处在于,一切都能协同工作。

例如,如果您正在构建一个发送消息的应用程序,那么您所要做的就是调用设备上已安装的消息应用程序!无需自己制作独特的消息传递应用程序。此外,Android系统将允许用户选择使用哪个消息应用程序发送该消息。这将是自动的。只需指定(在你的应用程序中)你想要发送的消息,Android操作系统就会为你处理。

安卓版本

安卓操作系统有多种风格。这是开放的直接结果。尽管制造商可能会定制Android操作系统并将其安装在各种设备上,但Android的核心仍然是一样的。

谷歌,Android的创建者和主要维护者,拥有最纯净的Android版本,这是谷歌想要的原始软件。因此,大多数社区(Android开发者)更喜欢这个版本(通常称为“股票Android”)而不是其他版本。

在内部,谷歌不断改进安卓系统。自从Android第一次发布以来,Android经历了许多重大变化。谷歌有一个命名系统来跟踪所有Android版本的发布。它们使用:

  1. 代号
  2. 版本号
  3. API级别

前两个Android版本没有代码名,但有版本号和API级别。下面是一个命名的示例:

第一个Android版本发布:

第二个Android版本:

并快进几次迭代:

每个安卓版本都建立在上一个版本的基础上。因此,举例来说,安卓派(androidpie)将具有新功能,并且比上一个安卓版本看起来更好。随着Android的成熟和发展,开发工具也在不断发展,更好的代码编辑器可以提供更好的开发流程和测试,比如Android Studio集成开发环境(IDE)。必威真人投注

在第一个Android版本(1.0到1.1)中,操作系统仍在开发中。当时,设备的用户界面和硬件是基本的。然而,Android手机包含了流行的谷歌应用程序的早期版本,如Gmail、地图、日历和YouTube。在开发方面,当Android 1.0在2008年9月发布时,第一个Android软件开发工具包(SDK)也发布了。SDK是一组工具和库,使开发人员能够为特定平台(如Android平台)开发软件(应用程序)。在早期的Android版本中,主要关注点是将Android作为可靠的移动操作系统和稳定的开发平台进行改进。这将吸引开发者开发Android应用程序。必威真人投注自1.0版以来,Android已经走过了漫长的道路。

考虑到Android在不到10年的时间里从一个小型初创项目发展成为世界上使用最多的移动操作系统,它的发展是惊人的。增长和改善继续以快速的速度进行。越来越多的开发者开始开发Android应用程序。

许多公司和初创公司利用安卓系统开发,创造了全球数百万人使用的令人难以置信的应用程序和游戏。这仅仅是一个必威真人投注开始——世界上大多数人还没有在线,这意味着随着越来越多的人通过移动设备连接,安卓系统还处于婴儿期。

Android和iPhone的区别

iPhone运行的是iOS操作系统,这是一种专有软件,这意味着它不是开源的,只有苹果可以修改操作系统。此外,iPhone和Android的基本理念也不同。Android对每个人都是开放的,而iPhone和iOS是一个更封闭的利基平台。这并不是说一个比另一个好;他们只是在软件的工作方式和外观上有所不同。

iPhone具有独特的结构设计,提供了与Android设备不同的用户体验。这种差异不仅表现在外表上;他们跑得更深。例如,要为iPhone开发应用程序,您必须使用苹果的编程语言和工具。用于为iPhone创建应用程序的主要编程语言是Objective-C,这是一种由苹果创建和维护的专有编程语言。最近,他们开发了另一种称为Swift的编程语言来取代Objective-C。Swift现在是开源的,但核心iOS架构仍然是专有的。

Android使用了一种流行的开源编程语言Java来开发其开源核心系统。尽管谷歌团队也采用Kotlin作为Android开发的替代编程语言,但Java仍然是主要编程语言。必威真人投注

一些用户更喜欢Android的整体外观,这取决于制造商。其他人则更喜欢iPhone的用户界面和用户体验。iPhone的整体外观统一而独特,这使得它比Android更具可预测性,但Android更具可定制性和开放性。

Android应用程序和Google Play市场

Android设备运行专为Android平台构建的Android应用程序。谷歌Play是一个应用商店(不要与苹果的应用商店混淆),Android开发者可以在这里发布他们的应用,Android用户可以下载Android应用。虽然谷歌Play最初只提供Android应用,但它(多年来)已经转变为Android用户可以消费的所有数字内容的中心。这包括数字音乐、电子书、电影等。

谷歌Play商店上的Android应用程序经过质量和安全审查。Android是一个开放平台,不好的参与者可以通过创建携带恶意软件和垃圾邮件的应用程序来轻易滥用它。这就是为什么Google Play Store团队总是努力清理坏的应用程序,并确保市场上只允许合格的应用程序。

许多其他Android应用市场,如亚马逊Appstore,都安装在亚马逊基于Android的设备上,如亚马逊Fire手机和亚马逊Kindle Fire。三星Galaxy商店预装在所有三星android设备和其他一些设备上。此外,其他第三方Android应用商店提供了更多的应用。使用另类Android应用商店表明了Android生态系统的开放性;但是,无法保证用户安装的应用程序不是恶意的。

对每个人开放的陷阱

安卓的开放性使安卓成为一个充满活力的移动操作系统,可以在许多设备和小工具上运行(其中一些你不知道在安卓上运行)。然而,伴随着所有这些自由,随之而来的是高昂的代价——分裂.

碎裂在安卓系统中,这意味着安卓系统没有一致的外观和感觉,因为任何制造商和手机运营商都可以改变整个用户界面以满足他们的需求。正是因为这个原因,Android受到了很多批评,尤其是那些不得不为如此多的Android版本构建和支持应用程序的开发者。

由于为不同设备的屏幕大小编写代码可能会让开发人员感到沮丧,谷歌的Android团队(以及开发人员社区)一直在努力开发工具,以帮助解决Android碎片问题,至少在开发方面是如此。例如,Android Jetpack库帮助开发人员遵循最佳实践,减少样板代码,并编写跨Android版本和设备一致工作的代码。同样,material design library提供了一组设计规则,旨在为Android提供统一的用户体验。必威真人投注

这些库和其他许多库和工具让开发者和制造商松了一口气,但要结束Android碎片化,还有很多工作要做。不幸的是,由于Android的开放性和免费性,它可能永远是碎片化的。这只是一个开放平台的本质。撇开安卓系统的碎片化问题不谈,安卓系统仍然是世界上最强大、最可靠、最知名的移动操作系统之一。任何人都可以使用。这就是安卓的魅力所在。

总之,安卓非常棒。开发Android应用程序甚至更好。

Android是开发应用程序的优秀平台。谷歌安卓团队和安卓开发者社区已经创建了大量的工具,使得开始构建安卓应用程序变得更加容易。

在Android的初期阶段,开发Android应用程序需要设置大量的开发环境,并且没有正式的IDE。Android开发人员,或有抱负的Android开发人员必威真人投注,不得不使用Eclipse,它不是最好的Android开发IDE,因为它笨重而且缺少合适的Android工具。

再过几年,现在有了一个名为Android Studio的官方开发工具,它提供了您立即开始开发所需的一切。An必威真人投注droid Studio拥有设计、编码、测试和向Google Play商店发布顶级Android应用所需的一切。

为Android平台开发是值得的,因为你知道你的应用程序将接触到更多的受众,谁知道呢,甚至可能会让数百万人的生活变得更好。这就是Android的核心——一个移动操作系统,一个设备,一个面向所有人的移动开发平台。必威真人投注

最后更新的网页:2020年11月

Android开发的顶级课程必威真人投注

使用Jetpack编写MVVM-Android开发应用程序必威真人投注
斯特凡·约万诺维奇
4.6 (56)
热门与新
完整的Android Oreo开发者课程-构建23个应用程序!
罗伯·珀西瓦尔,尼克·沃尔特,罗伯·珀西瓦尔的代码之星
4.5 (15,940)
畅销书
使用Kotlin的And必威真人投注roid应用程序开发大师级
Tim Buchalka,Jean-Paul Roberts,Tim Buchalka的学习编程学院,David Reidy
4.4 (5,003)
完整的Android 10和Kotlin开发大师级必威真人投注
Denis Panjuta,Tutorials.eu作者Denis Panjuta
4.5 (4,203)
畅销书
使用Dagger 2和Hilt的Android依赖注入
瓦西里·祖卡诺夫
4.8 (1,484)
畅销书

更多Android开发课程必威真人投注

Android开必威真人投注发的学生也在学习

授权你的团队。引领行业。

使用Udemy for Business订阅您所在组织的在线课程和数字学习工具库。

请求演示

保罗·迪乔内的课程

Java Masterclass-从初学者到专家指南:Java和JavaFX
Paulo Dichone | Android、Java、Flatter开发者和教师
4.3 (1,112)
Java设计模式:完整的Masterclass-21模式
Paulo Dichone | Android、Java、Flatter开发者和教师
4.6 (592)
颤振与飞镖-完整的颤振应用程序开发课程必威真人投注
Paulo Dichone | Android、Java、Flatter开发者和教师
4.4 (4,420)
颤振e飞镖-Criação de Apps的复杂曲线
Paulo Dichone | Android、Java、Flatter开发者和教师
4. (1,020)
GraphQL和Apollo与Android-从新手到专家
Paulo Dichone | Android、Java、Flatter开发者和教师
4.7 (53)
d3.js-完整的开发者数据可视化指南
Paulo Dichone | Android、Java、Flatter开发者和教师
4.8 (252)
2021年Android开发大师级综合课程必威真人投注
Paulo Dichone | Android、Java、Flatter开发者和教师
4.5 (2,803)
AWS AppSync&Amplify with React&GraphQL-完整指南
Stephane Maarek | AWS认证云从业者、解决方案架构师、开发人员、Paulo Dichone | Android、Java、Flatter开发人员和教师
4.5 (976)
畅销书
gRPC[Node.js]MasterClass:构建现代API和微服务
Stephane Maarek | AWS认证云从业者、解决方案架构师、开发人员、Paulo Dichone | Android、Java、Flatter开发人员和教师
4.5 (157)
TornadFX-使用Kotlin构建JavaFX应用程序
Paulo Dichone | Android、Java、Flatter开发者和教师
4.8 (63)
最高评级
AngularDart-使用AngularDart和Dart构建动态Web应用程序
Paulo Dichone | Android、Java、Flatter开发者和教师
4. (31)
完整的中间Android Masterclass
Paulo Dichone | Android、Java、Flatter开发者和教师
4.7 (72)

Paulo Dichone的课程| Android、Java、Flatter开发者和教师