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)就回进入登录页面,如下图
  
  输入自己的账号,进入开发页面,如下图
  
  这样就可以开发自己的应用了。
  这里是App Inventor的相关教程或论坛:
  http://www.17coding.net/,http://www.yzzyz.cn/,http://www.appinventor.tw/ai2,http://www.jianshu.com/p/2c61f43dee85?nomobile=yes ,http://www.appinventor.cn/
  

Android应用的几种开发方式相关推荐

  1. Android Intent的几种用法全面总结

    Android Intent的几种用法全面总结 Intent, 用法 Intent应该算是Android中特有的东西.你可以在Intent中指定程序要执行的动作(比如:view,edit,dial), ...

  2. 将Eclipse代码导入到Android Studio的两种方式

    转: http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0104/2259.html 说到使用Android Studio,除了新建 ...

  3. android java 多线程,Android多线程的四种方式

    当我们启动一个App的时候,Android系统会启动一个Linux Process,该Process包含一个Thread,称为UI Thread或Main Thread.通常一个应用的所有组件都运行在 ...

  4. android 定位的几种方式介绍

    [地理位置] android 定位的几种方式介绍 开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面 www.androidkaifa.com 总结了一下网络 ...

  5. Android常用的几种资源

    2019独角兽企业重金招聘Python工程师标准>>> Android常用的几种资源 一般资源都是放在res文件夹下的,res文件夹一般包含有values,drawable-ldpi ...

  6. Android 反射 换一种方式编程

    Android 反射-换一种方式编程 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/59109933 本文出自[赵彦军的博客] 上一 ...

  7. Chrome模拟手机浏览器(iOS/Android)的三种方法,亲测无误!

    各大网站都有推出自己的手机访问版本页面,不管是新闻类还是视频网站,我们在电脑是无法直接访问到手机网站的,比如我经常访问一个3g.qq.com这个手机站点,如果在电脑上直接打开它,则会跳转到其它页面,一 ...

  8. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider...

    ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...

  9. android数据的五种存储方式

    Android提供了5种方式存储数据 1 使用SharedPreferences存储数据 它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息. 其存储位置在/da ...

  10. android 那几种动画,Android 动画实现几种方案

    Android 动画实现几种方案 在 Android 的 FrameWork 中,为我们提供三种动画的实现方式:逐帧(Frame)动画.视图/补间动画(View Animation)和属性动画(Pro ...

最新文章

  1. Python第四章__装饰器、迭代器
  2. 没有什么是日本牛郎店做不到的......
  3. php curl exec ch,PHP curl_exec函数的用法实例详解
  4. mysql的粗略学习
  5. 吉他扒和弦 扒谱工具Riffstation
  6. qtcreator安装及配置
  7. 计算机怎么开启tftp服务器,win7电脑如何开启tftp服务器 电脑开启tftp服务器操作方法...
  8. Ubuntu安装mindoc
  9. 【HAVENT原创】CentOS 下 nginx 配置和启动
  10. 洛谷 P4173 残缺的字符串 (FFT)
  11. [三星6818]gpio模拟spi信号编写门禁卡识别模块驱动
  12. 大麦网滑块验证码自动识别
  13. 上海哪里打印比较便宜?
  14. 饥饿的小易(java)
  15. 第五章:量化研究专题(第四篇:统计套利:利用相关系数进行配对交易 )
  16. 至高心法 - SpringCloud Alibaba (二)Nacos 服务注册与配置中心
  17. python 游戏引擎 cocos2d_2.2 完成一个Cocos2d游戏程序代码
  18. 解密保存Mac版微信聊天记录的数据库文件并导出聊天记录
  19. C#使用EmguCV库(图像读取、显示、保存)(二)
  20. phd计算机考试,美国计算机PHD院校申请难度有多大?

热门文章

  1. JAVA音视频解决方案----JTT1078-2016文档梳理与一些难点梳理
  2. JTT 809-2019客户端与服务端协议开发
  3. 28张高清数据分析全知识地图,强烈建议收藏
  4. 拿大厂机器学习岗offer,吐血整理的面试秘籍!
  5. html插入视频快捷键代码,pr添加关键帧的快捷键是什么?
  6. linux设备驱动中的阻塞与非阻塞(二)
  7. 面试总结:给应届生一些找工作的基本建议,毕竟我踩坑多
  8. 施一公等团队登Science封面:AI与冷冻电镜揭示「原子级」NPC结构,生命科学突破...
  9. cad调了比例因子没反应_CAD教程:自由缩放命令的操作流程
  10. oracle 存储过程body,【随手记】Oracle存储过程报错 Compilation errors for PACKAGE BODY