Android应用的几种开发方式
1、前言
自苹果 iOS 和谷歌 Android 操作系统发布以来,在互联网界就多了一个新名词:App(意为运行在智能移动终端上的第三方应用程序)。
*初的 App 有两种形式:一种是基于本地(操作系统)运行的 App,称之为原生App,或者Native App;一种是基于浏览器运行的 Web App,同样是安装在手机上。因为本地 App 位于平台层上方,向下访问和兼容的能力比较好一些,可以支持在线或离线,消息推送或本地资源访问,摄像、拨号功能的调取。但是由于设备碎片化,本地 App 的开发成本很高,维持多个版本的更新升级也很麻烦。
随着 HTML5 的出现,基于 HTML5 低成本跨平台开发优势又兼具本地 App 特质的混合模式移动应用( Hybrid App) 迅速兴起。它大幅降低了 App 的开发成本,可以通过现有应用商店模式发行,在用户桌面形成独立入口等等。 Hybrid App 已成为开发 App 不错的选择,是未来移动应用开发的趋势。
2、原生App的开发方法
以开发工具的不同来分类,原生 App 的开发方式有两种:Eclipse + ADT 和 Android Studio。
Eclipse + ADT
Eclipse + ADT 的开发方式是曾经Android开发者*好的选择,也是谷歌官方所支持的。但是2013的Google I/O 大会上,Google官方曝光一款新的开发工具 Android Studio,并在2014年底正式推出自家的IDE Android Studio1.0,2016年11月2日,Google Android Developer 官博发文,宣告停止对 Eclipse ADT 的支持。
由于现在市场上的书籍和视频教程,包括很多项目和源码*大多数都是基于 Eclipse + ADT 的,所以了解这种开发方式对于初学者是很必要的,便于更快的入门和转入 Android Studio的使用。(当然,有自信和自学能力强的人可以直接使用 Android Studio)
Eclipse + ADT 开发环境的搭建
Eclipse 是一个免费的、开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境,通过安装插件,可以用它开发 C/C++,Java,Python,Perl,Ruby,Android,PHP等。
Eclipse 的官方下载地址:http://www.eclipse.org/downloads/,其他下载站点百度一下即可。
Eclipse是免安装的,下载下来的一般是个压缩包,但是有Windows,Linux,Mac操作系统和32bit和64bit之分,根据自己的电脑选择对应的下载即可。
我们都知道,原生 App 是基于 Java 开发的,因此,在开发 Java 程序之前,必须先完成一些准备工作,也就是在计算机上安装并配置 Java 开发环境,即安装和配置 JDK。
JDK 的全称是 Java SE Development Kit,即Java 标准版开发包,是 Sun 公司提供的一套用于开发 Java 应用程序的开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括 Java编译器、Java运行时环境,以及常用的Java类库。
官方下载 JDK 的地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,类似于Eclipse,需要根据自己电脑的操作系统和位数选择对应的 JDK。
安装时需要选择 JDK 的安装路径,系统默认会安装在 C:\Program Files\Java 路径下,但是不推荐安装在有空格的路径下,这样可能导致一些未知的问题,建议直接安装在根路径下,例如 D:\Java\jdk1.8.0_112\。安装完成后,我们还要配置一下环境变量,此处只说明Windows操作系统下的配置过程:
点击左下角win窗口图标,右键点击计算机,或者直接右键桌面上的“计算机”图标,点击“属性”,进入了“控制面板\系统和安全\系统”窗口,单击该窗口左边栏的“高级系统设置”。
在“高级”Tab页里,单击“环境变量”按钮,进入环境变量对话框。
在下方的系统变量中,新建 变量名:JAVA_HOME,变量值:JDK安装路径,就是之前下载 JDK 后的安装路径,比如 D:\Java\jdk1.8.0_112。
找到变量 Path,点击编辑,在*后添加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;注意里面的每项都是用英文的分号;来隔开的,这个电脑已经有了,只是编辑,添加,不是新建。然后新建 变量名:CLASSPATH,变量值为 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;。(注意*前面有个.;)
这样 JDK 的环境变量就配置完成,打开Windows操作系统的命令行窗口(在“开始”菜单里运行cmd命令即可),在命令行中分别输入 java 和 javac 命令,如果得到的是 java 或 javac 的用法帮助信息,那么说明我们的环境变量配置成功了。
完成以上步骤,我们就可以开发J2SE的程序了,但是这里我们是要开发 Android App,所以我们还要安装 Android 在 Eclipse 上的插件 ADT ,它的全称是 Android Developer Tools Plug-in。现在,谷歌的官网上已经没有 ADT 的下载链接了,它会提示你用 Android Studio ,并将之前的项目迁移到 Android Studio 上,因此推荐大家采用离线安装的方式。
这里贴出一个国内的下载链接,里面提供了Android开发的所有工具下载。http://tools.android-studio.org/index.php。Eclipse离线安装 ADT 插件的方法可以参考如下百度经验:ADT离线安装教程。
Android SDK 的下载配置
SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,Android SDK 指的是Android专属的软件开发工具包。
它的官方下载地址是:https://developer.android.com/studio/index.html。但是,由于国内GFW的原因,外国的网站基本访问不了,我们只能在国内其他网站下载,这些资源还是非常容易找到的(由于在线下载的不稳定和不确定性,这里只说明离线下载配置的方法)。上面的链接已经有SDK的下载地址了,这里再贴两个另外的链接:http://www.cnblogs.com/bjzhanghao/archive/2012/11/14/android-platform-sdk-download-mirror.html,http://www.androiddevtools.cn/。每个版本都有两种类型的SDK,分别是exe和zip格式的(这里指Windows操作系统),即可执行安装程序的和免安装压缩包。SDK的安装或解压路径*好也是根路径,反正不要带有中文(安装国外的软件都要注意这点,这是个好的习惯,虽然不一定是强制性的)。
这里需要注意的是,无论通过哪种方式,下载的SDK都只是个工具而已,打开SDK的文件夹,里面的内容大致是这样的。(可能有细微区别)
这里可以看到一个可执行程序SDK Manager,顾名思义,它就是 SDK 的管理工具,双击它,会出现如下窗口。
Android操作系统的所有版本都在这里,需要哪个就下载哪个,然后点击右下角的install * packages,出现下面的窗口,点击要下载的package,选择accept,*后选择install即可安装。
这里值得一提的是,这种下载速度基本是龟速(如果不*的话),所以,强烈建议大家学会科学上网,哪怕花钱也好,试想,一个Android开发人员连Android官网都上不去的话,那是多么可怕的一件事!
这里,贴上一篇解决这个问题的文章(我没有试过,我一直在墙外),http://blog.csdn.net/freedom2028/article/details/6261810。
安装完成之后,为了在命令行窗口可以使用 Android SDK 的各种工具,建议将 Android SDK 目录下的 tools 子目录、 platform-tools 子目录添加到系统的PATH环境变量中。
*后,值得一提的是,如果你觉得上面的步骤太复杂,你也可以下载多合一下载包ADT Bundle,里面包含了:sdk + 特定版本platform + eclipse + adt + 兼容包,解压缩即可使用。
*个Hello World项目
双击打开Eclipse,出现如下的窗口,即指定工作空间的路径。自己建个文件夹即可或者使用默认设置。
打开后,点击File->New->Android Application Project,出现如下窗口。项目名称可以写为 HelloWorld,SDK根据自己下载的,选择要用的即可,theme选择none即可,然后一直点击next,直至finish即可,这样一个helloworld项目就建成了。
Android虚拟设备神器Genymotion
Android应用程序可以在虚拟机和真机上运行,真机测试很容易,Android手机通过USB线接上电脑,打开USB调试,在Eclipse里右键点击项目HelloWorld->Run as->Android Application,在设备选项里选择你的手机即可。
这里主要说明 AVD(Android Virtual Device)的使用,以上环境都完成了,你会看到Eclipse的工具栏里会有一个Android的图标,Android Virtual Device Manager在SDK Manager的旁边。
在这里,可以创建和管理Android 虚拟机,但是不用不知道,一用吓一跳,这里创建的Android 虚拟机启动慢的令人发指,少则十几分钟,多则无法估计(因为无法再等下去,直接停掉了),刚开始的时候我们会以为是自己电脑出了问题,其实不然,它本来就这么慢。
还好,我们有另一款使用非常容易也非常快的虚拟机Genymotion(一般启动在10s左右吧),它的官网是https://www.genymotion.com/,中文官网是http://www.genymotion.net/,它的使用教程可以参考百度经验http://jingyan.baidu.com/article/3ea51489e7d8bd52e61bba36.html。这里特别提醒一点,genymotion是基于Virtual box 运行的,如果安装之后,可以正常运行,就不要再更新了,它的更新提示直接忽略即可,不然可能导致无法使用了。
Eclipse还有个genymotion的插件,安装后可以在Eclipse中生成一个按钮,点击即可启动genymotion,上面图片上有,在SDK manager的左边(右边是AVD manager),因为可以先运行genymotion,之后运行Android程序,所以这里忽略。
运行HelloWorld
好了,所有工作都做完了,现在运行HelloWorld项目吧。
到这里,我们的HelloWorld也运行出来了,可能你也发现了,我们一句代码也没有写,没错,按照以上步骤,默认建立出来的就是这样一个HelloWorld项目,它显示的内容就是Hello world!
Android Studio
前面也说到了,Android Studio是Google官方推出的IDE,官网上这么说的“Android Studio 提供用于为各类 Android 设备构建应用的*快速的工具,利用世界一流的代码编辑、调试、性能工具、一套灵活的构建系统以及一套即时构建/部署系统,您可以专注于构建独特的高品质应用。”总之,Android Studio是非常强,也非常大的Android开发利器,学习它需要一定的时间,另外,运行AS对电脑的配置要求比较高,官方推荐win7以上操作系统,8GB RAM,*低屏幕分辨率:1280 x 800,这意味着一般的电脑根本跑不动。(那些非常强大的IDE一般都很大,运行条件都很苛刻,其实也可以理解)。
AS的官方下载地址是https://developer.android.com/studio/index.html,其他的下载地址有:http://tools.android-studio.org/index.php,http://www.cnblogs.com/bjzhanghao/archive/2012/11/14/android-platform-sdk-download-mirror.html,http://tools.android-studio.org/index.php/sdk/等,百度一下,你就知道。
AS的使用教程如下:http://www.open-open.com/lib/view/open1433387390635.html。
AS的视频教程如下:http://www.jikexueyuan.com/course/2531_1.html?ss=1。
2、Web App
什么是Web App?维基百科的解释是这样的:In computing, a web application or web app is a client–server software application in which the client (or user interface) runs in a web browser. Common web applications include webmail, online retail sales, online auctions, wikis, instant messaging services and many other functions.理解一下是这样的:Web App就是运行于网络和标准浏览器上,基于网页技术开发实现特定功能的应用,可以理解为一个触屏版的网站。不同于原生App,Web App 不是基于操作系统运行的,而是运行在浏览器里的,它的宿主是浏览器,它所需的资源一般都在网络上,因此,它不需要下载安装,但是使用它必须要联网。这类应用我们常用的有百度新闻,163邮箱,淘宝触屏版等。
因此,Web App 就是网页的开发,主要利用前端知识,诸如HTML5,CSS,JavaScript等。
知乎上推荐的一些较好的 Web App: https://www.zhihu.com/question/19727553。
3、Hybrid App
那么什么是 Hybrid App 呢?从字面意思理解就是混合的应用。没错,它就是前面两者的混合应用。
Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。
这三者涵盖了市场上所有的移动应用。它们的比较如下:
网络上有很多关于这三者的分析理解,摘录如下:
https://www.zhihu.com/question/23622875
http://www.uisdc.com/web-hybrid-native-app
http://baike.baidu.com/link?url=FANt8_qieZwhFjBxYrZd03alBIOhqqK41XhyScMS4aDKISIx5-ZN0GYR9wfDiLTjwWfBaJeoWKnRV7zcKmBhnjiyyCyKpy_b4KYEAJKhaeG
http://www.zhongkerd.com/news/content-1198.html
这里是开源中国社区整理的非常全面的121款手机Web开发框架:
http://www.oschina.net/project/tag/322/mobile-web?lang=0&os=0&sort=view&p=1
4、有趣的 App Inventor
App Inventor的设计目的就是为了让毫无编程经验的人(比如儿童)可以开发有趣的手机应用。App Inventor 原是Google实验室(Google Lab)的一个子计划,由一群Google工程师和勇于挑战的Google使用者共同参与设计完成。
由于GFW的原因,国内访问不了App Inventor的官网,无法在线编程(之前国内还有站点可以访问,但是现在未找到),它的官网是:http://appinventor.mit.edu/explore/。值得庆幸的是,App Inventor提供离线开发的方式,它的离线安装包可以在这里下载(这是我的百度网盘,失效请告知我):http://pan.baidu.com/s/1sldCqoX。
AI2离线包的安装使用说明可以参考:http://www.arduino.cn/thread-12392-1-1.html。安装完成后,使用时打开离线环境,在浏览器中输入127.0.0.1:8888(localhost:8888)就回进入登录页面,如下图
输入自己的账号,进入开发页面,如下图
这样就可以开发自己的应用了。