Java java지도 시간 J2ME 프로그램 개발에 대한 포괄적인 기본 설명 요약(1)

J2ME 프로그램 개발에 대한 포괄적인 기본 설명 요약(1)

Dec 20, 2016 pm 01:26 PM

1. J2ME에 필요한 기본 Java 지식

이제 대부분의 사람들은 J2ME를 처음부터 배우게 됩니다. J2ME를 배울 때 항상 Java의 기본부터 시작하고 이제는 Java 기본 책이 모두 J2SE를 사용한다고 이야기합니다. J2ME에서 사용되는 기본 Java 지식과 불필요한 Java 지식에 대해 간략하게 설명합니다.
 
J2ME에서 사용되는 Java 기본 지식:
1. Java 구문 기본: 기본 데이터 유형, 키워드, 연산자 등을 포함합니다.
2. 객체지향적 사고: 클래스와 객체의 개념, 상속과 다형성 등
3. 예외 처리
4. 멀티스레딩

J2ME에서 사용되지 않는 기본 Java 지식:
1. JDK에서 javac 및 java 명령 사용
2. Java 기본 다수 의 클래스를 J2ME에서 사용할 수 없거나 클래스의 메소드가 크게 간소화되었습니다. 따라서 J2ME의 클래스 라이브러리에 익숙해지는 것이 좋습니다.
3. J2ME에서는 Applet, AWT, Swing에 대한 지식을 전혀 사용할 수 없습니다.
 
간단히 말해서, J2ME를 배우고 있는 친구들이 일부 우회를 피하고 부족한 점을 모두가 적극적으로 교정하고 보완해 주시길 바랍니다.
 
 2. 현재 J2ME에서 완료할 수 없는 기능

현재 J2ME에서 완료할 수 없는 기능을 나열해 보세요.
1. 이식 휴대폰의 코드를 변경하지 않고 주로 게임을 말합니다.
2. 버튼 텍스트를 동적으로 수정합니다.
3. Canvas에서 중국어 입력을 수락합니다.
4. 주소록, 수신 문자 메시지 등 로컬 리소스를 조작합니다.
5. 파괴적인 휴대폰 바이러스를 만듭니다.
6. 다른 사람들은 모두가 추가되기를 기다리고 있습니다.
 
 3. J2ME의 크로스 플랫폼 특성
 
 J2ME 기술은 Java에서 유래했기 때문에 JVM의 장점도 가지고 있으며 Java를 지원하는 플랫폼에 이식할 수 있습니다. 기술은 크로스 플랫폼이지만 그 이유를 간략하게 살펴 보겠습니다.
1. 휴대폰의 화면 크기가 다릅니다.
이는 주로 인터페이스 제작에 있습니다.
 
고급 사용자 인터페이스를 사용하는 경우, 예를 들어 애플리케이션 개발이나 사용자 로그인, 사용자 등록 등의 일반적인 기능을 수행하는 경우 일반적으로 문제가 없습니다.
 
게임을 만드는 등 낮은 수준의 사용자 인터페이스를 사용하는 경우 이 문제를 고려해야 합니다.
 
 2. 제조사의 확장 API가 일률적이지 않습니다:
예를 들어 Nokia의 확장 API 클래스 라이브러리 UI 시리즈는 다른 휴대폰에서는 구현되지 않거나 패키지 이름이 다를 수 있습니다.
 
 3. 휴대폰 플랫폼에 구현된 버그:
예를 들어 Nokia의 7650에는 이중 버퍼링을 구현하는 데 버그가 있어서 이 모델에서 실행되는 소프트웨어는 이중 버퍼링을 사용할 수 없습니다. NOKIA의 다른 버그에 대해서는 다음을 참조하세요: http://blog.csdn.net/Mailbomb/archive/2005/03/24/329123.aspx
 
 4. 휴대폰 성능 문제.
휴대폰마다 사용 가능한 메모리 및 최대 jar 파일에 대한 요구 사항이 있습니다. 예를 들어 대부분의 Nokia S40 휴대폰은 최대 64K의 jar 파일과 210K의 최대 사용 가능한 콘텐츠를 지원합니다.
 
따라서 현재 휴대폰 소프트웨어, 특히 게임에서는 지원되는 모델 목록을 제공하고 있으며 이것이 모바일 게임 이식자가 있는 이유입니다.
 
IV. J2ME를 배우고 할 수 있는 직업
 
요즘 J2ME 기술이 꽤 인기가 있다고 할 수 있습니다.
 
1. J2ME 게임 개발자
게임 계획이나 문서 요구 사항에 따라 특정 모델(주로 Nokia S40 또는 S60)에서 게임 프로그램을 개발합니다.
현재 대부분의 J2ME 프로그래머가 종사하고 있는 직업입니다.
 
