开发一个安卓手机APP需多少钱(Android系统的软件是基于什么平台开发的?)

%title插图%num

Android系统的软件是基于什么平台开发的?

Android早期由“Android之父”之称的Andy Rubin创办的Google于2005年并购了成立仅22个月的高科技企业Android,了短信、手机检索、定位等业务,基于Linux的通用平台进入了发。

Google公司在2007年11月5日正式公布这个操作系统,2008年,Patrick Brady于Google I/O演讲“Anatomy & Physiology of an Android”,并提出的Android HAL架构图。HAL以*.so档的形式存在,可以把Androd framework与Linux kernel隔。

App开发需要哪些人员并各自负责什么工作

需要设计到的人员比较多,主要是以下几种: 1.产品经理:写需求文档、思维导图、申请第三方、与客户沟通功能、与技术交接功能,督促项目进度等 2.UI设计师:整个APP界面作图、切图、修改UI、H5效果等 3.安卓开发人员:安卓手机APP的开发 4.IOS开发人员:苹果手机APP的开发 5.后台开发人员:后台管理开发 6.服务器开发人员:服务器开发 7.项目经理:负责并监督整个项目整体进度流程等

开发一个安卓手机APP需多少钱

开发一个安卓手机APP需多少钱

这是一个我们经常听到的客户咨询的问题,开发一个APP需要多少钱。其实,这个价格的计算公式 是非常简单的:投入的人力 * 开发的周期。

一般一个简单的APP包含ios端,android端,管理后台,复杂的项目可能还包括微信公众号,微信小程序,PC端等不同的版本。

互联网是个神奇的大网,大数据开发和软件定制也是一种模式,这里提供详细的报价,如果你真的想做,可以来这里,这个手及的开始数字是一伍扒中间的是壹壹三三后的是泗柒泗泗,按照顺序组合起来就可以找到,我想说的是,除非你想做或者了解这方面的内容,如果只是凑热闹的话,就不要来了。

现在我们以最简单的版本来举例,开发一个app,需要哪些人:产品经理,UI设计师,开发工程师,测试工程师。

产品经理

产品经理的主要职责是确定好APP有哪些功能,分别是怎么交互的,然后使用Axure等工具做一个原型。原型是非常重要的一个东西,他可以帮你梳理出功能点,可以用来与各个角色进行直观的沟通,可以对各个功能进行设计时间,开发时间的评估。如果一个项目没有一个原型,那么请不要开始这个项目。

一定要有一个原型,这是项目流程的第一步。 由此确定开发时间,报价,甲乙双方的沟通,乙方团队内部的沟通等工作

下面是我们使用做的几个产品原型图:

UI设计师

UI设计师的主要职责是设计APP端,管理后台的各个页面。UI设计师是在项目原型设计好之后,开始启动UI设计工作的。

现在就牵扯到一个话题,就是需不需要一个设计师?

如果你做的是一个对外的用户产品,比如商城,家政服务等手机软件, 那么你需要一个设计师。

以下是两款APP,我们可以对比以下:

经过设计:

这两款app质量的高下一眼就可以看出。

那UI设计师 是不是必须的呢?是必须的!不要期望这程序员能自己设计好一个APP,设计和开发是两个差距非常大的领域。一个相对合格的设计师的工资大概在10K-15K左右。

那管理后台 需不需要设计呢?一般来说,管理后台是给内部人员使用的,可以不需要设计师来进行设计,也可以做到相对简洁,美观的效果,太多的设计反而会增加开发成本。下图是我们一个最简洁版本的后台样式:

开发工程师:

开发工程师的主要职责是进行ios,android,管理后台,数据库表,后端接口,微信端,微信小程序等方面的开发,是整个项目流程中最重要,耗时最长的一个过程。一般是在项目原型设计好之后,开始开发工作的,可以与UI设计师并行的工作,不过UI设计师需要相对提前一些,不然会阻塞前端开发工程师的进度。

不像产品经理和UI设计师,只需要一个人即可, 开发工作都需要多个人同时进行开发。

人员配置由项目使用的技术架构决定,这些技术架构差异性非常大,会影响开发人员的配置,最终APP的体验,开发周期的长短等各个方面。

目前行业存在的几个开发方式有:原生态APP,React Native(Weex) APP,混合开发APP,web页面套壳APP。

原生态APP

原生态APP指的是传统的APP开发模式,ios使用原生的xcode objective-c编写,安卓使用android studio java语言进行编写。目前绝大多数的app都是采用的这种模式, 但是由于高昂的开发,维护成本,包括阿里(阿里云APP,淘宝APP),百度,腾讯,京东在内的大公司,以及不少创业公司都在采用React Native开发方式。

