Android开发的过去、现在和以后

现如今,拥有着 80% 的市场份额的 Android
是最主流的手机操作系统。它运行在很多的智能手机、平板以及其他各个各类的配备上。仅凭这或多或少,我们是不是可以认为
 Android 编程是粗略而轻松的啊?

几年前,Miley Cyrus 还在唱着流行乐,Justin(Justin) Bieber
还梳着他这出名的“Bieber”发型,Malcolm 还在 AC/DC 乐队,而还要 Android
开发还十分复杂。Android 开发者对于Android
系统开发最简便易行的行使都有一大堆问题。

干什么?嗯,亲爱的读者,问题出在各样地点:

漏洞层出的IDE:你有没有试过用一把铲子去修补你的汽车?或者您开着你伯公的40年前的
Yugo 汽车去把妹?在Android世界中,对于 Android 开发,大家有一个合法
IDE——Eclipse,它有一大堆问题,在10分钟之内保证让您抓狂。Eclipse ADT
插件对于更多的纷繁工程以来也是满载漏洞、缓慢而不团结的。咱们对此充足恶心,祈祷能发生奇迹来改进这一切。

系统崩溃:Gingerbread (2.3.7)在 Android
系统版本中占据着很是大的市场份额(至少15-20%)。正如你已清楚的,Android
正通过4.0本子(Ice Cream
Sandwich)经历着千丝万缕的翻修过程。系统有了新的用户界面元素、新的配备硬件API、新的屏幕密度等等,这就导致了我们不可能不小心地优化和编制大家的采纳来驱动在新版本Android和旧版本
Android
都能运行优异。所有的这所有都大幅度地震慑了大家的开支过程和促成了更多的
bug 和 crash,以至于延长了开销时间。

迟迟的仿真器:大家需要在不同的 Android
系统版本和屏幕尺寸测试我们的施用,所以我们务必买至少20种 Android
设备。听起来是不是很疯狂?好吧,我们能应用仿真器来缓解。不过你曾有没有试过用默认的
Android
仿真器?它的迟缓令人悲痛,当您的应用正在被布置到您的仿真器的时候,你会让你协调去数办公楼前面停的车的数据来打发时光。

用户界面(UI):Android 应用无聊死了。假若你亵渎看一眼 iOS
应用,你会看到这个应用充满了生活气息而且色彩缤纷。所有的事物都是不容置疑的,动作转换,从左到右、从右到左……而我辈的运用是死的,假诺我们想要提升大家的用户体验,老旧的Gingerbread
会很快抹杀咱们的梦想和向往。

而是这多少个都是2013的事了。

一个新起头

持有者一起都在2018年发生了改变,改变发生的这么之快,以至于你很容易地失去对它们的追随脚步,然后问自己“这都是何等时候发出的?”更关键的是总体
Android
生态系统提高了无数——我们有了新的硬件(智能手表),新的软件(Gradle,Android
Studio),新的系统(Android 5.0 Lollipop)。

各种人都对此有所贡献——Google、设备创建商、开发者。每个人都有同等的靶子。问他俩一如既往的这多少个题材:“OK。现在我们有安定的体系,十亿计的使用和十亿计的用户——我们怎么才能进一步简化和提高Android?大家怎么才能使得开发过程更好?”这就是 open access和 open source
原则显示的她们的潜力——每个人都足以做出改变、发生提升、创制新的东西的街头巷尾。

很难列出全体的变型,但自己做了一个列表来列出其中(在我看来)最要害的成形:

1.ANDROID STUDIO

俺们最欢喜的Andorid 开发的 IDE
终于变成了平静的1.0版本了。我不会谈谈太多关于 AS
为啥对于开发过程来说是最好的相关细节,因为我们已经有两篇登出的博客覆盖了这一主题。我会说
Eclipse ADT 插件已经不被官方赞成使用,我也强烈指出你把具有的行使迁移到
 Android Studio。向 Google 致敬!

 新Android Studio Logo

2.GRADLE

2018正版葡京赌侠诗,Gradle 是工程自动化工具,它曾经取代 Apche Ant 成为 Android
应用紧要的构建系统。它在 Android
开发者中特别流行。因为我们透过它几乎可以自动化所有事务——从将大家的应用区分成不同风格、正确配置签名等等

故此,他成为了一文山会海的“管理”工具,大家用来定义和保持我们的工程安装。Gradle
也是测试自动化库和电动构建服务器大量提升的要害缘由。测试自动化库和活动构建服务器又给
 Android
系统带来了绵绵集成(CI)开发进程。可是不是一切都是那么令人乐观——Gradle也在进行进度上惨遭批评。在纷繁工程地点Gradle 也真正很慢,但我们期望那几个问题会在接下去的本子和发行中化解。

3.LOLLIPOP

Google 说 Lollipop 是自人类诞生以来 Android 系统最大的升官,Google说的没错。 Android
的各样部分都有对应的改动和升级换代,然则大家也尚未看到开发者对这一个改变有什么的影响。即使将旧设备升级到
Lollipop 还有众多问题,然而大家期望这会在接下去的本子中化解。

4.LOLLIPOP 的外在—— MATERIAL DESIGN

对于这么些叫作 Material Design 的金光闪闪的新 Android UI
有成千上万要写。这是近年几年Android
系统最关键立异点之一,它完全改变了俺们接纳的观感。我最喜爱 Material
Design
的是它彻底改变了用户体验条件——一切都重点。固然是细微的底细也不能被忽略。我们不可以不对各样用户交互、点击、触摸等做出响应。因为,这正如
Google所说的,那些动作都是有意义的。我们务必运用大篆、拥抱新的活跃的色彩、每一步使用动画片、大字体,简单地说,大家要给大家的选取以生命。Material
Design 同样也完全符合 Android
生态系统,适应各个不同的屏幕尺寸。这也就是干吗咱们的应用是一般的,不过在不同的阳台具有不一致的外观。

 Material Design 动画