고급 사용자 인터페이스, 저급 사용자 인터페이스, 스레드에 능숙해야 하며, 온라인 게임인 경우 네트워크 프로그래밍에도 능숙해야 합니다.
 
 2. J2ME 애플리케이션 개발자
현재 모바일 애플리케이션은 많지 않지만, 특히 모바일 포지셔닝 및 모바일 상거래와 관련된 콘텐츠가 여전히 있습니다.
 
고급 사용자 인터페이스, 스레딩 및 네트워크 프로그래밍에 대한 숙련도가 필요합니다.
 
 3. J2ME 게임 포터스
한 플랫폼에서 실행할 수 있는 게임을 다른 플랫폼에 이식하는 소스코드를 참고하세요. 예를 들어 Nokia S40 게임을 S60으로 포팅하거나 Sony Ericsson의 T618 등을 포팅합니다.
 
 주로 화면 좌표를 제어하며 일부 API를 대체해야 할 수도 있습니다.
 
다양한 플랫폼 간의 차이점과 화면 크기, 최대 jar 파일 크기 등과 같은 관련 기술 매개변수를 잘 알고 있어야 합니다.
 
 5. J2ME 프로그래밍의 여러 원칙
 
 1. 객체 지향 프로그래밍을 사용합니다.
프로세스 지향 프로그래밍을 사용하면 파일 크기를 줄일 수 있지만 향후 유지 관리 및 확장의 편의를 위해 객체 지향 프로그래밍을 계속 사용해야 합니다.
 
 2. MVC 패턴을 사용하여
 모델, 인터페이스, 컨트롤을 분리합니다. 요즘은 이 세 가지를 하나로 합치는 프로그램이 많지만, 작업 중인 프로그램의 규모가 비교적 크다면 그래도 분리해서 사용하는 것이 좋습니다.
 
 3. 사용자 설정 자동 저장
RMS를 사용하여 사용자가 입력한 마지막 사용자 이름과 비밀번호, 사용자의 시스템 설정 등과 같은 사용자 정보를 저장합니다. 이는 사용자 입력을 줄일 뿐만 아니라 사용자 친화적입니다. 많은 프로그램에서는 자동 로그인 등도 수행합니다.
 
 4. 일부 시스템 설정에서는 사용자가 시스템을 닫을 수 있습니다. 배경 음악, 배경 조명 표시 등
 
 5. 하위 수준 사용자 인터페이스 그리기 작업을 별도의 스레드에 배치합니다.
 
 6. 완료하는 데 시간이 많이 걸리는 작업을 수행할 때는 사용자에게 대기 인터페이스를 제공합니다.
 
 6. 시뮬레이터부터 실제 머신 테스팅까지
 
 J2ME 개발자들에게 시뮬레이터는 시뮬레이터에서 프로그램을 디버깅하는 등 많은 편리함을 가져다 주었고 매우 편리함 프로그램의 효과를 확인 , 그러나 시뮬레이터는 시뮬레이터 구현의 버그 등과 같은 몇 가지 문제도 가져오기 때문에 실제 기계 테스트가 필요합니다.
 
 1. 왜 실제 기계 테스트를 수행해야 합니까?
시뮬레이터 프로그램에는 버그가 있을 수 있고 실제 기계의 성능이 제한적이므로 실제 기계 테스트를 수행해야 합니다.
 
 2. 프로그램을 기계에 어떻게 옮기나요?
프로그램을 기계로 전송하는 방법은 다음과 같습니다.
a) OTA 다운로드

b) 데이터 케이블 전송 사용

c) 적외선 전송

d) 블루투스
조건에 따라 적절한 방법을 선택하실 수 있습니다.
 
 3. 실제 기계 테스트에서는 주로 무엇을 측정하나요?
실제 기계 테스트가 많이 있는데 주로 다음과 같은 측면을 테스트합니다.
a) 프로그램의 기능

b) 프로그램의 조작성, 조작이 쉬운지 여부

c) 프로그램 크기, 예를 들어 대부분의 Nokia S40 시리즈 휴대폰에서 허용되는 최대 파일 크기는 64K입니다
 
 d) 프로그램 실행 속도, 속도가 견딜 수 있는지 여부.
 
VII. WTK에서 제조사 SDK까지

J2ME 매니아라면 기본적으로 모두가 SUN의 WTK(J2ME Wireless Toolkit)로 시작하지만, 실제 응용에서는 WTK만으로는 충분하지 않습니다. 학습 과정을 완료하려면 WTK에서 SDK로의 도약을 완료해야 합니다.
 
 1. 제조사 SDK 다운로드 주소는 어떻게 되나요?
 http://blog.csdn.net/Mailbomb/archive/2005/01/01/236606.aspx
 
 2. 제조사 SDK와 WTK의 차이점은 무엇인가요?
