下面正如我在Java的分裂
写到的Android使用了很多java.*和javax.*的包。到底用了多少呢,如果你有兴趣可以下载Android的源代码。
在晓峰的blog上看到他2007年发表的文章
,写了他发现的Android使用的一些Harmony中的模块,这里写出所有模块:annotation、archive、auth、crypto、instrument、kernel、logging、luni、math、misc、nio、niochar、prefs、security、sound、sql、text、xnet
所有的Java和javax.*包
- java.awt.font 字体相关的类,你也可以添加自定义字体
- java.bean bean处理相关的类
- io、nio、net、security、text、utils、sql、math。还有下面的子包,如反射、注解、zip压缩、log等,基本上就是Java Lite
- javax.crypto 加解密的
- javax.net和javax.net.ssl等网络处理相关
-
javax.microedition.khronos.opengles和egl --这两个包是肯定是关于OpenGL的,microedition是JavaME的包,这个应当是当时的权宜之计,出现于Level1中
- javax.security 安全相关
- javax.sql和javax.xml 这两个自然不用说了JDBC和XML处理
为什么有这些包呢,我们如何使用这些包呢
为什么有这些包,我们得从android的角度出发。现实是这个世界上有太多太多使用Java语言和核心类库开发的一些组件了,从阅读识别条形码、pdf、word文件解析到很多机构自定义的格式,各个行业和各个方面的应用,尤其是第三方类库,基本上你想到的都有了实现。这些都是Java的资产,如何能平滑的过渡到Android,很显然只要类库兼容就可以了。比如pdfbox是Java实现的解析pdf的工具,如果你想在Android上实现一个pdf阅读器,你可以直接使用pdfbox的一些实现。同样的如果在iphone上,你可能需要重新实现一遍。
那么现在我们有如下几种API的使用策略
- Android自身的 (android.*) ---需要学习成本,优先采用
- Java Lite ( java.*和javax.*) ---对于Java程序员更加熟悉,次之使用
- 第三方包( 如pdfbox) ---因为可能存在兼容性等问题,更次之
选择API的两个例子
下面我举一个例子,比如对于日志有如下选择:android.util.Log,commons logging,log4j等选择。Log属于自身API,所以如果开发一个Android上的优先考虑Log。如果你正在开发一个如pdfbox的跨Android和Java的组件,可以考虑使用commons logging。
另一个例子。如果你正在考虑动画和游戏,Java Lite的线程(或定时器) 还是 android.view.animation你应当选择animation。因为内置的更好,虽然有学习成本,但是效率更好。如果你正在开发一个游戏框架或者JavaME的模拟器,选择concurrent方式可能更好。
经过两天我对Android的API的地图算是了解清楚了。下一步我将针对每个api包单独学习,同时将使用引导读文档的方式指导我Blog的读者学习。
分享到:
相关推荐
在Android Studio中遇到"Unable to load class ‘javax.xml.bind.JAXBException‘"的错误,通常是由于Java运行时环境(JRE)或开发工具包(JDK)与项目的兼容性问题导致的。`javax.xml.bind.JAXBException`是Java的...
本资源提供的"Android使用JavaMail开发邮箱最新jar包集合"包含了开发过程中所需的最新版本(1.6.0)的核心组件。 JavaMail API主要包括以下几个关键模块: 1. **javax.mail**:这是JavaMail的核心包,包含了发送和...
9. **Java标准库**:覆盖了JDK中的一些重要包,如java.util、java.io、java.net、java.awt和javax.swing等,以及它们提供的常用类和接口。 10. **JVM内部机制**:可能涉及到类加载、内存管理(垃圾回收)、JVM性能...
标签:sun、activation、javax、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
在Java 6、7和8中,Java平台的标准版(Java SE)包含了Java企业版(Java EE)的一些API,如JAXB(Java Architecture for XML Binding)。然而,从Java 9开始,为了实现模块化并提高系统的可维护性和安全性,Java EE...
1. **javax**:这部分通常包含了Java标准版(Java SE)的一些接口和类,比如Javax.net用于网络通信,Javax.crypto用于加密操作等。在Android中,由于安全和性能考虑,不是所有Java SE的API都支持,但这个包可能提供...
### ANDROID Java编码指南 #### 项目约定与编码标准 本文档旨在为Android开发人员提供一套规范化的Java编码指南,确保代码的一致性、可读性和可维护性。该指南覆盖了从包命名到注释格式等多个方面,适用于所有...
标签:eclipse、jetty、orbit、javax、servlet、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...
3. **com**、**android**、**org**、**mock_android**、**java**、**javax**:这些是Java包结构,包含了Android系统的各个组件和库。 - **com.android**:这是Android框架的主要组成部分,包含了系统服务、UI框架、...
10. **javax**:Java相关的库,可能包含了Java标准版(Java SE)的部分API实现,因为Android系统基于Dalvik虚拟机,但同时也支持一部分Java标准库。 总的来说,解压并分析“android-2.2-src.zip”将为开发者提供...
本文件"JAVAX86.exe"很可能是Java Development Kit (JDK) 或 Java Runtime Environment (JRE) 的安装程序,用于在用户的电脑上安装和运行Java应用程序。 1. **Java JDK**: Java Development Kit是开发和运行Java...
11. **Java标准库**:Java的标准库(java.*和javax.*包)包含大量预定义的类和接口,如String、ArrayList、HashMap等,这些是编写Java程序的基础。 12. **JDBC**:Java Database Connectivity (JDBC) 是Java访问...
在Java SE中,我们可以使用`javax.bluetooth`包来实现蓝牙功能,而在Android中,我们需要使用`android.bluetooth`包。 **Java Bluetooth API基础:** 1. **设备发现:** 在Java中,`LocalDevice`类用于代表本地蓝牙...
6. **javax**:包含Java标准库的实现,如JAXB、JDBC等,这些在Android中可能被部分实现或者替换以适应移动环境。 7. **otherpackage**:非标准的包名,可能包含特定模块的源代码或者工具类。 8. **java**:通常...
4. **javax**、**com**、**org**、**java**:这些目录代表了Java语言的包结构,包含了Android系统的API类库,如Android应用程序框架、UI工具包、网络通信、数据库操作等。 5. **junit**:JUnit是Java编程语言的一个...
3. **com**、**android**、**org**、**javax**: 这些是Java的包结构,包含Android系统框架层的各类组件,如Activity、Intent、BroadcastReceiver等关键组件的源码,以及各种服务、工具类和接口。通过阅读这些源码,...
7. **声音播放**:Java提供了`javax.sound.sampled`包来处理音频播放,游戏中可能会包含背景音乐和音效。 8. **状态管理**:游戏有多个状态,如暂停、游戏进行中、游戏结束等,这些状态的管理需要良好的设计模式。 ...
java 库文件 javax.sound.jar
6. **sun** 和 **javax**:这两个目录通常与Java的标准库有关,尽管Android不直接支持所有的Java SE API,但这里可能包含了一些Android为了兼容性实现的部分。 通过关联这个源代码到Eclipse或Android Studio,...