자바 플랫폼, 마이크로 에디션
Java Platform, Micro EditionJava 플랫폼 버전 |
---|
Java Platform, Micro Edition 또는 Java ME는 임베디드 및 모바일 장치(마이크로 컨트롤러, 센서, 게이트웨이, 휴대폰, 개인 디지털 보조 장치, TV 셋톱 박스, 프린터)를 위한 휴대용 코드 개발 및 배치를 위한 컴퓨팅 플랫폼이다.[1]자바 ME는 이전에는 Java 2 Platform, Micro Edition 또는 J2ME로 알려져 있었으며, 2006년 12월 22일 현재 자바 ME 소스 코드는 GNU General Public License에 따라 라이센스가 부여되어 있으며, 프로젝트명 phoneME로 발매되고 있다.
플랫폼은 객체 지향의 자바 프로그래밍 언어를 사용한다.자바 소프트웨어 플랫폼 계열의 일부다.Java ME는 2010년 Oracle Corporation이 인수한 Sun Microsystems에 의해 설계되었으며, 이 플랫폼은 유사한 기술인 PersonalJava를 대체했다.Java Community Process에서 JSR 68로 원래 개발되었던 Java ME의 다른 맛은 별도의 JSR에서 진화해 왔다.오라클은 규격의 참조 구현을 제공하지만, 자체적인 제공을 위해 제3자에게 의존하기보다는 모바일 장치에 대한 Java ME 런타임 환경의 무료 바이너리 구현을 제공하지 않는 경향이 있다.2008년 현재 모든 자바 ME 플랫폼은 현재 JRE 1.3 기능으로 제한되어 있으며, 해당 버전의 클래스 파일 형식(내부적으로 버전 47.0으로 알려져 있음)을 사용하고 있다.Oracle이 JRE 1.5 또는 1.6(일반적으로)에 해당하는 것과 같은 후기 클래스 파일 형식과 언어 기능을 지원하는 새로운 Java ME 구성 버전을 선언할 경우, JRE를 업데이트하기 위해 모든 플랫폼 공급업체의 추가 작업이 필요할 것이다.[speculation?]
Java ME 장치는 프로필을 구현한다.그 중 가장 흔한 것이 휴대전화와 같은 모바일 기기를 겨냥한 모바일 정보기기 프로필과 셋톱박스, PDA와 같은 소비자 제품과 임베디드 기기를 겨냥한 개인 프로필이다.프로필은 구성의 하위 집합이며, 현재 CLDC(연결 제한 장치 구성)와 CDC(연결 장치 구성)[2]의 두 가지가 있다.
자바 ME 지원 휴대전화와 PDA는 21억개가 넘는다.[3][when?]노키아 시리즈 40과 같은 200달러 이하의 기기에서 인기가 있었다.바다 운영체제, 심비안 OS에서도 토종 소프트웨어와 함께 사용됐다.Windows CE, Windows Mobile, Maemo, MeeGo 및 Android 사용자는 각각의 환경에 맞는 Java ME(안드로이드용 Proof-of-Concept)를 다운로드할 수 있다.[4][5]
연결된 제한된 장치 구성
CLDC(Connected Limited Device Configuration)는 Java급 라이브러리의 엄격한 하위 집합을 포함하며, Java 가상 시스템이 작동하는 데 필요한 최소 양이다.CLDC는 기본적으로 무수한 장치를 고정된 구성으로 분류하는 데 사용된다.
구성은 J2ME 환경의 각 구현에 있어야 하는 가장 기본적인 라이브러리 및 가상 머신 기능 집합을 제공한다.하나 이상의 프로필과 결합될 때, Connected Limited Device Configuration은 개발자들에게 소비자 및 임베디드 장치를 위한 애플리케이션을 만들 수 있는 견고한 Java 플랫폼을 제공한다.이 구성은 자바 플랫폼에서 사용할 수 있는 최소 160KB의 ROM과 32KB의 RAM을 가진 총 메모리가 160KB에서 512KB인 장치를 위해 설계되었다.
모바일 정보 장치 프로필
휴대 전화용으로 설계된 모바일 정보 단말기 프로필에는 GUI와 데이터 스토리지 API가, MIDP 2.0에는 기본 2D 게임 API가 포함되어 있다.이 프로필을 위해 작성된 응용 프로그램을 MIDlets라고 한다.거의 모든 새로운 휴대폰은 MIDP 구현과 함께 제공되며, 그것은 현재 다운로드 가능한 휴대폰 게임의 사실상의 표준이 되었다.그러나, 많은 휴대폰들은 특히 북미 지역에서 통신사에 의해 승인된 MIDlet만 작동할 수 있다.[citation needed]
JSR 271: 모바일 정보기기 프로파일 3(2009년 12월 9일 최종 출시)은 3세대 모바일 정보기기 프로파일(MIDP3)을 명시하여 기기 간 상호운용성 향상뿐만 아니라 모든 영역에서 기능을 확장하였다.MIDP3의 핵심 설계 목표는 MIDP2 콘텐츠와의 역호환성이다.
정보 모듈 프로파일
IMP(Information Module Profile)는 자동판매기, 산업용 임베디드 애플리케이션, 보안 시스템 및 디스플레이가 단순하거나 아예 없고 네트워크 연결이 제한된 유사한 장치와 같은 내장형 "헤드리스" 장치에 대한 프로파일이다.
원래 Siemens Mobile과 Nokia가 JSR-195로 소개한 IMF 1.0은 사용자 인터페이스 API를 포함하지 않는다는 점을 제외하고 MIDP 1.0의 엄격한 하위 집합이다. 즉, Java 패키지에 대한 지원을 포함하지 않는다.javax.microedition.lcdui
.IMP-NG라고도 하는 JSR-228은 MIDP 2.0의 새로운 보안 및 네트워킹 유형과 API를 활용하여 MIDP 2.0을 기반으로 하는 IMP의 차세대 제품이며, 다음과 같은 API를 활용한다.PushRegistry
그리고platformRequest()
그러나 다시 말하지만 UI API도, 게임 API도 포함하지 않는다.
연결된 장치 구성
연결된 장치 구성은 Java SE의 하위 집합으로, GUI와 관련이 없는 거의 모든 라이브러리를 포함하고 있다.그것은 CLDC보다 더 풍부하다.
기초 프로파일
기본 프로필은 Java ME 연결 장치 구성(CDC) 프로필이다.이 프로파일은 전체 Java Platform, Standard Edition API를 포함하여 Java 가상 머신을 완전히 구현해야 하는 디바이스에 의해 사용되도록 의도되었다.일반적인 구현에서는 지원되는 추가 프로파일에 따라 해당 API 집합의 일부 하위 집합을 사용한다.이 규격은 자바 커뮤니티 프로세스에 따라 개발되었다.
개인 기본 프로필
개인 기본 프로파일은 AWT 하위 집합 형태의 경량 GUI 지원을 포함하도록 기본 프로파일을 확장한다.BD-J가 구축된 플랫폼이다.
구현
Sun은 MIDP와 CDC를 위해 이러한 구성과 프로파일의 참조 구현을 제공한다.JavaME 3.0 SDK를 시작으로 NetBeans 기반 IDE가 단일 IDE에서 이들을 지원한다.
Sun이 서버 및 워크스테이션용으로 구축한 Java Platform의 수많은 바이너리 구현과는 대조적으로, Sun은 Java ME 대상 플랫폼에 대해 어떠한 바이너리도 제공하지 않고 Palm OS용 MIDP 1.0 JRE(JVM)를 예외로 한다.[6]Sun은 "캡틴 아메리카"[7]라는 코드명으로 알려진 PersonalJava의 내부 구현에 대한 소문을 퍼뜨리기 위한 공개 캠페인에도 불구하고 Microsoft Windows Mobile(Pocket PC) 기반 장치에 J2ME JRE를 제공하지 않는다.타사 구현은 Windows Mobile 공급업체에서 널리 사용된다.
자바 ME를 대상으로 한 운영체제는 도코모가 도자 형태로, 사바제가 사바제 OS로 구현했다.후자는 2007년 4월 선사가 인수해 현재 선사의 자바FX모바일(JavaFX Mobile)의 기반이 되고 있다.
오픈소스 Mika VM는 JavaME CDC/FP의 구현을 목표로 하고 있지만, 이와 같이 인증되지 않았다(인증된 구현은 로열티를 부과하기 위해 필요하며, 오픈소스 프로젝트에서는 비실용적이다).따라서 이 구현을 사용하는 기기는 JavaME CDC 호환성을 주장할 수 없다.
리눅스 기반의 안드로이드 운영체제는 의도는 비슷하지만 자바 Me와는 여러 면에서 매우 다른 독점 버전의 자바를 사용한다.[8]
JSR(Java 사양 요청)
파운데이션
JSR # | 이름 | 설명 |
---|---|---|
68 | J2ME 플랫폼 규격 | |
30 | CLDC 1.x | |
37 | MIDP 1.0 | |
118 | MIDP 2.x | |
139 | CLDC 1.1 | |
271 | MIDP 3.0 | Java ME 3.4 및 이전 버전만 해당, 휴대 전화의 마지막 사양, Java SE 1.3으로서의 Java 언어 기능 |
360 | CLDC 8 | Java ME 8의 새로운 기능 |
361 | MEEP 8 | Java ME 8, Internet of Everything 장치용 언어 기능 Java SE 8 |
주 확장자
JSR # | 이름 | 설명 | MSA |
---|---|---|---|
75 | 파일 연결 및 PIM API | 파일 시스템, 연락처, 일정관리, 작업관리 | |
82 | 블루투스 | 블루투스 직렬 포트 통신 및 파일 교환(OBEX) | |
120 | WMA(Wireless Messaging API) | ||
135 | MMAPI(Mobile Media API) | 오디오, 비디오, 멀티미디어 | |
172 | 웹 서비스 API | XML 파서 및 RPC | |
177 | SATSA(Security and Trust Services API) | APDU, Java Card RMI(JCRMI), PKI(Public Key Infrastructure) 및 암호화 | |
179 | 위치 API | GPS 좌표, 거리 주소, 방향 센서, 랜드마크 스토어 | |
180 | SIP API | ||
184 | 모바일 3D 그래픽(M3G) | 하이 레벨 3D 그래픽 | |
185 | Java Technology for the Wireless Industry(JTWI) | 일반 | |
205 | WMA(Wireless Messaging API) 2.0 | SMS 및 MMS 송수신 | |
211 | 컨텐츠 처리기 API(CHAPI) | ||
226 | 확장 가능한 2D Vector Graphics API for J2ME(M2G) | SVG Tiny 취급 | |
228 | 정보 모듈 프로파일 – 차세대(IMP NG) | ||
229 | 결제 API | ||
234 | 고급 멀티미디어 보조 시스템(AMMS) | MMAPI 확장 | |
238 | 모바일 국제화 API | 지역화된 리소스, 로캘 날짜 및 번호 형식, 문자열의 로캘 비교 | |
239 | OpenGL ES API용 Java 바인딩 | ||
248 | 모바일 서비스 아키텍처(MSA) | ||
253 | 모바일 전화 API | ||
256 | 모바일 센서 API | 가속도계, 자이로스코프, 나침반, 온도계, 기압계 등의 판독값 | |
257 | 비접촉식 통신 API | ||
258 | 모바일 사용자 인터페이스 사용자 지정 API | ||
272 | 휴대용 단말기를 위한 모바일 방송 서비스 API | ||
280 | 자바 ME용 XML API | ||
281 | IMS 서비스 API | ||
287 | Java ME용 확장 가능한 2D Vector Graphics API 2.0 | ||
293 | 위치 API 2.0 | ||
298 | Java ME용 텔레매틱스 API | ||
300 | Java ME용 DRM API | ||
325 | IMS 통신 활성화 도구 |
미래
JSR # | 이름 | 설명 |
---|---|---|
297 | M3G(Mobile 3D Graphics API) 2.0 |
ESR
ESR 컨소시엄은 임베디드 자바 표준에 전념한다.특히 비용 효율적인 표준.대표적인 애플리케이션 영역은 산업 제어, 기계 대 기계, 의료, 전자 미터링, 가정 자동화, 소비자, 기계 대 기계 인터페이스, ...
ESR # | 이름 | 설명 |
---|---|---|
001 | B-ON(CLDC를 넘어) | B-ON은 임베디드 자바 소프트웨어를 구현하기 위한 매우 강력한 기반 역할을 한다.Java 기기의 신뢰성 있는 초기화 단계와 불변, 불멸, 일반(절대) 객체 등 3종류의 객체를 지정한다. |
002 | 마이크로UI | MicroUI는 임베디드 HMI 장치를 위한 개방형 타사 애플리케이션 개발 환경을 가능하게 하는 향상된 아키텍처를 정의한다.그러한 장치들은 일반적으로 어떤 형태의 디스플레이, 어떤 입력 센서, 그리고 잠재적으로 어떤 소리 렌더링 기능을 가지고 있다.이 규격은 잠재적으로 광범위한 장치에 걸쳐 있다. |
011 | MWT | MWT는 다음과 같은 세 가지 역할을 정의한다.위젯 설계자, 룩 앤 필 설계자 및 애플리케이션 설계자.MWT는 호환 MWT 프레임워크(임베디드 장치, 휴대폰, 셋톱 박스 TV, PC 등)를 제공하는 모든 장치에서 바이너리 HMI 애플리케이션을 동일한 방식으로 실행함으로써 제품군(ME, SE, EE) 전체에 걸쳐 애플리케이션의 진정한 일관성과 편재성을 보장한다. |
015 | ECLASSPATH | ECLASSPATH는 CLDC, CDC, Foundation, SE 및 EE 실행 환경을 약 300 클래스 API 집합으로 통합한다.CLDC1.1/ECLASSPATH에 대해 컴파일하면 모든 Java 실행 환경에서 바이너리 코드를 휴대할 수 있다. |
참고 항목
참조
- ^ "Java ME Overview". Oracle Corporation. Retrieved February 26, 2017.
- ^ 자바 ME 테크놀로지
- ^ Java 정보
- ^ Windows CE, Windows Mobile 및 Android용 phoneME(2011-06-15년 개발 중지) - 여기에서 시작됨
- ^ "App Runner (development stopped in 2010-05-11)". Archived from the original on January 3, 2012. Retrieved August 5, 2012.
- ^ Palm OS 1.0용 MIDP: 2002년 1월 Palm OS 기기용 Java 애플리케이션 개발
- ^ CDC 및 개인 프로필 - SUN에 보내는 편지를 열어 Pocket PC용 Personal Java JRE 2003을 생성하십시오.
- ^ 모바일 애플리케이션 개발: 2013년 2월 J2ME 대비 Android
- 메모들
- JSR 232: 모바일 운영 관리 – 모바일 컴퓨팅을 위한 첨단 OSGi 기술 기반 플랫폼
- JSR 291: Java SE를 위한 동적 구성요소 지원 – Java SE에서 Java ME JSR 232까지의 대칭 프로그래밍 모델
참고 문헌 목록
- Ben Hayun, Roy (March 30, 2009). Java ME on Symbian OS: Inside the Smartphone Model (1st ed.). Wiley. p. 482. ISBN 0-470-74318-2.
- Knudsen, Jonathan (January 8, 2008). Kicking Butt with MIDP and MSA: Creating Great Mobile Applications (1st ed.). Prentice Hall. p. 432. ISBN 0-321-46342-0.
- Li, Sing; Knudsen, Jonathan (April 25, 2005). Beginning J2ME: From Novice to Professional (3rd ed.). Apress. p. 480. ISBN 1-59059-479-7.
외부 링크
Wikibooks는 J2ME 프로그래밍이라는 주제에 관한 책을 가지고 있다. |