当今和今天

现近年来,拥有着 80% 的市场份额的 Android
是最主流的手机操作系统。它运行在诸多的智能手机、平板以及任何各样各种的配备上。仅凭那一点,大家是否可以认为
 Android 编程是简约而轻松的呢?

几年前,Miley Cyrus 还在唱着灵魂乐,贾斯汀 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的事了。

一个新开端

所有者一起都在上年暴发了改观,改变发生的那样之快,以至于你很简单地失去对它们的随行脚步,然后问自己“那都是如何时候暴发的?”更首要的是整套
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。向 谷歌 致敬!

 新Android Studio Logo

2.GRADLE

Gradle 是工程自动化工具,它曾经代表 Apche Ant 成为 Android
应用紧要的打造系统。它在 Android
开发者中国和北美洲常流行。因为我们因而它几乎可以自动化所有工作——从将大家的应用区分成分化风格、正确配置签名等等

据此,他变成了一种类的“管理”工具,大家用来定义和有限支撑我们的工程安装。Gradle
也是测试自动化库和机关构建服务器大批量抓实的紧要原因。测试自动化库和活动营造服务器又给
 Android
系统带来了无休止集成(CI)开发进度。不过不是一切都是那么令人开展——Gradle也在推行进程上边临批评。在复杂工程方面
Gradle 也的确很慢,但大家期待以此题材会在接下去的版本和批发中解决。

3.LOLLIPOP

谷歌 说 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
并不是怎么着新东西—它被介绍为 Kitkat 上援救的运行体系。通过引入
Lollipop,它完全代替了 Dalvik,成为主系统。由于众多原因 ART
是宏伟的,但自己只提及其中两点:

一、它应用
AOT(ahead-of-time)编译,那象征它把高中级语言(Dalvik字节码)编译成系统二进制码。那就造成大家采用更短的执行时间、更少的
CPU 占用、更少的电池消耗。在一边,安装进程也就更长。

二、他提供 multidex 协理。Dalvik dex
文件有个重大瑕疵—它们只好分包65,356种艺术。大家无法不社团好我们的
Android
应用以使方法毫无当先那一个界定。就算这一个数字也许看起来很大,然则假设您把
谷歌 Play
服务(大约每个应用都亟需)算在内,再添加有的外部函数库,你就能随随便便超越这几个限制。ART
以一种突破了字节码以广大 dex 文件打包到一个独自的 APK
的措施社团你的应用。

6.ANDROID 无处不在

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

7.智能手机性能的增强

智能手机依然Android
系统的基本装备。短期以来,智能手机的总体品质有难题。老旧的Android
设备比老旧的 酷派 更丑更慢——iOS
寻常感觉更通畅。对于那多少个被很多中华制造商们生产的让利设备来说,那种感受越来越如此。

幸运地是,Android
智能手机的质量和速度逐步提高,所以前几日大家有过多适合种种人的预算和内需的新设备。要是你想拥有一台手机,它兼具很高的相机分辨率、出色的设计、强大的总括机和电量,那不是个难题——大家都有。

本身个人最喜爱的品牌是BlackBerry,它的无绳电话机—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。他们曾经介绍了一门全新的语言,叫做
斯维夫特,它结合了数个其余语言(如 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 库(如 GreenDAO、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

网站地图xml地图