Android中的java.*和javax.*包

本文探讨了Android中使用的Java和javax.*包,详细列举了Harmony模块,并分析了这些包的应用场景及选择策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面正如我在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的读者学习。

 

### 如何在 Android 项目中添加 WebSocket 支持 要在 Android 项目中添加 WebSocket 支持,可以使用 Gradle 或 Maven 来管理依赖项。以下是具体的实现方式: #### 方法一:通过 Gradle 添加依赖 Gradle 是 Android 开发中最常用的构建工具之一。为了在 Android 项目中集成 WebSocket 功能,可以通过 `build.gradle` 文件引入相应的库。 以下是一个典型的配置示例: ```groovy dependencies { implementation 'org.java-websocket:Java-WebSocket:1.3.0' [^1] } ``` 将上述代码片段添加到项目的 `app/build.gradle` 文件中的 `dependencies` 部分即可完成 WebSocket 库的引入。 #### 方法二:通过 Maven 添加依赖 如果您的项目基于 Maven 进行构建,则可以在 `pom.xml` 中定义如下依赖关系: ```xml <dependency> <groupId>org.java-websocket</groupId> <artifactId>Java-WebSocket</artifactId> <version>1.3.0</version> </dependency> ``` 此方法适用于那些仍然采用 Maven 的旧版 Android 工程或者跨平台项目。 #### 注意事项 当您尝试将 Spring Boot WebSocket 结合使用时,在某些情况下可能会遇到打问题。例如,使用 IntelliJ IDEA 自带的 JAR 打功能可能导致运行时报错 `javax.websocket.server.ServerContainer not available` [^3]。这种现象通常是因为测试未通过而中断了构建流程。解决办法是切换至命令行模式并跳过单元测试阶段来重新执行打操作: ```bash mvn package -DskipTests ``` 对于纯 Android 环境而言,由于其架构设计上的差异,并不会直接受此类 Bug 影响;不过仍需注意版本兼容性设备性能等因素可能带来的额外挑战。 #### 示例代码展示基本连接逻辑 下面给出一段简单的 Java 实现用于演示如何创建一个基础客户端链接过程: ```java import org.java_websocket.client.WebSocketClient; import java.net.URI; public class SimpleWebSocketExample extends WebSocketClient { public SimpleWebSocketExample(URI serverUri) { super(serverUri); } @Override public void onOpen(ServerHandshake handshakedata) { System.out.println("Connected to Server"); } @Override public void onClose(int code, String reason, boolean remote) { System.out.println("Connection Closed:" + reason); } @Override public void onError(Exception ex) { ex.printStackTrace(); } @Override public void onMessage(String message) { System.out.println("Received Message From Server : " + message); } } // Usage Example: SimpleWebSocketExample client = new SimpleWebSocketExample(new URI("ws://echo.websocket.org")); client.connect(); ``` 以上即是在 Android Studio 内部设置以及调用 WebSockets API 的全过程概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值