제조업체 SDK에 대한 가장 간단한 이해는 WTK를 기반으로 자체 시뮬레이터와 자체 확장 API를 추가하는 것입니다.
즉, 제조사의 SDK를 사용하면 Nokia의 UI 클래스 라이브러리 등 제조사의 확장 클래스 라이브러리와 제조사 자체의 시뮬레이터를 사용할 수 있습니다.
제조업체마다 확장 API 수가 적고 동일하지 않습니다.
 
 3. 사용방법은?
삼성 등 일부 제조사의 SDK는 WTK와 동일하게 사용됩니다.
노키아는 개발을 위한 독립적인 인터페이스를 제공하지만, 이 인터페이스는 실제 개발에서는 거의 사용되지 않습니다.
 
 4. 제조사 SDK 문제
제조사 SDK 구현에 일부 버그가 있으며, 실제 머신 구현과 일치하지 않습니다. 예를 들어 NOKIA의 믹스 재생 문제 등이 있습니다.
 
 8. J2ME에서 휴대폰의 IMEI를 얻는 방법
 
 IMEI는 International mobile Entity Identification의 약자로 휴대폰에 *#06#을 입력하면 해당 번호가 표시됩니다. 15자리 숫자로 고유하고 충돌하지 않으므로 사용자를 식별하는 기호로 사용할 수 있습니다.
 
 다음은 J2ME에서 IMEI를 얻는 방법입니다:
 
 1. MOTO 시리즈 휴대폰은 시스템의 IMEI 속성을 읽어서 얻을 수 있으며 코드는 다음과 같습니다.
String imei = System.getPROperty ("IMEI");
 
 2. SIEMENS 시리즈 휴대폰은 시스템의 com.siemens.IMEI 속성을 읽어서 얻을 수 있습니다.
String imei = System.getProperty("com.siemens.IMEI");

9. J2ME 네트워크 연결 표시 문제에 대한 해결 방법

네트워크 프로그래밍에서 네트워크 데이터를 수신하지 않고 인터페이스가 표시되는 경우가 있습니다. 인터페이스가 요구 사항을 충족하지 않습니다(예: 공지사항 표시에서 공지사항의 배경 이미지가 먼저 표시된 다음 공지사항 정보가 표시됩니다). 다음은 모두를 위한 간단한 해결 방법입니다.
 
이 상황을 해결하는 방법은 세 단계로 나누어집니다.
1. 표시해야 하는 인터페이스에서 네트워크 데이터를 전송하는 메서드를 호출합니다. 이 생성자는 표시될 때마다 호출되며 표시를 위해 Display의 setCurrent 메소드가 호출되지 않습니다.
 
 2. 사용자에게 네트워크 연결이 진행 중임을 알리는 대기 인터페이스(예: 진행률 표시줄 등)를 표시합니다.
 
 3. 네트워크 피드백 데이터를 처리한 후 Display의 setCurrent 메소드를 호출하여 현재 인터페이스를 표시합니다.
 
 10. J2ME의 문자열 기능 강화 - 문자열 분할
 
