Android开发之病逝、现在和将来

临时如今,拥有着 80% 的市场份额的 Android
是最好主流的手机操作系统。它运行在群之智能手机、平板同另各种各样的设施上。仅凭这或多或少,我们是不是好当
 Android 编程是略而轻松的也罢?

MoNoSLAM:https://github.com/hanmekim/SceneLib2

几乎年前,Miley Cyrus 还在唱歌着乡村音乐,Justin Bieber
还梳理着他那红的“Bieber”发型,Malcolm 还当 AC/DC 乐队,而又 Android
开发还相当复杂。Android 开发者对于Android
系统出极简便的利用还生同样死堆问题。

以扩大卡尔曼滤波为后端,追踪前端非常稀疏的特征点,以相机的目前状态与所有路标点为状态量,更新其均值和协方差。

为何?嗯,亲爱的读者,问题出在各种地方:

可取:在2007年,随着电脑性能的升官,以及该体系就此稀疏的办法处理图像,使得该方案使得SLAM系统能在线运行。(之前的SLAM系统是中心不能够在线运行的,只能依赖机器人携带相机采集的数据,再离线进行定点与建图。)

漏洞层出的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
会很快抹杀我们的冀望以及憧憬。

症结:MoNoSLAM存在使用场景窄,路标数量少,系数特征点非常容易丢失等毛病,现在既告一段落了针对那个支付。

只是这些都是2013底从了。

PTAM( Parallel Tracking And Mapping
)
http://www.robots.ox.ac.uk/~gk/PTAM

一个初开

持有者共还在上年出了转,改变有的这么的快,以至于你充分容易地去对她的随脚步,然后问自己“这都是啊时候来的?”更着重之凡百分之百
Android
生态系统提高了诸多——我们来矣新的硬件(智能手表),新的软件(Gradle,Android
Studio),新的体系(Android 5.0 Lollipop)。

每个人都对准斯有所贡献——Google、设备制造商、开发者。每个人且出平等的靶子。问他们同之斯题材:“OK。现在我们出稳定之网,十亿乘除的施用与十亿计的用户——我们怎么才能够更为简化和提高
Android?我们怎么才能够叫开发进程又好?”这就算是 open access和 open source
原则展现的她们的潜力——每个人都得做出改变、产生提高、创造新的东西之四野。

杀麻烦列有尽底转移,但自我举行了一个列表来排有里面(在我看来)最要紧之变型:

       主要原理是:
从摄影图像及捕捉特征点,然后检测出平面,在检测出之面上起虚拟的3D坐标,然后合成摄影图像及CG。其中,独特之远在当受,立体平面的检测与图像的合成采用并行处理。

1.ANDROID STUDIO

我们最好喜爱的Andorid 开发之 IDE
终于成了祥和的1.0版了。我未见面谈论太多关于 AS
为什么对开发过程来说是极度好之相干细节,因为我们早已出零星篇登出的博客覆盖了当时无异主题。我会说
Eclipse ADT 插件都不吃合法赞成采用,我为强烈建议你管持有的下迁移至
 Android Studio。向 Google 致敬!

 新Android Studio Logo

可取:提出并促成了跟及建图过程的连行化,将左右端分离,使用非线性优化方案,既好实时的定势以及建图,也可以在虚拟平面及折加物体。

2.GRADLE

Gradle 是工程自动化工具,它既代替 Apche Ant 成为 Android
应用关键的构建系统。它在 Android
开发者中异常流行。因为咱们透过其几乎可以自动化所有事情——从以我们的应用区分成不同风格、正确配置签名等等

故而,他变成了千篇一律多级的“管理”工具,我们用来定义和保持我们的工安装。Gradle
为是测试自动化库和机关构建服务器大量加强之第一原因。测试自动化库和自行构建服务器又吃
 Android
系统带来了绵绵集成(CI)开发过程。但是未是一切都是那么让人乐观——Gradle也当履行进度高达饱受批评。在复杂工程方面
Gradle 也着实特别缓慢,但我们想此问题会以搭下的版本与批发备受化解。

短:场景小,跟踪容易掉。

3.LOLLIPOP

Google 说 Lollipop 是从人类诞生以来 Android 系统最充分之升级,Google
说的不易。 Android
的每个片还出照应的改动及提升,但是咱为未尝看到开发者对这些改动有怎样的反响。虽然以原有设备升级至
Lollipop 还有不少题材,但是咱要这会以交接下的版本被解决。

ORB-SLAM(继承并改进PTAM)http://webdiis.unizar.es/~raulmur/orbslam/

4.LOLLIPOP 的外在—— MATERIAL DESIGN

对此这个为作 Material Design 的金光闪闪的初 Android UI
有许多假如描写。这是近些年几年Android
系统最重点创新点之一,它了改变了咱应用的观感。我无限爱 Material
Design
的是它彻底改变了用户体验条件——一切都重点。即使是轻微的底细呢未能够于忽视。我们不能不对每个用户交互、点击、触摸等做出响应。因为,这恰恰而
Google
所说的,这些动作都是起义的。我们不能不采取黑体、拥抱新的生动的情调、每一样步用动画片、大书,简单地说,我们设吃咱的使为命。Material
Design 同也完全符合 Android
生态系统,适应各种不同之屏幕尺寸。这也就算是为什么咱们的应用是形似的,但是当不同之平台具有不等同的外观。

 Material Design 动画