优势:性能好,页面非常流畅

劣势:开发成本,维护成本 非常高,开发效率相对比较低下。bug修复需要审核,目前的ios,android的审核周期都在3天以内。

人员配比:ios,android,后端开发人员比例:1:1:1.3

React Native(Weex) APP

React Native(Weex) 技术出现是为了解决原生开的成本问题,以及开发效率问题。框架的原理是:使用js写一套代码,控制原生的app组件运行。React Native 是Facebook开发的一套框架,现在已经是一个非常稳定的框架,社区非常活跃。 目前使用该框架的APP包括:facebook App,手机百度APP,QQ APP,京东APP等。Weex是阿里开发的一套框架,比react native 起步比较晚,目前社群还比较小,主要的产品均是阿里自己的产品,包括:阿里云,手机淘宝。

优势:性能与原生的app相同,开发,维护成本远低于原生app,可以一套代码支持ios,android平台

劣势:学习成本相对比较高,需要一个了解原生开发的人员

人员配比:前端,后端:1:1.3。

混合开发APP

混合开发技术的出现也是为了解决原生app的成本问题,以及开发效率问题。框架原理是:使用web的形式编写页面内容,使用js进行控制内容在webview中显示。与react native的不同之处在于是把页面嵌入到了webview中运行,不是运行的原生组件。

优势:开发,维护成本远低于原生app

劣势:性能比较差,体验不够流畅,框架均是相对的小厂商开发,稳定性,解决问题方面均得不到太好的保证。所以目前还没有大型的app采用这种方式。

人员配比:前端,后端:1:1.3

web页面套壳

web套壳指的是将已经开发好的H5页面,嵌入到APP中。

优势:成本最低,一套H5代码可以给android,ios,微信端使用

劣势:性能非常差,完全的H5页面,在需要与原生app交互时,比较麻烦,局限性比较高。

人员配比:前端,后端:1:1.3

测试工程师

测试工程师一般在项目的中后期参与,一般进行的是黑盒测试。

工资表

假设一个项目的项目周期是2个月(到上线位置),那么我们计算一下企业的成本支出,一般来说一个月薪1万的员工,企业大概要负担月薪40%的额外支出,比如五险一金,办公室租金,其他的福利等。日薪是按照每月工作22.5天计算。

| 角色 | 月薪(万) | 企业支出(万) | 平均日薪(元) | 投入时间(天) | 支出(元) |
| 产品经理 | 1.5 | 2.1 | 933.3333333 | 10 | 9333.333333 |
| UI设计师 | 1.2 | 1.68 | 746.6666667 | 15 | 11200 |
| 安卓工程师 | 1.5 | 2.1 | 933.3333333 | 35 | 32666.66667 |
| ios工程师 | 1.5 | 2.1 | 933.3333333 | 35 | 32666.66667 |
| 前端工程师 | 1.5 | 2.1 | 933.3333333 | 35 | 32666.66667 |
| 后端工程师 | 1.5 | 2.1 | 933.3333333 | 45 | 42000 |
| 测试工程师 | 0.8 | 1.12 | 497.7777778 | 15 | 7466.666667 |

原生开发(不需要前端工程师)需要的总价大概为:13.5万

其他模式(不需要ios,android工程师)总计大概为:10.2万

一般来说,公司还会有一些其他方面的支出,比如说两个项目之间的间隔,推广营销方面的支出等等, 所以对于开发周期在2个月的项目来说,总价基本在12万-20万之间。

目前编写一款简单的手机应用APP一般用什么编程语言?

编写手机App,用什么语言?

从简单到复杂,可以分三级:

简单方案:HTML5

其实就是把网页封装成App。编程语言就是网页三件套:HTML+CSS+Javascript

有多种工具和框架,如Cordova, uni等等。

这种方式实现“App”最容易,且跨平台,对于iOS和Android做一套就行了。代价是功能弱,性能低,换句话说就是“卡”。

中等方案:原生跨平台框架

这类方案在iOS和Android之上自行实现一套原生框架。通用的Flutter, ReactNative都是流行的原生跨平台框架。适用于游戏的Cocos2D,Corona SDK也可以算在这一级里。

这类方案实现App难度中等,因为跨平台,一次开发,iOS和Android都能运行。功能和性能也是中等,比不上原生App,但比HTML5的又好很多。

复杂方案:原生开发

直接在iOS和Android上各自开发一套原生App。

iOS可以使用Objective C或Swift。

Android可以使用Java或Kotlin。

还是来一个图表吧,虽然简单,却很明了: