// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Java ME 嵌入式和 Java Card 应用程序技术资源
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Java ME 嵌入式和 Java Card 应用程序技术资源 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Java ME 嵌入式和 Java Card 应用程序技术资源


== 什么是 Mobile 应用程序？ 

大多数 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台，该平台是为移动电话之类的小型设备开发的，但现在可用于多种设备。Java ME 使用向下扩展的 Java SE 组件、虚拟机和 API 所组成的子集。它也定义分别以客户移动设备和嵌入设备为目标的 API。NetBeans IDE 支持 link:http://www.oracle.com/us/technologies/java/embedded/micro-edition/overview/index.html[+Oracle Java ME 嵌入式+]和 link:http://www.oracle.com/technetwork/java/javame/javacard/overview/getstarted/index.html[+Java Card 平台+]。

== 入门指南

* link:../docs/javame/imp-ng.html[+创建、调试 Mobile 嵌入式应用程序并进行性能分析+]
* 《link:../docs/javame/java-card.html[+NetBeans Java Card 开发快速入门指南+]》

== 教程和文章

=== 开发 Java Card 应用程序

* link:../docs/javame/javacard.html[+Java Card 快速入门文章+]
* link:http://www.oracle.com/technetwork/articles/javase/javacard-servlets-136657.html[+在智能卡上部署 Servlet：具有 Java Card 3.0 的可移植 Web 服务器+]

== 截屏视频

* link:../docs/javame/nb_me8_screencast.html[+演示：NetBeans IDE 对 Java ME 8 的支持+]
* YouTube：link:http://youtu.be/_1PPSt2AwpM[+Java Micro Edition (ME) 8 简介+]（_作者：Terrence Bar_）
* link:../docs/javame/nb_mesdk_screencast.html[+演示：在 Windows 上设置 NetBeans IDE 以进行 Mobile 开发+]
* link:../docs/javame/imp-ng-screencast.html[+演示：NetBeans IDE 中的 IMP-NG 配置文件支持+]

== 社区提供的文档

* link:http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=11194[+安装适用于 NetBeans IDE 的 Blackberry RIM 插件+]
* link:http://nbandroid.org/wiki/index.php/Installation[+如何将 Android 插件安装到 NetBeans 中+]

== 其他资源

* link:http://wiki.netbeans.org/JavaMESDKSupport[+关于 Java ME SDK 支持的 NetBeans WiKi 页+]
* _适用于引用平台 (Raspberry Pi) 发行版 8 EA 2 的 Oracle® Java ME 嵌入式入门指南_中的link:http://docs.oracle.com/javame/config/cldc/rel/8/rpi/html/getstart_rpi/debugging.htm#sthref31[+将 NetBeans 与 Raspberry Pi Board 一起使用+]
* link:http://docs.oracle.com/javame/config/cldc/rel/3.3/win/gs/html/getstart_win32/setup_nbenv.htm[+ 将 Oracle Java ME SDK 软件与 NetBeans 一起使用+]
* _使用 NetBeans IDE 开发应用程序_中的link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG1552[+开发 Java ME 应用程序+]

=== NetBeans Mobility 社区资源 

* link:http://wiki.netbeans.org/NetBeansUserFAQ#Java_ME.2FMobility[+NetBeans Mobility 常见问题解答+]
* link:http://forums.netbeans.org/javame-users.html[+NetBeans Java ME 用户论坛+]

=== Java ME 相关站点

* link:http://www.oracle.com/technetwork/java/embedded/resources/me-embeddocs/index.html[+Java ME Embedded 文档+]
* link:http://www.oracle.com/technetwork/java/javame/index.html[+Oracle 技术网 - Java ME 登录页+]