长:泛用性:支持单目,双目,RGB-D三种植模式。整个体系围绕ORB特征进行测算,在效率和精度之间就了平衡,并围绕特征点进行了优化。其缠检测算法可以使得地防止误差的累积。使用三独线程完成SLAM,取得了于好之跟及建图效果,能够确保轨迹以及地图的全局一致性。

5.LOLLIPOP 的内在—— ART

每个人且在议论设计、UI、UI
元素、动画、色彩······,但是咱是开发者,我们感谢兴趣之是标之下的物。而且,哇!!!这招擎真是美极了:ART,新的周转体系。为了记录,ART
并无是什么新东西—它给介绍为 Kitkat 上附有的周转系统。通过引入
Lollipop,它了代表了 Dalvik,成为主系统。由于多因 ART
是伟之,但我光提及中有数接触:

一致、它应用
AOT(ahead-of-time)编译,这代表其把中语言(Dalvik字节码)编译成体系二进制码。这就算招致我们运用还缺乏的履行时间、更少之
CPU 占用、更不见的电池消耗。在一边,安装过程吧尽管再丰富。

第二、他提供 multidex 支持。Dalvik dex
文件来只重点缺陷—它们只能分包65,356种植方法。我们不能不组织好我们的
Android
应用为要艺术毫无跨越这范围。尽管是数字可能看起来分外怪,但是若您管
Google Play
服务(几乎每个应用都亟待)算在内,再增长一些标函数库,你就是会自由超过此限制。ART
因同一种植突破了配节码以群 dex 文件包到一个独自的 APK
的法子组织而的使用。

      
缺点:对于各级幅图像都用计算ORB特征耗时大。三丝总长给CPU带来比较充分当,在直接顶嵌入式设备上出得之不方便,ORB-SLAM的建图为稀疏特征点,只能满足一定功能。

6.ANDROID 无处不在

咱俩开于智能手表、电视、汽车开发使,为什么要在斯平息呢?如果您以在你的屋子,喝着了平杯热咖啡,花一两分钟看看你的四周。在搭下的这几乎年你也许会视至少五样运行在
Android
系统的配备—电视、笔记本、平板、相机、自行车、厨房电器、恒温器、汽车等等。Android
开始当同一种植试验,它给认证能够运转于其他一个享小型微处理器的事物上面。

LSD-SLAM(Large Scale Direct monocular SLAM)

7.智能手机质量的增高

智能手机还是Android
系统的骨干装备。长期以来,智能手机的总体品质产生题目。老旧的Android
设备比较老旧的 iPhone 更臭更慢——iOS
通常感觉还通畅。对于那些为众华夏制造商等养的降价设备来说,这种感受越来越如此。

万幸地是,Android
智能手机的成色以及速度稳步提升,所以今天咱们发了多副每个人之预算与内需之新设施。如果你想有同样台手机,它抱有好高之相机分辨率、优秀的筹划、强大的微机以及电量,这不是独问题——我们还生。

本身个人极端喜爱的品牌是摩托罗拉,它的无绳电话机—Moto X、Moto G同Moto E
都持有优美之线条,同时为的确有所好好之性价比。而当以,Google
的一个组织正力于模块化手机的开支。Project Ara 目标在于彻底动摇 Android
世界,如果尽进行顺利,它来或会见赶来人们眼前。

Project Ara 部分

      
将单目直接发用至了大体上密布之单目SLAM中,不需要算特征点,还能构建版稠密地图.

下同样步何去何从?

长:直接法是针对像素进行的;对特色缺失区域不灵活,半稠密追踪可以管追踪的实时性和长治久安;在cpu上落实了一半密地图的重建。

远离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 库(如 GreenDAO、ActiveAndroid 或
SugarORM),但是其还起和好之题目。我由不曾对她了令人满意—他们一旦无是下非常复杂,要不就是丢失一些事物(如数据库改变监听器)。我留心到了
Realm for Android 和
DBFlow,我想她们见面迎刃而解自己有所的问题而减少执行时间。

SVO( Semi-direct Visual Odoemtry )

结论

Android
于过去之几年起了了不起的变更。它就于一个简约的智能手机系统提高为一个支撑各种设备的劲系统。时间会见告知我们
Android
将会见化什么。谁知道哪天我们见面不见面还是足以据此她来受核聚变反应堆编程,或者叫”终结者“编程。PS.
显然终结者更有趣。

立刻是自课余时间的翻,错误非常多,还请耐心指出,谢谢!

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

冲稀疏直接法的视觉里程计,在促成着,使用了4×4的有点片进行块匹配,估计相机资自身的倒。

长:速度极其快,在低端计算平台达成吗会达标实时性,适合计算平台受限的场所。

短:在平视相机中展现不理想;舍弃了后端优化及环检测部分,SVO的位姿估计是总计误差,并且丢失后不顶好进行双重一贯。

RTAB-MAP(RGB-D传感器上的SLAM方案)

       给来了一如既往仿完整的RGB-D
SLAM方案,目前足一直打ROS中收获其进制程序,在Google Project
Tango上可以获得其APP直接下。

亮点:原理简单;支持RGB-D和眼睛传感器,且提供实时的一贯及建图功能。

缺点:集成度高,庞大,在那上进展二次开发困难,适合当SLAM应用而无研究利用。