5.LOLLIPOP 的内在—— ART

每个人都在座谈设计、UI、UI
元素、动画、色彩······,可是我们是开发者,我们感兴趣的是外部之下的事物。而且,哇!!!这引擎真是美极了:ART,新的运行连串。为了记录,ART
并不是怎样新东西—它被介绍为 基特(Kit)kat 上附有的周转类别。通过引入
Lollipop,它完全代替了 Dalvik,成为主系统。由于不少缘由 ART
是远大的,但自我只提及其中两点:

一、它采纳AOT(ahead-of-time)编译,这意味着它把高中级语言(Dalvik字节码)编译成系统二进制码。这就导致我们应用更短的推行时间、更少的
CPU 占用、更少的电池消耗。在一面,安装过程也就更长。

二、他提供 multidex 协助。Dalvik dex
文件有个首要缺陷—它们只好分包65,356种形式。我们亟须社团好我们的
Android
应用以使方法毫无跨越那个限制。固然这多少个数字或者看起来很大,不过只要你把
Google Play
服务(几乎各种应用都亟待)算在内,再增长一些表面函数库,你就能自由超过这些范围。ART
以一种突破了字节码以浩大 dex 文件打包到一个单身的 APK
的情势协会你的选用。

6.ANDROID 无处不在

俺们开首给智能手表、电视机、汽车开发应用,为什么要在此平息呢?假设你坐在你的房间,喝着了一杯热咖啡,花一两分钟看看您的方圆。在接下去的这几年你可能相会到至少五样运行着
Android
系统的装置—电视机、台式机、平板、相机、自行车、厨房电器、恒温器、汽车等等。Android
开首作为一种试验,它被证实可以运转在任何一个具有小型微处理器的东西下面。

7.智能手机质地的提升

智能手机依旧Android
系统的着力设施。长时间以来,智能手机的一体化质地有问题。老旧的Android
设备比老旧的 HTC 更丑更慢——iOS
平常感觉更通畅。对于那多少个被广大华夏创建商们生产的廉价设备来说,这种感受越来越如此。

幸运地是,Android
智能手机的质料和速度稳步提升,所以前日我们有过多适合各类人的预算和急需的新装置。假若你想拥有一台手机,它装有很高的相机分辨率、优秀的宏图、强大的处理器和电量,这不是个问题——我们都有。

自我个人最喜爱的品牌是中兴,它的无绳电话机—Moto X、Moto G和Moto E
都具有漂亮的线条,同时也确确实实有所很好的性价比。而在同时,Google的一个团体正力于模块化手机的开支。Project Ara 目的在于彻底动摇 Android
世界,如若所有举行顺利,它有可能会到来人们眼前。

Project Ara 部分

下一步何去何从?

远离JAVA

俺们早已解决了 IDE 和连串版本的大部分问题,大家就能够关心 Android
其他方面的题材。

恕我直言,在 Android 开发最基本的问题中最关键的题材是 Java。对不起,Java
Harmony,基于 Java 7 或 Java6,但它不是
Java。不要让自己放错——我确信Java是一门好的编程语言,不过自己也认为大家是时候打破常规了。大家需要最先摸索另外一门编程语言来顶替
Java 成为 Android 开发的基本语言。

看看我们最着重的竞争者—Apple。他们早就介绍了一门全新的言语,叫做
斯威夫特(Swift),它整合了数个其他语言(如 Python、Ruby 或
C#)的最优特征。大家曾经比 iOS
开发者开发同一应用需要更多的岁月,而这会使我们更慢。

这就是干什么我们需要新东西的参与了。大家早已有了关于哪个语言可以代表Java的一些想法。我觉着是
Groovy。它的语法与 Java 万分相似(实际上,它是按照 Java
的),我们也有部分工作原型了。同时,也无须忘了它是 Gradle
的主语言——所以,为啥不把它用来Android 开发呢?或者可能是
Scala(它可以便捷取得新用户),又或者是 Kotlin(Jake Wharton
如今写了一篇很好的关于用于 Android 的 Kotlin 的概论)?

数据库管理变得更好

本人要提出另一个题目—数据库管理 API。假诺你再五回亵渎
Andoird,看一眼我们的竞争对手—iOS(要旨数据,将更加准确)——你会看出她们确实具有不错的点子和创办数据库对象的GUI
和 CRUD 方法,数据库变化监听器。可是一旦您回头看下默认的 Android API
——我们还尚未离乡背井写这么些极大地影响大家开发进程的 SQL 命令。

调节 SQL
错误不是一件容易的事—它特别消耗时间,大家也从未翻动数据库数据的GUI。虽然也有一些不错的
ORM 库(如 格林DAO、ActiveAndroid 或
SugarORM),不过它们都有和好的题目。我从没有对它们统统令人满足—他们要不是运用很复杂,要不就是遗失一些事物(如数据库改变监听器)。我留意到了
Realm for Android 和
DBFlow,我盼望他们会缓解自己拥有的问题同时减弱执行时间。

结论

Android
在过去的几年发生了光辉的变动。它已经从一个大概的智能手机系统提升为一个辅助各类装备的兵不血刃系统。时间会报告大家Android
将会化为何。什么人知道何时咱们会不会如故足以用它来给核聚变反应堆编程,或者给”终结者“编程。PS.
明显终结者更有趣。

这是自身课余时间的翻译,错误很多,还请耐心指出,谢谢!

原文链接:https://www.infinum.co/the-capsized-eight/articles/the-past-present-and-future-of-android-development

相关文章