`
nisen
  • 浏览: 77647 次
  • 性别: Icon_minigender_1
  • 来自: 河北 石家庄
社区版块
存档分类
最新评论

Android中的java.*和javax.*包

阅读更多

下面正如我在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.*包

  1. java.awt.font  字体相关的类,你也可以添加自定义字体
  2. java.bean       bean处理相关的类
  3. io、nio、net、security、text、utils、sql、math。还有下面的子包,如反射、注解、zip压缩、log等,基本上就是Java Lite
  4. javax.crypto  加解密的
  5. javax.net和javax.net.ssl等网络处理相关
  6. javax.microedition.khronos.opengles和egl  --这两个包是肯定是关于OpenGL的,microedition是JavaME的包,这个应当是当时的权宜之计,出现于Level1中

  7. javax.security  安全相关
  8. javax.sql和javax.xml  这两个自然不用说了JDBC和XML处理  

为什么有这些包呢,我们如何使用这些包呢

     为什么有这些包,我们得从android的角度出发。现实是这个世界上有太多太多使用Java语言和核心类库开发的一些组件了,从阅读识别条形码、pdf、word文件解析到很多机构自定义的格式,各个行业和各个方面的应用,尤其是第三方类库,基本上你想到的都有了实现。这些都是Java的资产,如何能平滑的过渡到Android,很显然只要类库兼容就可以了。比如pdfbox是Java实现的解析pdf的工具,如果你想在Android上实现一个pdf阅读器,你可以直接使用pdfbox的一些实现。同样的如果在iphone上,你可能需要重新实现一遍。

 

   那么现在我们有如下几种API的使用策略

  1. Android自身的 (android.*)   ---需要学习成本,优先采用
  2. Java Lite ( java.*和javax.*)    ---对于Java程序员更加熟悉,次之使用
  3. 第三方包( 如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的读者学习。

 

分享到:
评论
2 楼 nisen 2010-07-16  
精辟不敢说,绝对原创。
1 楼 jinleix 2010-07-15  
老师的帖子一向精辟

相关推荐

    javax.annotation

    【标题】"javax.annotation"是Java编程语言中用于元编程的一个关键组件,它提供了一系列的注解(annotations),这些注解在编译时或运行时被处理,以增强代码的功能和安全性。在Java世界里,注解是一种强大的工具,...

    Unable to load class ‘javax.xml.bind.JAXBException‘(csdn).pdf

    在Android Studio中遇到"Unable to load class ‘javax.xml.bind.JAXBException‘"的错误,通常是由于Java运行时环境(JRE)或开发工具包(JDK)与项目的兼容性问题导致的。`javax.xml.bind.JAXBException`是Java的...

    Android使用JavaMail开发邮箱最新jar包集合

    本资源提供的"Android使用JavaMail开发邮箱最新jar包集合"包含了开发过程中所需的最新版本(1.6.0)的核心组件。 JavaMail API主要包括以下几个关键模块: 1. **javax.mail**:这是JavaMail的核心包,包含了发送和...

    Sun-Java.rar_JAVA培训

    9. **Java标准库**:覆盖了JDK中的一些重要包,如java.util、java.io、java.net、java.awt和javax.swing等,以及它们提供的常用类和接口。 10. **JVM内部机制**:可能涉及到类加载、内存管理(垃圾回收)、JVM性能...

    javax.activation-1.2.0-API文档-中文版.zip

    标签:sun、activation、javax、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...

    java.lang.ClassNotFoundException异常的解决1

    在Java 6、7和8中,Java平台的标准版(Java SE)包含了Java企业版(Java EE)的一些API,如JAXB(Java Architecture for XML Binding)。然而,从Java 9开始,为了实现模块化并提高系统的可维护性和安全性,Java EE...

    android4.jar

    1. **javax**:这部分通常包含了Java标准版(Java SE)的一些接口和类,比如Javax.net用于网络通信,Javax.crypto用于加密操作等。在Android中,由于安全和性能考虑,不是所有Java SE的API都支持,但这个包可能提供...

    ANDROID Java coding guide line

    ### ANDROID Java编码指南 #### 项目约定与编码标准 本文档旨在为Android开发人员提供一套规范化的Java编码指南,确保代码的一致性、可读性和可维护性。该指南覆盖了从包命名到注释格式等多个方面,适用于所有...

    javax.servlet-3.0.0.v201112011016-API文档-中文版.zip

    标签:eclipse、jetty、orbit、javax、servlet、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...

    android 4.0 source 源码

    3. **com**、**android**、**org**、**mock_android**、**java**、**javax**:这些是Java包结构,包含了Android系统的各个组件和库。 - **com.android**:这是Android框架的主要组成部分,包含了系统服务、UI框架、...

    android-2.2-src.zip

    10. **javax**:Java相关的库,可能包含了Java标准版(Java SE)的部分API实现,因为Android系统基于Dalvik虚拟机,但同时也支持一部分Java标准库。 总的来说,解压并分析“android-2.2-src.zip”将为开发者提供...

    JAVAX86 JAVA环境最新版

    本文件"JAVAX86.exe"很可能是Java Development Kit (JDK) 或 Java Runtime Environment (JRE) 的安装程序,用于在用户的电脑上安装和运行Java应用程序。 1. **Java JDK**: Java Development Kit是开发和运行Java...

    javax.sound.sampled

    java 库文件 javax.sound.jar

    21天学会java光盘电子教案(PPT).

    11. **Java标准库**:Java的标准库(java.*和javax.*包)包含大量预定义的类和接口,如String、ArrayList、HashMap等,这些是编写Java程序的基础。 12. **JDBC**:Java Database Connectivity (JDBC) 是Java访问...

    java实现电脑和Android蓝牙连接

    在Java SE中,我们可以使用`javax.bluetooth`包来实现蓝牙功能,而在Android中,我们需要使用`android.bluetooth`包。 **Java Bluetooth API基础:** 1. **设备发现:** 在Java中,`LocalDevice`类用于代表本地蓝牙...

    android2.0源码二

    6. **javax**:包含Java标准库的实现,如JAXB、JDBC等,这些在Android中可能被部分实现或者替换以适应移动环境。 7. **otherpackage**:非标准的包名,可能包含特定模块的源代码或者工具类。 8. **java**:通常...

    android-4.2-src.zip

    4. **javax**、**com**、**org**、**java**:这些目录代表了Java语言的包结构,包含了Android系统的API类库,如Android应用程序框架、UI工具包、网络通信、数据库操作等。 5. **junit**:JUnit是Java编程语言的一个...

    android_3.0_javasrc 源代码

    3. **com**、**android**、**org**、**javax**: 这些是Java的包结构,包含Android系统框架层的各类组件,如Activity、Intent、BroadcastReceiver等关键组件的源码,以及各种服务、工具类和接口。通过阅读这些源码,...

    Java游戏源码mario游戏.rar

    7. **声音播放**:Java提供了`javax.sound.sampled`包来处理音频播放,游戏中可能会包含背景音乐和音效。 8. **状态管理**:游戏有多个状态,如暂停、游戏进行中、游戏结束等,这些状态的管理需要良好的设计模式。 ...

    android4.0源代码

    6. **sun** 和 **javax**:这两个目录通常与Java的标准库有关,尽管Android不直接支持所有的Java SE API,但这里可能包含了一些Android为了兼容性实现的部分。 通过关联这个源代码到Eclipse或Android Studio,...

Global site tag (gtag.js) - Google Analytics