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)를 참고해주세요!