技术博文2016/10/11

【苏州APP开发】安卓Android和Java语言的异同、关系和区别

安卓Android和Java语言的异同、关系和区别,安卓Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。2011年第一季度,安卓在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,安卓占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。自google收购安卓之后,安卓开发者更是风生水起。安卓开发前景看好,安卓手机市场大卖,安卓应用人气火爆,安卓程序员也待遇渐长。所以,越来越多的大学生开始选择学习安卓,学习安卓倒是个好方向,可也不能盲目,首先要理解安卓的特点,明确自己的学习方向。那么学习安卓需要掌握些什么呢?

Java是现在人们热谈的话题,现在学习java的人也是越来越多。随着市场的需求,Java培训机构也是遍地开花,网络上的各种java教程也是大量出现,这足以让我们认识到java的火热程度。许多做安卓的程序员以前都是做JAVA的,甚至还有不少程序员是即做JAVA又做安卓,所以,如果想做安卓应用的话,不妨先学些JAVA.

安卓系统是基于linux为核心的,而linux是用c语言和少量汇编语言写成的,如果你想研究安卓,就去学c语言吧。现在大学里面和计算机相关的专业甚至理工类专业一般都会开设C语言课程,只是很多同学在大学期间并没有好好学习,如果对它掌握的不太好或者很久没用了,建议先从将其好好复习一下,将其基本的语法再好好回顾一下,最好能搭建一个环境来运行、调试它。如果没有学过,不妨也提前学习一下。

安卓上得应用大多是用java编写的,如果你想编写手机游戏和应用 ,就去学java吧。安卓应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的。 建议在安卓课程前期的java学习阶段中,需要用心的学好。

Java是现在人们热谈的话题,现在学习java的人也是越来越多。随着市场的需求,Java培训机构也是遍地开花,网络上的各种java教程也是大量出现,这足以让我们认识到java的火热程度。许多做安卓的程序员以前都是做JAVA的,甚至还有不少程序员是即做JAVA又做安卓,所以,如果想做安卓应用的话,不妨先学些JAVA.

Android 虽然使用Java语言 作为开发工具 ,但是在实际开发中发现,还是与Java SDK 有一些不同的地方。Android SDK引用了大部分的Java SDK,少数部分被Android SDK抛弃,比如说界面部分,java.awt package除了java.awt.font被引用外,其他都被抛弃,在Android平台开发中不能使用。将Java 游戏 移植到Android平台的过程中,Android  SDK与Java SDK的区别是很需要注意的地方。现将Android SDK中引用自Java SDK的package列举如下,并简要说明这些Java包的功能:

描述
java.awt.font 提供与字体相关的类和接口 。
java.beans 包含与开发 beans 有关的类,即基于  JavaBeansTM 架构 的组件 。
java.io 通过数据流、序列化和文件系统提供系统输入和输出。
java.lang 提供利用 Java 编程语言进行程序设计的基础类。
java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。
java.net 为实现网络应用程序提供类。
java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。
java.security 为安全 框架 提供类和接口。
java.sql 提供使用 JavaTM 编程语言访问并处理存储 在数据源(通常是一个关系数据库)中的数据的  API 。
java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。
java.util 包含集合框架、遗留的  collection 类、事件模型 、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。

Java扩展包

javax.crypto 为  cryptographic(加密)操作提供类和接口。
javax.microedition.khronos.egl
javax.microedition.khronos.opengles
                        Java Binding for the OpenGL ES(R) API
javax.net 提供用于网络应用程序的类。
javax.security.auth 此包提供用于进行身份验证 和授权的框架。
javax.security.auth.callback 此包提供与应用程序进行交互所必需的类,以便检索信息(例如,包括用户名和密码的身份验证数据)或显示信息(例如,错误和警告消息)。
javax.security.auth.login 此包提供可插入的身份验证框架。
javax.security.auth.x500 此包包含应该用来在 Subject 中存储 X500 Principal 和 X500 Private Crendentials 的类。
javax.security.cert 为公钥证书类。
javax.sql 为通过 JavaTM 编程语言进行服务器端数据源访问和处理提供 API。
javax.xml 根据 XML 规范定义核心 XML 常量和功能。

Android SDK引用了Java SDK  80%的package,这些package也是在实际开发中经常使用的,如果需要了解数据包的详细信息,请点击各个包的链接。

以下展示了Android SDK 中一些与网络有关的package。

Android  SDK 网络包

描述
java.net 提供与联网有关的类,包括流和数据包(datagram)sockets、Internet 协议和常见 HTTP 处理。该包是一个多功能网络资源。有经验的 Java 开发人员可以立即使用这个熟悉的包创建应用程序。
java.io 虽然没有提供显式的联网功能,但是仍然非常重要。该包中的类由其他 Java 包中提供的 socket 和连接使用。它们还用于与本地文件(在与网络进行交互时会经常出现)的交互。
java.nio 包含表示特定数据类型的缓冲区的类。适合用于两个基于 Java 语言的端点之间的通信。
org.apache.* 表示许多为 HTTP 通信提供精确控制和功能的包。可以将 Apache 视为流行的开源 Web 服务器。
android.net 除核心  java.net.* 类以外,包含额外的网络访问 socket。该包包括 URI 类,后者频繁用于 Android 应用程序开发,而不仅仅是传统的联网方面。
android.net.http 包含处理 SSL 证书的类。
android.net.wifi 包含在 Android 平台上管理有关 WiFi(802.11 无线 Ethernet)所有方面的类。并不是所有设备都配备了 WiFi 功能,特别是 Android 在 Motorola 和 LG 等手机制 造商的 “翻盖手机” 领域获得了成功。
android.telephony.gsm 包含用于管理和发送  SMS(文本)消息的类。一段时间后,可能会引入额外的包来来为非 GSM 网络提供类似的功能,比如 CDMA 或 android.telephony.cdma 等网络。

本文新浪博客