JDK1.4부터 문자열 분할을 위해 String 클래스에 분할 메소드가 추가되었지만 J2ME에서는 그렇지 않습니다. 이러한 방법(MIDP2.0에서는 구현되지 않음)이지만 실제 사용에서는 때때로 이 작업이 필요할 수 있습니다. 다음은 여러분과 공유하기 위해 이전에 구현한 코드입니다.
 /**
 
* 문자열 분할, 원칙: 문자열에서 분할 문자열을 감지한 후 하위 문자열을 가져옵니다
 
 * @param 원본 분할해야 할 문자열
 
 * @paran regex 문자열 분할
 
 * @return 분할 후 생성된 문자열 배열
> //부분 문자열의 시작 위치를 가져옵니다.

int startIndex = 0

// 결과 데이터를 Vector 먼저

Vector v = new Vector() ;
 
 //반환된 결과 문자열 배열
 
 String[] str = null;
 
 / /하위 문자열을 가져올 때 시작 위치 저장
 
int index = 0;
 
 //일치하는 하위 문자열의 위치 가져오기
 
 startIndex = original.indexOf(regex);
 
 //System.out.println("0 " + startIndex);
 
  //시작 문자열의 위치가 문자열 길이보다 작으면 끝임을 증명합니다. 문자열에 도달하지 않았습니다.
 
 //-1은 끝에 도달함을 의미합니다
 
 while(startIndex < original.length() && startIndex != -1)
 
 {
위 내용은 J2ME 프로그램 개발에 대한 종합적인 기본 설명을 요약한 것입니다(1). 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!



본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

2025 년 상위 4 개의 JavaScript 프레임 워크 : React, Angular, Vue, Svelte 2025 년 상위 4 개의 JavaScript 프레임 워크 : React, Angular, Vue, Svelte Mar 07, 2025 pm 06:09 PM

이 기사는 2025 년에 상위 4 개의 JavaScript 프레임 워크 (React, Angular, Vue, Svelte)를 분석하여 성능, 확장 성 및 향후 전망을 비교합니다. 강력한 공동체와 생태계로 인해 모두 지배적이지만 상대적으로 대중적으로

Spring Boot Snakeyaml 2.0 CVE-2022-1471 문제 고정 Spring Boot Snakeyaml 2.0 CVE-2022-1471 문제 고정 Mar 07, 2025 pm 05:52 PM

이 기사는 원격 코드 실행을 허용하는 중요한 결함 인 Snakeyaml의 CVE-2022-1471 취약점을 다룹니다. Snakeyaml 1.33 이상으로 Spring Boot 응용 프로그램을 업그레이드하는 방법에 대해 자세히 설명합니다.

Java의 클래스로드 메커니즘은 다른 클래스 로더 및 대표 모델을 포함하여 어떻게 작동합니까? Java의 클래스로드 메커니즘은 다른 클래스 로더 및 대표 모델을 포함하여 어떻게 작동합니까? Mar 17, 2025 pm 05:35 PM

Java의 클래스 로딩에는 부트 스트랩, 확장 및 응용 프로그램 클래스 로더가있는 계층 적 시스템을 사용하여 클래스로드, 링크 및 초기화 클래스가 포함됩니다. 학부모 위임 모델은 핵심 클래스가 먼저로드되어 사용자 정의 클래스 LOA에 영향을 미치도록합니다.

카페인 또는 구아바 캐시와 같은 라이브러리를 사용하여 자바 애플리케이션에서 다단계 캐싱을 구현하려면 어떻게해야합니까? 카페인 또는 구아바 캐시와 같은 라이브러리를 사용하여 자바 애플리케이션에서 다단계 캐싱을 구현하려면 어떻게해야합니까? Mar 17, 2025 pm 05:44 PM

이 기사는 카페인 및 구아바 캐시를 사용하여 자바에서 다단계 캐싱을 구현하여 응용 프로그램 성능을 향상시키는 것에 대해 설명합니다. 구성 및 퇴거 정책 관리 Best Pra와 함께 설정, 통합 및 성능 이점을 다룹니다.

Node.js 20 : 주요 성능 향상 및 새로운 기능 Node.js 20 : 주요 성능 향상 및 새로운 기능 Mar 07, 2025 pm 06:12 PM

Node.js 20은 V8 엔진 개선, 특히 더 빠른 쓰레기 수집 및 I/O를 통해 성능을 크게 향상시킵니다. 새로운 기능에는 더 나은 webAssembly 지원 및 정제 디버깅 도구, 개발자 생산성 및 응용 속도 향상이 포함됩니다.

빙산 : 데이터 호수 테이블의 미래 빙산 : 데이터 호수 테이블의 미래 Mar 07, 2025 pm 06:31 PM

대규모 분석 데이터 세트를위한 오픈 테이블 형식 인 Iceberg는 데이터 호수 성능 및 확장 성을 향상시킵니다. 내부 메타 데이터 관리를 통한 Parquet/Orc의 한계를 해결하여 효율적인 스키마 진화, 시간 여행, 동시 W를 가능하게합니다.

오이의 단계간에 데이터를 공유하는 방법 오이의 단계간에 데이터를 공유하는 방법 Mar 07, 2025 pm 05:55 PM

이 기사는 오이 단계간에 데이터를 공유하는 방법, 시나리오 컨텍스트, 글로벌 변수, 인수 통과 및 데이터 구조를 비교합니다. 간결한 컨텍스트 사용, 설명을 포함하여 유지 관리에 대한 모범 사례를 강조합니다.

캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA (Java Persistence API)를 어떻게 사용하려면 어떻게해야합니까? 캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA (Java Persistence API)를 어떻게 사용하려면 어떻게해야합니까? Mar 17, 2025 pm 05:43 PM

이 기사는 캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA를 사용하는 것에 대해 설명합니다. 잠재적 인 함정을 강조하면서 성능을 최적화하기위한 설정, 엔티티 매핑 및 모범 사례를 다룹니다. [159 문자]

See all articles