android应用程序开发,Android应用开发概述

今天公司面试一个高级android开发工程师,负责初面的业务同事对候选人能力还是比较认可的,面试官自己也很高兴因为如果他能加入公司能缓解目前工作过于饱和的局面 。
从零开发一个android app需要哪些步骤?

android应用程序开发,Android应用开发概述


开发一款Android App的步骤并不复杂,首先需要掌握Android开发的相关技术,包括Activity、Intent、Service、Fragment等,由于Android开发属于客户端开发,所以从技术难度上来说并不大,对于已经有Java Web开发能力的程序员来说,学习Android开发的过程还是比较轻松的 。
Android App的开发步骤涉及到交互设计、视觉设计、前端开发、后端开发、测试和部署,在部署之后通常需要到各大应用市场上架,有的应用市场是需要软件著作权证书的,这个往往需要提前申请 。随着移动互联网的发展,目前用户对于App的使用体验度有越来越高的要求,这就对App的设计环节提出了更高的要求 。对于程序员来说,开发环境可以采用Eclipse、AndroidStudio和IntelliJ IDEA,这些开发环境都是不错的选择,可以根据自己的操作习惯进行选择,对于Java Web开发人员来说,使用Eclipse可能会更方便一些 。
在Android开发当中可以采用Cordova框架,这个框架还是比较方便的 。Android开发往往需要前后端同步进行,后端开发需要进行数据结构设计、接口设计、功能实现等操作,通常还需要编写一个管理App的管理端 。后端开发完全可以使用Java语言开发,这对于Java Web程序员来说是比较方便的 。当后端开发结束之后,就需要把后端服务部署到网络上,目前采用云平台进行后端部署是一个比较常见的选择 。
为什么Android开发使用Java而不是C?
android应用程序开发,Android应用开发概述


文/小伊评科技结论:如果谷歌用C作为安卓开发语言,安卓早就挂了 。安卓系统卡顿的根源估计很多人都比较清楚了,最根本最核心的原因就是因为其应用层采用的是Java语言 。因为Java是一个跨平台的语言,为了保证跨平台的兼容性,它内置的有Java虚拟机,这个虚拟机的作用就是把应用层的指令解释为机器语言,然后推动硬件去处理,使用者只需要根据平台的不同配置相应的JDK即可,这也就保证了Java的跨平台特性 。
但是正所谓有得必有失,也正是由于虚拟机的存在,用户的指令无法直接经过编译后成为机器码,还需要经过虚拟机的解释才可以,这也就导致了其执行效率是比较低的 。而反观C,作为一个偏底层的开发语言,他的指令经过编译后可以直接转化为机器码和硬件进行交互,执行效率就要高很多了 。举个形象一点的例子,方便大家理解:使用Java语言,就像是两个语言不互通的人中间隔着一个翻译官在交流,哪怕这个翻译官的水平再高,翻译的速度再快,他也不可能做到实时的翻译,总需要一个处理的过程,交流成本就比较高,效率也比较低 。
而采用C语言则就像两个语言相通的人在对话,一个人说的话可以直接被另外一个人听懂,交流效率大大提升 。所以,虽然在安卓5.0时代,谷歌虽然给安卓系统做了一次大手术,更换了一个全新的效率更高的ART虚拟机,但是很可惜,就像上文所举得例子那样,谷歌只是换了一个翻译能力更强的翻译官而已,并没有解决最本质的问题 。
看到这,肯定会有人要问了,谷歌为什么要选择Java而不去选择执行效率更高的C呢?难道谷歌的工程师不知道Java存在执行效率低的问题么?当然不是,谷歌这么做也是迫不得已 。谷歌的算盘 。在2005年,谷歌将安卓团队一行人收入囊中之后(也就是安卓之父安迪·鲁宾团队),本来实际上也没有打算完全开源,而是闭门造车了很长时间,不过始终没有什么大的进展 。

推荐阅读