J2ME تطوير البرمجيات لالهواتف الخلوية
(2002)
Colin Fahey

Motorola T720 الهاتف الخليوي ، فتح مبين
1. تحذير
وهذه الوثيقة هي بالية! المعلومات الواردة في هذه الوثيقة قد تكون صالحة ومفيدة في العام 2002 ، ولكن أشياء كثيرة قد تغيرت في السنوات اللاحقة! هذه الوثيقة ينبغي الآن إلا أن تعتبر مثيرة للاهتمام السجل التاريخي للسنة 2002. لا تعتمد على أي معلومات أو مشورة في هذه الوثيقة. جميع المعلومات التقنية الواردة في هذه الوثيقة جدا عفا عليها الزمن.
تحميل البرمجيات الذاتي خلق ، خلق الصور الذاتي ، وتقرير المصير للشعوب خلق حالة تأهب نغمات الهاتف (أي ، "نغمات)" ، وكانت نادرة نسبيا وصعبة في السنة 2002. للأسف ، بعد ست سنوات ، بعض مقدمي خدمات الهاتف الخلوي (بما في Apple ، التي تنص على الحصري والبرمجيات "وعصابة لهجة" بوابة لiPhone) لا تزال تفرض قيودا على تنزيل البرمجيات ، الصور ، والموسيقى ، لان الهاتف الخليوي مقدمي الخدمات المالية الكبيرة للغاية التي تتمتع الأرباح من جانب السيطرة على هذه الأنواع من تنزيل.
ولحسن الحظ ، والهواتف الخلوية ، مثل تلك التي تظهر "Android" منصة البرمجيات ، وسوف الى الابد نهاية قدرة الشركات على خلق واستغلال الأسواق المغلقة لهذه الاستخدامات من الهواتف الخلوية. وبالرغم من أن المستهلكين عن طيب خاطر شراء خدمة الهاتف الخليوي الخطط التي تشمل تكاليف عالية جدا لتحميل البرمجيات ، الصور ، والموسيقى ، وذلك لأن من عدد محدود من خدمة الهاتف الخليوي الخيارات المتاحة.
الديناميات الاقتصادية التي مكنت بعض الشركات لتنمو لتسيطر على السوق ينبغي ألا تفسر على أنها موافقة ضمنية قوية من جانب المستهلكين. كما تبدأ شركات تهيمن ، وبعد ذلك يجعل من الصعب أو المستحيل للمنافسين لدخول السوق ، يمكن للشركات تهيمن على عرض المنتجات التي تجمع بين ارتفاع قيمة إيجابية (على سبيل المثال ، القدرة على الاتصال من أي مكان) مع ارتفاع قيمة سالبة (على سبيل المثال ، ارتفاع الأسعار لمرغوب فيه البرمجيات ، الصور ، والموسيقى ، وكل ذلك من شأنه أن تكون متاحة بحرية على خلاف ذلك ؛ وبالتالي ، فإن خدمة يضيف قيمة سالبة). لا يضطر المستهلك لشراء جهاز هاتف خليوي ، ولكن ليس هناك شك في أن المهيمنة الهاتف الخليوي مقدمي الخدمات تدريجيا خلق الظروف التي لا يمكن اعتبار "السوق الحرة." ولذلك ، فإن خدمة الهاتف الخلوي في السوق قد "غير فعال" اقتصاديا ولقد كان عبئا لا مبرر له على المستهلكين.
ونأمل أن متطلبات خدمة الهاتف الخليوي الترددات الراديوية تكون متاحة لخدمات منافسة سوف استعادة قيم السوق العادية لنقل البيانات ، أن مثل هذا الهاتف الخليوي مقدمي الخدمات مرة أخرى لمجرد خفض الناقلين من البيانات (أي ، فقط توفير عرض النطاق الترددي) بدلا من مقدمي المعلومات أو الترفيه !
الأعمال التجارية لنقل البيانات يجب أن يكون منفصلا عن الأعمال التجارية من بيع البيانات ، والا فلن يكون هناك حافز لنقل البيانات التجارية لمنع المنافسين من بيع البيانات من خلال نفس قناة نقل البيانات.
وقد العاب الفيديو والسوق يعاني من نفس المشكلة. الشركات المصنعة للأجهزة العاب الفيديو والأجهزة هي في الأعمال التجارية من تهيئة الأجهزة التي يمكن أن العرض ألعاب الفيديو ، ولكن هذه الشركات نفسها أيضا السيطرة الحصرية للنقل من هذه البرمجيات لالعاب الفيديو. ولذلك ، فإن هناك حافزا لالعاب الفيديو والمصنعين لمنع المنافسين من بيع البرمجيات لالعاب الفيديو. وإذا كان أحد أجهزة العاب الفيديو ومعدات لصناعة تركز على تصميم وتصنيع معدات التي يمكن بيعها بربح (بدلا من خسارة كبيرة ، كما هو الحال مع X-Box وPlayStation وNintendo العاب الفيديو) ، ثم لعبة فيديو ازدهار السوق ، و نوعية أفضل من ألعاب الفيديو من شأنه أن تحسن بشكل كبير ، وتكلفة ألعاب الفيديو ستنهار.
2. مؤشر الموضوع
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
3. J2ME أدوات التنمية
يصف هذا الفرع كيفية التحميل التنمية الأدوات التي يمكن أن تستخدم لتجميع J2ME في شفرة المصدر إلى الطبقة ملفات مناسبة للأجهزة النقالة. علما أن Sun "J2ME Wireless Toolkit" ، وناقش في فرع لاحق من هذه المادة ، ويتطلب تنزيل Java SDK ووصف في هذا الفرع.
3.1 JDK 1.4 (أو في وقت لاحق)
وهذا يعني عليك التقليدية Java 2 SDK من Sun. أنا تحميل واستخدام النسخة 1.4 عن طريق الوصلة التالية :
هنا هو ما يبدو وكأنه صفحة التحميل :
بدء تركيب البرنامج. لتثبيت موقع ( c:\j2sdk1.4.0_03 ) الافتراضية إلا إذا كنت قادرة على طريق حل المشاكل التي قد تنشأ.
3.2 Connected Limited Device Configuration (CLDC)
وأنا لن أدعي معرفة ما هو هذا ، لكنني ببساطة أنه تم تحميل من Sun موقع على شبكة الإنترنت.
هنا هو ما CLDC الرئيسية التحميل صفحة ويب يشبه :
فقط 1.0.3 كانت متاحة في ذلك الوقت قمت بزيارة.
من أجل تحميل هذا ، وكنت بحاجة الى تسجيل مع Sun موقع على شبكة الإنترنت. أنا خلق الصورة التالية :
Username: anon***anon
Password: nospamplease
Favorite color: blue
Full name: Prof. Anon Nospamplease
أنا تحميل الملفات التالية :
j2me_cldc-1_0_3-fcs-src-b17-winunix-14_sep_2001.zip
الأول التالي لمحلول الدليل :
أنا سميت "cldc-1_0_3-fcs" إلى دليل ببساطة :
cldc (أي الكامل هو الطريق c:\j2me\cldc)
3.3 Mobile Information Device Profile (MIDP)
وأنا لن أدعي معرفة ما هو هذا سواء ، لكنني ببساطة أنه تم تحميل من Sun موقع على شبكة الإنترنت.
وإليك ما MIDP الرئيسية التحميل صفحة ويب يشبه :
أنا تحميل الملفات التالية :
j2me_midp-1_0_3-fcs-src-b26-win-19_sep_2001.zip
الأول التالي لمحلول الدليل :
أنا سميت "midp-1_0_3-fcs" إلى دليل ببساطة :
midp (أي الكامل هو الطريق c:\j2me\midp)
3.4 أدوات التشكيل
3.4.1 إنشاء مسارات
أضف على النحو التالي الى حسابك AUTOEXEC.BAT الملف :
REM ---- Java Support ----
SET MIDP_HOME=C:\j2me\midp
SET PATH=%PATH%;c:\j2sdk1.4.0_03\BIN;
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\j2sdk1.4.0_03\BIN;C:\j2me\midp\bin;%PATH%
ثم قوة هذه المتغيرات لتكون إعادة شحنها عن طريق تشغيل ملف الدفعة :
يمكنك أيضا تشكيل هذه المتغيرات نفسها باستخدام ويندوز متغير البيئة لوحة التحكم.
ولاحظ ان اخترت لتحديد مسارات واضحة ودليل لبلادي النسخة الحالية من Java 2 SDK. ولذلك ، إذا رفع مستوى الأول ، ثم لا بد لي من تعديل AUTOEXEC.BAT ملف لتحديد أدلة جديدة.
3.4.2 افحص Jave 2 SDK ثنائيات
مرة واحدة الإعدادات أعلاه حيز التنفيذ ، هل ينبغي أن تكون قادرة على تشغيل برامج Java أداة من الأوامر دون تحديد مسار كامل إلى أداة برامج.
الأمر التالي سوف يبدأ الهاتف الخليوي جهاز المحاكي :
الصورة التالية تبين الهاتف الخليوي جهاز المحاكي :
4. برنامج بسيط J2ME
4.1 اكتب Java مدونة
باستخدام أي محرر نصوص ، يمكن للشخص نوع في مدونة ، لمثل هذا HelloMIDlet.java ملف شفرة المصدر :
هنا هو رمز في نص عادي الشكل :
// File: HelloMIDlet.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMIDlet
extends MIDlet
implements CommandListener
{
private Command exitCommand;
private Display display;
private TextBox t = null;
public HelloMIDlet()
{
display = Display.getDisplay( this );
exitCommand = new Command( "Exit", Command.EXIT, 2 );
t = new TextBox
(
"Hello MIDlet",
"Test string",
256, 0
);
t.addCommand( exitCommand );
t.setCommandListener( this );
}
public void startApp()
{
display.setCurrent( t );
}
public void pauseApp()
{
}
public void destroyApp( boolean unconditional )
{
}
public void commandAction( Command c, Displayable s )
{
if (c == exitCommand)
{
destroyApp( false );
notifyDestroyed();
}
}
}
4.2 *.java رمز لتجميع *.class
الحذر : الأمر التالي يجب أن يكون على خط واحد ، ولكن تم توسيع إلى عدة خطوط النص فقط لوضوح.
(الحالية الدليل : C:\HelloMIDlet)
javac
-target 1.1
-d .\
-bootclasspath c:\j2me\midp\classes
HelloMIDlet.java
ملاحظة : "-target 1.1" ضروري لتجنب وجود خطأ في المستقبل "preverify" المرحلة. وقد يبدو هذا شيء لا مشكلة مع MIDP 1.0.3 في دعم JDK 1.4.
4.3 Preverify لتوليد جديدة *.class ملف
(الحالية الدليل : C:\HelloMIDlet)
preverify -classpath c:\j2me\midp\classes;. HelloMIDlet
وهذا يولد جديدة *.class ملف في دليل فرعي جديد يسمى "output" (افتراضيا).
4.4 الاختبار الجديد *.class ملف
(الحالية الدليل : C:\HelloMIDlet)
midp -classpath c:\j2me\midp\classes;.\output HelloMIDlet
ويبدأ هذا الهاتف المحاكي ، مشيرا الى ان الدليل الجديد يحتوي على بعض "output" من الضروري *.class الملفات.
الصورة التالية تظهر النتيجة المتوقعة.
4.5 إنشاء ملف النص الجديد ، "manifest.mf" ، وتحرير ملف
"manifest.mf" ألف ملف من الضروري الحصول على الهاتف الخليوي الفعلية في تفسير مضمون من *.jar الملف. وإذا كان سليما "manifest.mf" ملف لا تدرج ضمن *.jar ملف ، ثم الهاتف الخليوي قد نجحت *.jar تحميل الملف ، ولكنها قد تفشل في تفسير الملف الذي تم تحميله ، وربما الإبلاغ عن وجود خطأ مثل "Unsupported Content Type".
وفيما يلي مثال بسيط "manifest.mf" الملف.
هنا هو ملف "manifest.mf" كما نص عادي :
MIDlet-1: My_Description,, HelloMIDlet
MIDlet-Name: My_Midlet_Suite
MIDlet-Vendor: Colin Fahey, Inc.
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
ولاحظ ان CLDC وMIDP النسخ المحددة في هذا الملف. أن يكون حذرا جدا والمحافظ عند تحرير مختلف المجالات في هذا الملف. اذا كان لديك "File Corrupt" الأخطاء ، ثم محاولة القضاء على جميع الميادين التي لا تظهر في هذا المثال. أيضا ، وضعت في المجالات بالترتيب الذي يبدو في المثال. أيضا ، اختصار كل ميدان قيمة قدر ما تستطيع ، وتبقي الشخصيات محدود لرسائل بسيطة ، أرقام ، فترات ، وشرطات. بعض خدمات الهاتف الخليوي ، والهواتف الخلوية ، يمكن أن يتسامح مع تباين أكثر من ميدان ومجال يأمر محتويات.
الحذر :
وعندما "jar" برنامج يستخدم لإنشاء ملف *.jar ، و"manifest.mf" الملف المحدد كما هو واضح ملف ، "jar" البرنامج يقرأ ملف واضح ويمكن إضافة المزيد من المجالات لأنه يخلق ملف دعا "MANIFEST.MF" داخل *.jar الملف الناتج. ولذلك ، إذا "MANIFEST.MF" ملف يستخرج من *.jar الملف ، وبعد ذلك بالمقارنة مع الأصلي "manifest.mf" الملف المحدد خلال خلق من *.jar ، وهما ملفات قد تكون مختلفة ، مع "MANIFEST.MF" ملف يحتوي على عدد من الميادين أكثر من ملف الأصلي "manifest.mf" .
لا "MANIFEST.MF" انتزاع الملف من *.jar الملف ومحاولة جديدة لتشكيل *.jar باستخدام ملف واضح أن الملف. إذا كنت انتزاع "MANIFEST.MF" ملف *.jar من ملف ، ثم التأكد من القضاء على جميع المجالات باستثناء تلك مبين في المثال "manifest.mf" ملف مبين أعلاه.
ملاحظة :
أيقونات للبرامج ويبدو أن لا تظهر على Motorola T720 الهاتف. وهذا هو السبب في أنني لم تصف لي midlet مع رمز. ومع ذلك ، ويبين الجدول التالي كيفية وضع أيقونة للبرنامج واضح داخل الملف :
MIDlet-1: My_Description, /icon.png, HelloMIDlet
عند وضع لالهواتف الخلوية التي لا عرض الأيقونات للتطبيقات ، رمز يحدد اسم الملف ، وتضاف أيقونة ملف الصورة نفسها إلى *.jar ملف عن طريق تحديد اسم الملف من بين الملفات من ملف الأسماء التي يمكن ان تضاف الى ملف *.jar.
4.6 وضع ملف "manifest.mf" و*.class في ملف لملف *.jar
الأمر التالي يخلق *.jar الملف. وقد *.jar ملف يتضمن ملف manifest.mf المحددة ، وسوف تتضمن *.class الملفات الموجودة في دليل محدد.
دليل الحالي : C:\HelloMIDlet
jar cfm hi.jar manifest.mf -C .\output HelloMIDlet.class
افتراضي معقدة مثل إنشاء ملف *.jar
لنفترض أن أيقونة ملف الصورة (على سبيل المثال ، "icon.png") لتظهر في *.jar الملف "/icon.png". (ملاحظة : برنامج أيقونات لا تظهر على Motorola T720 الهاتف الخليوي ، ولكن لا تظهر على غيرها من أنواع الهاتف الخليوي ، ويبدو أن تفعل في MIDP المحاكي.)
لنفترض أن هناك دليل اسمه "images" مع ملفات الصور (*.png الشكل). لنفترض أن هذا الدليل ، وجميع من الصور الواردة في الدليل ، ينبغي أن تكون متاحة إلى جانب برنامج Java النسبية دليل /images (أن هذه صورة "a.png" ويمكن الوصول إليها باستخدام الطريق "/images/a.png").
لنفترض أن كل من أنتجت *.class ملفات preverify من جانب القيادة واردة في دليل اسمه "verified". فعلى سبيل المثال ، التحقق من نسخة من الطبقة الرئيسية ، "MyApp.class" ، سيكون في "verified" مجلد ، جنبا إلى جنب مع فئات أخرى من البرنامج. كل من هذه الفئات لتكون متاحة في دليل الجذر من *.jar الملف.
الأمر التالي سوف إنشاء ملف *.jar أن يحقق الأهداف المختلفة المحددة في الفقرات السابقة. الحذر : تم توسيع القيادة لعدة خطوط من النص هنا فقط لوضوح. عند دخول القيادة في موجه الأوامر ، ويجب أن لا تحتوي على قيادة خط كسر والا سوف قيادة مترجم تفسير النص كما دخلت قيادة مستقلة متعددة.
jar
cfmv [Create JAR, Specify JAR Name, Add manifest.mf, Verbose]
MyApp.jar [Name of output JAR file]
manifest.mf [The manifest.mf file]
icon.png [Optional icon, specified by JAD as "/icon.png"]
images [Directory to add to JAR as "/images"]
-C .\verified .
الجزء الأخير من القيادة الصعب علينا ان نفهم ل. لقد معنى التالية : "تغيير العمل الحالية دليل على .\verified ، وبعد ذلك وضع *.class جميع الملفات الموجودة في دليل '.' النسبية (وهي *.class جميع الملفات في دليل العمل الحالي) في ل*.jar الملف." لأن الدليل قد تغيرت قبل تحديد مسار للفئات لوضع الملف في *.jar ، المحلية الطريق لن تظهر في طريق النسبية عندما توضع في ملفات إلى ملف *.jar.
فعلى سبيل المثال ، لنفترض أن التحقق من الطبقات هي في الدليل التالي :
C:\MyApp\verified
لنفترض أن هناك من الدرجة الملفات مثل ما يلي :
C:\MyApp\verified\w.class
ثم يحدد "-C .\verified ." في القيادة لتهيئة *.jar الملف ، بدءا من دليل "C:\MyApp" الحالي ، سيؤدي في "w.class" يجري في دليل الجذر من *.jar الملف. </ ه>
تحذير : عندما "-C" الخيار هو محدد ، وأنها تغييرات دليل العمل الحالية في تلك المرحلة من معالجة الشاملة لتسلسل القيادة بارامترات إلى jar القيادة. ولذلك ، فإن قيادة jar قد يشكو أنها لا يمكن أن تجد غيرها من ملفات المذكورة في القيادة بارامترات يتجاوز "-C" الخيار. وإذا حدث هذا ، ببساطة تحريك "-C .\verified ." ليكون النهائي بارامترات من القيادة العامة.
ويبين الجدول التالي مطنب الناتج من jar القيادة.
added manifest
adding: icon.png(in = 449) (out= 454)(deflated -1%)
adding: images/(in = 0) (out= 0)(stored 0%)
adding: images/a.png(in = 2463) (out= 2223)(deflated 9%)
adding: images/b.png(in = 1322) (out= 579)(deflated 56%)
adding: images/c.png(in = 3433) (out= 2874)(deflated 16%)
adding: images/d.png(in = 1524) (out= 801)(deflated 47%)
adding: w.class(in = 2570) (out= 1356)(deflated 47%)
adding: MyApplication.class(in = 4714) (out= 2169)(deflated 53%)
adding: x.class(in = 3239) (out= 1429)(deflated 55%)
adding: y.class(in = 14205) (out= 6481)(deflated 54%)
adding: z.class(in = 9448) (out= 5135)(deflated 45%)
4.7 خلق وتحرير جديدة *.jad ملف
*.jad ألف ملف من الضروري حتى أن الهاتف الخلوي يمكن وصف برنامج حاسوبي لشخص قبل شخص يقرر لتحميل البرنامج. وقد *.jad كما يوفر بعض الملف المراوغة من *.jar نفسها.

على سبيل المثال *.jad الملف ، وصف الملف *.jar
هنا هو مثال hi.jad في ملف نص عادي الشكل :
MIDlet-1: My_Description,, HelloMIDlet
MIDlet-Jar-Size: 1283
MIDlet-Jar-URL: http://www.colinfahey.com/hi.jar
MIDlet-Name: My_Midlet_Suite
MIDlet-Vendor: Colin Fahey, Inc.
MIDlet-Version: 1.0
وهناك البرامج التي يمكن أن تولد *.jad الملف ، وهو ما يسهل لتحديث "MIDlet-Jar-Size:" الميدان في كل مرة *.jar الملف هو تغيير (وحجم التغييرات). إذا كنت تبحث الإنترنت سوف تجد من المفيد J2ME برامج.
وإذا كان حجم الميدان لا يحدد بالضبط البايت من مجموع *.jar ملف ، ثم الخطأ التالية قد يبدو بعد نجاح التحميل لجهاز هاتف خليوي : "Download Failed" (فشل التحميل).
لMotorola T720 الهاتف الخليوي ، رسالة الخطأ التالية قد تستخدم لinidcate باطلة في مجالات *.jad الملف ، أو ربما غير صحيحة في مجالات MANIFEST.MF ملف المتولدة داخل *.jar الملف : "Failed: File Corrupt" (فشل : ملف الفساد).
ملاحظة : إذا *.jar الملف في نفس الدليل كما المناظرة *.jad ملف على موقعه في شبكة الإنترنت ، ثم *.jad الملف يمكن ببساطة أن تبين اسم الملف للملف *.jar ، من دون ان تحدد URL الكامل ، كما في المثال التالي :
MIDlet-Jar-URL: hi.jar
عند تنزيل هذه الملفات من Apache موقعه في شبكة الإنترنت إلى Motorola T720 الهاتف الخليوي ، هو مقبول لأنها لا تشمل كامل URL. ولكن ، عند تنزيل هذه الملفات من Yahoo! موقعه في شبكة الإنترنت إلى Motorola T720 الهاتف الخليوي ، ومحاولة لتحميل سوف تفشل ، ما لم يكن كامل URL الطريق إلى *.jar الملف المحدد داخل *.jad الملف ، كما في المثال التالي :
MIDlet-Jar-URL: http://www.colinfahey.com/hi.jar
لا أعرف سبب هذه المشكلة ، وأنا أعلم أن هذه المشكلة لا تؤثر في غيرها من الهواتف الخلوية (أو الهاتف الخليوي مقدمي الخدمات). وبعد تحديد كامل URL ل*.jar ملف داخل ملف *.jad ومن الواضح أن غير مريح ، بسبب نقل الملفات إلى مواقع مختلفة على الخادم سوف يتطلب تغيير المعلومات في جميع *.jad الملفات. ولكن ، مع تحديد كامل URL قد يجعل *.jad أكثر موثوقية لبعض الهواتف الخلوية وبعض مقدمي خدمات الهاتف الخليوي.
4.8 اختبار *.jar ملف وملف *.jad المنفذة للبرنامج
التالية تنفذها وجدت في الطبقة *.jar الملف ، ووصف من قبل *.jad الملف.
(الحالية الدليل : C:\HelloMIDlet)
midp -classpath c:\j2me\midp\classes;.\hi.jar -descriptor hi.jad
4.9 المراجع لJ2ME ، MIDP ، CLDC التنمية
كثيرا ما قدمت من هنا يمكن الاطلاع على العديد من المواقع على شبكة الإنترنت. غير أنني وجدت تصحيح بعض الأخطاء الأخرى على مواقع الانترنت ، واضاف التفاصيل الغائبة ، وعرض تجربة كاملة للشخص يحاول أن يفعل هذه الاشياء. هنا جدا بالمعلومات الروابط التي ساعدتني البدء :
5. مجمع J2ME البرنامج
5.1 مقدمة
برنامج بسيط في الجزء السابق من هذه الوثيقة إلا مصدر واحد رمز ملف ، والبرنامج لا شيء تقريبا ، وبالتالي ليست مثالا جيدا للبرمجة الهاتف الخليوي.
صديقي Sam Robertson كتب مثيرة للاهتمام J2ME البرنامج أن يعلم أي شخص للعب لعبة بطاقة "Blackjack" (وتسمى أيضا "21"). وهناك لاعب ويرد مع "تاجر بطاقة" ، واللاعب زوج من البطاقات ، واللاعب يجب أن تقرر ما يجب عمله : "البقاء" ، "ضرب" ، "وضعف القاعدة" ، أو "انقسام."
هذا البرنامج ستة ملفات شفرة المصدر. البرنامج يستجيب لمدخلات المستخدمين ، ورسم بسيط لا نص وتحديثات.
5.2 شفرة المصدر
انقر على الوصلة التالية للحصول على شفرة المصدر ، و*.jad ملف ، "manifest.mf" الملف ، وملف دفعة ، واحدة في كل ملف ZIP مريحة.
sbj.zip
شفرة المصدر الوارد في ملف ZIP
6090 بايت
MD5: bf3922035b7a4eef24e107d03b7524c9
لاستخراج تعسفيا دليل ، ولكن إذا كنت لانتزاع "c:\" تحت Windows ، المثال التالي مناقشة سيكون أقرب إلى الحالة الفعلية الخاصة بك.

استخراج sbj.zip ل"c:\" يخلق دليل "c:\sbj"
5.3 إظهار ملف
ملف : "manifest.mf" :
MIDlet-1: My_Description,, SBJ_MidletT
MIDlet-Name: SBJ_MidletT
MIDlet-Vendor: Sam Robertson
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
5.4 الدفعة ملف لبناء البرنامج
الدفعة التالية هو ملف الخام ، لكنه يخدم كمثال للوكيف يمكن البدء مع كتابة الخاصة بك ملف دفعة لبناء J2ME البرنامج الخاص بك. هذا المثال ملف دفعة هل ما يلي :
(1) تحذف دليل يحتوي على الملفات القديمة *.class ؛
(2) تحذف دليل القديمة التي تحتوي على التحقق من ملفات *.class ؛
(3) اجري حجز "الطبقات" الناتج دليل ؛
(4) تجميع جميع *.java مصادر في ل*.class الملفات ، مع الناتج الذهاب الى "فصول" الدليل.
(5) اجري حجز "التحقق من" الناتج دليل ؛
(6) Preverify جميع الطبقات في "فصول" الدليل ، والتحقق من وضع الطبقات في "التحقق من" الدليل.
(7) إنشاء ملف *.jar ، وتضاف mainfest الملف ، وجميع الطبقات في "التحقق من" دليل ؛
*(8) تجارب البرنامج عن طريق preverified الطبقات مباشرة ؛
*(9) تجارب البرنامج عن طريق *.jar و*.jad الملفات ؛
(*...هذه الخطوات المعوقين (بالتعليق) في بلادي دفعة الملف.)

الدفعة ملف "build_sbj.bat" لبناء البرنامج
هنا هو نفس الملف ("build_sbj.bat") في شكل سهل النص :
rmdir /S /Q classes
rmdir /S /Q verified
del /F /Q *.jar
mkdir classes
javac -g:none -target 1.1 -d .\classes -bootclasspath c:\j2me\midp\classes *.java
mkdir verified
preverify -classpath c:\j2me\midp\classes;.\classes -d .\verified .\classes
jar cvfm sbj. jar manifest.mf -C .\verified .
REM midp -classpath c:\j2me\midp\classes;.\verified SBJ_MidletT
REM midp -classpath c:\j2me\midp\classes;.\sbj.jar -descriptor sbj.jad
REM Finished
5.5 بناء من الأوامر
هنا هو نتيجة للإدارة "build_sbj.bat" دفعة ملف في سطر الأوامر :

تنفيذ "build_sbj.bat" دفعة ملف
علما أن رسائل تحذير ل"rmdir" و"del" عمليات ببساطة تدل على أن هناك شيئا لإزالة.
تستطيع أن ترى أدلة جديدة (أي "classes" و"verified") و*.jar الملف الجديد الذي نتج من ادارة دفعة الملف :

شفرة المصدر والملفات الجديدة ملف المتولدة
5.6 *.jad ملف
لنشر ملف sbj.jar ، نحن بحاجة لخلق وتحرير sbj.jad ملف ل*.jar الصحيح حجم في الحقل المناسب :
ملف : sbj.jad
MIDlet-1: SBJ_MidletT, , SBJ_MidletT
MIDlet-Jar-Size: 7257
MIDlet-Jar-URL: sbj.jar
MIDlet-Name: Sam Blackjack Trainer
MIDlet-Vendor: Sam Robertson
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
ألف شخص قد تحتاج إلى استكمال URL تضاف إلى ملف *.jar عندما *.jad الملف وضع على موقع على شبكة الإنترنت -- لكني اكتشفت (تجربة) ان كنت قادرة على تجنب ذكر كامل URL (أي ، أنا فقط حدد *.jar اسم الملف في حد ذاته). ومع ذلك ، وضع في URL كاملة ، ولكني أردت أن تعرفوا ما لاحظت.
5.7 موجز
وقد المتعددة مصدر الملفات الخاصة بك في المشروع المشترك ، ونحن في هذا الجزء الخام أعطى مثالا للبناء المتعددة الطبقات ، ثم التعبئة والتغليف والتنفيذ.
يرجى الاطلاع على الجزء التالي فيما يتعلق باستخدام Sun Wireless Toolkit ، مما يجعل من بناء تطبيقات أسهل بكثير.
6. Sun "Wireless Toolkit (version 1.0.4_01)"
6.1 مقدمة
Sun يوفر بيئة ملائمة لبناء التنمية والتعبئة والتغليف J2ME برامج : "Java 2 Platform Micro Edition (J2ME) Wireless Toolkit (version 1.0.4_01)".
(تنبيه : أنت في حاجة لتحميل Java 2 SDK 1.4 على النحو الوارد وصفه في وقت سابق من هذا الباب لاستخدام مجموعة الأدوات. هل هذا الآن إذا لم يكن لديك بالفعل هذه النسخة من Java 2 SDK.)
اذهب إلى الموقع التالي على الإنترنت لتحميل مجموعة أدوات :
http://java.sun.com/products/j2mewtoolkit/
الحذر!
ألا تنقر على وصلة "2.0 Beta 1 English" (حاليا أعلى خيار التحميل) إذا كنت تقوم به Motorola T720 التنمية -- لأن هذه الصيغة قد MIDP-2.0 بعض الاشياء ، والتفاف حول هذا قد يكون الصداع.

لا تنزيل هذا الإصدار! ("2.0 Beta 1 English")
حاولت هذه النسخة ، وأنا في نهاية المطاف حصلت على رمز لتجميع الكثير من الفوضى مع إعدادات التغييرات ، ولكن بعد كل جهد حصلت على استثناء الأمن عندما حاولت تنفيذ. لا تهتم!
تحميل النسخة "1.0.4_01 English". هنا هو ما يبدو وكأنه صفحة التحميل :

وقد Sun J2ME Wireless Toolkit (version 1.0.4_01) صفحة التحميل

وقد Sun J2ME Wireless Toolkit (version 1.0.4_01) FTP قائمة الموقع
هذا سوف تحميل الملف التالي : "j2me_wireless_toolkit-1_0_4_01-bin-win.exe"
تنفيذ هذا البرنامج لتركيب على جهازك.
6.2 J2ME Wireless Toolkit : إطلاق شريط الأدوات
بعد هو مجموعة أدوات تركيب ، يمكنك اطلاق أنه من "Start" (ستارت) نظام القائمة :

بدء برنامج شريط الأدوات
يمكنك أيضا الوصول إلى الوثائق MIDP-1.0 عبر "Documentation" في هذا البند Start (بداية) من القائمة.

J2ME Wireless Toolkit (version 1.0.4_01) الوثائق
6.3 J2ME Wireless Toolkit : خلق وبناء المشروع

شريط الأدوات هو على استعداد. انقر فوق "New Project..." لإنشاء مشروع جديد.

New Project : النوع في المشروع اسم (JAR يصبح اسم واسم المشروع الجديد دليل) ، ونوع في الدرجة MIDlet اسم (الطبقة المستمدة من MIDlet ، أساسا من الطبقة الرئيسية طلبك).

شريط الأدوات : مشروع خلق. ولاحظ ان يخبرك فيها تعزية لوضع *.java مصدر الملفات الخاصة بك ، الخ. (على سبيل المثال ، "c:\WTK104\apps\sbj\src" ، الخ)

انقر على "Settings..." على شريط الأدوات للحصول على هذا المشروع إعدادات القائمة.
تجاهل "MIDlet-Jar-Size" الميدان (مع قيمة "100" بايت) لالآن. ونحن في نهاية المطاف قضية القيمة الصحيحة للحصول على مجموعة.

انقر على علامة التبويب MIDlets من المشروع في مربع الحوار إعدادات.
انقر على التوالي فقط في الجدول ("MIDlet-1") لتسليط الضوء على واختيار. ثم انقر على زر "Edit".

من الواضح "Icon" الميدان إذا لم يكن لديك ملف *.png لوضع *.jar الخاصة بك في ملف.
القيام بما يلي :
(1) Project --> Clean : يزيل جميع ملفات *.class ؛
(2) Build : البنى *.class جميع الملفات وpreverifies ؛
(3) Project --> Package --> Create Package : تنتج *.jar و*.jad

نتيجة لبناء *.jar و*.jad
عندما تفعل هذه الخطوات الثلاث ، مما أدى إلى *.jar و*.jad هي جاهزة للتنفيذ فورا في المحاكي المحلية ، أو للنشر الفوري على موقع الإنترنت الخاص بك للآخرين لتحميل "أكثر من" (OTA) "الجوية." فإن حجم *.jar الميدان في *.jad ملف سوف تكون صحيحة. لا تنسي القيام (3) خطوة واحدة كل مرة تقوم فيها اعادة بناء!
الآن يمكنك اختبار عن طريق ضرب "Run" (البعيد) على زر.

"Run" لضرب المشروع يقرأ في *.jad إلى المحاكي. يمكنك اختيار المحددة MIDlet لإطلاق (عادة واحد فقط).
مجرد نسخ *.jar و*.jad الملفات من مواقع محددة (عن طريق شريط الأدوات تعزية نافذة من خلال بناء المشروع) ، مثل :
(تعزية من النافذة :)
Wrote c:\WTK104\apps\sbj\bin\sbj.jar
Wrote c:\WTK104\apps\sbj\bin\sbj.jad
وضع هذه الملفات مباشرة على شبكة الإنترنت إلى حسابك في الموقع دون تعديل ، وينبغي لها أن تعمل. هنا هو ما شاهدته على بلدي الهاتف الخليوي بعد تنزيل تطبيق هذا جمعت "أكثر من الهواء" (OTA)

Sam Robertson's Blackjack Trainer (sbj.jar) المنفذة على بلدي الهاتف الخليوي
7. عرض البرمجيات على موقع على شبكة الإنترنت
7.1 ضمان أن يحدد موقعه في شبكة الإنترنت MIME ل*.jar أنواع الملفات و*.jad ملفات
اذا كان لديك Apache موقعه في شبكة الإنترنت ، تحتاج لخلق ملف اسمه ".htaccess" داخل موقع الويب الخاص بك دليل الجذر. وقد ".htaccess" ملف تمكنك من تجاوز Apache التكوين ، مثل إضافة أو المهيمن ملف MIME أنواع. هل يجب أن نضيف أن يحدد MIME أنواع الملفات المقابلة ل*.jar و*.jad الملفات ، كما هو مبين في ملف النص التالي :

بلدي العرف ".htaccess" ملف لApache موقعه في شبكة الإنترنت. ملاحظة : أنا اسم هذا الملف ".htaccess.txt" مجرد لجعل ملف سهلة لتحرير Windows عند استخدام نظام التشغيل. اسم الملف يجب تغيير ل".htaccess" قبل الملف يمكن استخدامها مع Apache موقعه في شبكة الإنترنت.
ها هو ملف بسيط .htaccess كما نص عادي :
AddType text/vnd.sun.j2me.app-descriptor jad
AddType application/java-archive jar
AddType text/vnd.wap.wml wml
ويبدو أن إنشاء أو تعديل هذا الملف في نتائج فورية من Apache خادم تغيير السلوك. أعتقد Apache خادم الشيكات تعديل التاريخ والوقت للملف ".htaccess" الوافد الجديد على كل المعاملات ، والخادم أن يعيد تحميل الملف إذا كان لتعديل التاريخ والوقت قد تغير.
وإذا كان لديك نوع مختلف من موقعه في شبكة الإنترنت ، هل يجب أن تحديد كيفية تحديد أنواع MIME ، ويجب عليك أن تتأكد من أن *.jar ملفات وملفات *.jad يكلفون المناسبة MIME أنواع.
يمكنك معرفة ما إذا كانت أنواع MIME لم يتم إنشاء إذا كان الهاتف الخليوي يرفض تحميل ملف *.jad والتقارير الخطأ التالية :
"406: Not Acceptable"
7.2 اختياريا توفير وصلات إلى *.jad ملف داخل HTML أو وثائق WML
وقد Motorola T720 J2ME الهاتف الخليوي مع AT&T الخدمة قادرة على تحميل ملف *.jad مباشرة ، عن طريق كتابة URL من *.jad في ملف الهاتف الخليوي ل. ومن المرجح أن هذا العمل لغيرها من الهواتف الخلوية J2ME مع غيرها من مقدمي خدمات الهاتف الخليوي.
بيد أنه قد يكون أكثر ملاءمة للشعب *.jad لتحميل ملف عن طريق اختيار وجود صلة وثيقة من وثائق HTML داخل أو ضمن وثيقة من وثائق WML. (ملاحظة : WML الآن بالية. معظم الهواتف الخلوية يمكن أن تفسر الآن HTML.)

بسيطة HTML وثيقة مع وصلة الى ملف *.jad

بسيطة WML (WAP) صفحة مع وصلة الى ملف *.jad (ملاحظة : WML الآن بالية. معظم الهواتف الخلوية يمكن أن تفسر الآن HTML.)
8. تنزيل البرمجيات من موقع على شبكة الإنترنت
وتظهر الصور التالية بالضبط تسلسل الإجراءات فعلت لتحميل وتنفيذ MIDlet البلدان المتقدمة ونشرها على النحو المبين في الفروع السابقة أعلاه. هذه الصور هي صور من بلادي شاشة الهاتف الخليوي.
(1) الشاشة الرئيسية : عندما تفتح الهاتف ، ترى الشاشة الرئيسية. الصحافة المركز زر الذهاب إلى القائمة الرئيسية.
(2) Main Menu : الانتقال إلى البند "WebAccess".
(3) WebAccess : الانتقال إلى البند "Go To URL".
(4) Enter URL : نوع في URL من *.jad الملف (أو من HTML وثيقة من وثائق ، أو من WML الوثيقة).
(5) Details ؛ هذه المعلومات معرب من *.jad الملف. الصحافة DOWNLD لتحميل ملف *.jar.
(6) Download Complete ؛ انتظر لهذه الرسالة لتختفي ؛
(7) Installing ؛ انتظر لهذه الرسالة لتختفي ؛
(8) xxxx bytes transferred ؛ انتظر لهذه الرسالة لتختفي ؛
(9) Installed ؛ انتظر لهذه الرسالة لتختفي ؛
وعندما WebAccess قائمة ويبدو مرة أخرى ، بعد أن تم تركيب البرنامج ، ببساطة كل خروج من القائمة للعودة الى الشاشة الرئيسية.
(1) الشاشة الرئيسية : عندما تفتح الهاتف ، ترى الشاشة الرئيسية. اختر الخيار "Games & Apps" عن طريق القائمة الرئيسية ، أو الصحافة الهبوط المؤشر على الشاشة الرئيسية.
(2) Java Powered : انتظر لهذه الشاشة لتختفي.
(3) Games & Apps : اختر البند مع اسم البرنامج الخاص بك!
(4) Yay! التنفيذ الناجح للبرنامج الخاص بك!
ظهور البرنامج على الهاتف الخليوي هي تشبه الى حد بعيد ظهور داخل المحاكي.
9. تنزيل رسائل خطأ وتركيب رسائل خطأ
9.1 Motorola T720 (J2ME) رسائل خطأ
رسائل الأخطاء التالية هي فقط ذات الصلة إلى Motorola T720 (GSM/J2ME) الهاتف الخليوي.
9.1.1 "Download Failed"
سبب # 1
أي ملف (HTML, JAD, JAR, MID, GIF) أكثر من 1644 بايت سوف يسبب هذا الخطأ لبعض على شبكة الإنترنت تستضيف وحدات الخدمة. هنا هو اختيار قائمة مختصرة من وتستضيف خوادم :