Click here to load reader
Upload
nola
View
49
Download
0
Embed Size (px)
DESCRIPTION
Personal Java 로 모바일 자바 프로그램 방법 소개. 김 명 호 , ( 주 ) 비트웹 기술이사 ([email protected]). J2ME 와 PersonalJava PJAE API API 요소의 분류 최소 PJAE 의 정의 효율성을 고려한 PersonalJava 프로그램 설계. PJAE 를 위한 개발 지원 도구 JavaCheck 과 PJEE 주요 PJAE 구현사와 제품 PersonalJava 프로그래밍 프레임워크 e-Spider 프로그램 개발사례. 목 차. - PowerPoint PPT Presentation
Citation preview
, () ([email protected]) Personal Java
J2ME PersonalJavaPJAE APIAPI PJAE PersonalJava PJAE JavaCheck PJEE PJAE PersonalJava e-Spider
Micro & Mobile JavasJava2 Micro Edition (J2ME)Personal JavaEmbedded Java, JavaCard, JavaTV, ...
Personal Java Java Classic VM Java API API Truffle , PTimer
Embedded Java, ... Closed System J2ME
J2ME Personal Java Personal Java CDC Profile J2ME
J2ME Personal Java()PersonalJava ~ CDC + Personal Profile
Personal Java CDC + Personal Profile
PJAE Personal Java Application Environment JDK 1.1.8 API , , Java 2 Security API PJAE API , , , PJAE- API API JDK 1.1.8 API PJAE
PJAE Java 2 API
JDK 1.1.8 API
Security API
PJAE- API
PJAE APIJDK 1.1.8 API
PJAE APIPJAE PJAE JDK 1.1.8 API
PJAE API () com.sun.lang.UnsupportedOperationException java.lang.NoClassDefFoundError java.lang.NoClassDefFoundError com.sun.lang.UnsupportedOperationException
PJAE APIPJAE API , , PJAE
java.lang.NoClassDefFoundError
PJAE APIJDK 1.1.8 PJAE , PJAE-, , PJAE-, JDK 1.1.8
PJAE APIPJAE JDK com.sun.lang com.sun.util.PTimer com.sun.awt input method java.awt.Component.isDoubleBuffered
PJAE //, PJAE
Personal Java PJAE , !
PJAE API java.applet ()java.awt () Frame: Dialog: (modal) Window: FileDialogCheckboxMenuItem, Menu, MenuBar, MenuShortcut: Frame
PJAE API ()java.awt.datatransfer ()java.awt.event ()java.awt.iamge ()java.beans ()java.io () java.lang ()Java 2 Security API
PJAE API ()java.lang.reflect ()Java 2 Constructor, Field, Method java.lang.reflect.AccessibleObject java.math ()java.security
PJAE API ()java.net ()URL : HTTP 1.0 : SSL, Gofer, FTP, SMTP, File java.rmi ()java.security ()Java 2 Security API , java.security.acl ()java.security.cert/interfaces/spec ()
PJAE API ()java.sql ()java.math java.text () ISO 8859-1, Unicode,
PJAE API ()java.util () Java 2 Security API Java 2 Collection API java.util.jar, java.util.zip ()
PJAE API ()
PJAE API ()
PJAE PJAE GUI RMI, JDBC API HTTP ... , PJAE
Personal Java , Java (^^)Java !
Personal Java () String StringBuffer java.util.Vector, java.util.Hashtable ...
Personal Java () (lazy instantiation)
PJAE J2SE RAD PersonalJava Sun : javac + pjcc (PJAE compatibility classes): JavaCheck: PJEE (PersonalJava Emulation Environment), java Xrunhprof:cpu=samples MainClass
JavaCheck // SGML PJAE 1.1.0 PJAE JavaCheck : /Unsupported, /Optional: /Modified, /Unresolved, OK
JavaCheck java.awt.Frame ,
PJEE-Personal Java Emulation Environment PJAE
PJAE ,
PJAE + Touchable LAF
PJAE Sun Reference Implementation (http://java.sun.com/) : MIPS, SH3, SH4, ARM: Windows CE java.awt, java.io, java.math, java.rmi, java.sql, java.util.zip java.security
PJAE ()Insignia Jeode (http://www.insignia.com/)Sun (Jeode EVM) (Jeode Classes) : ARM, MIPS, x86, SH3, SH4, PowerPC: Win32, VxWorks, Linux, Nucleus, BSDi, pSOS PJAE 1.2
PJAE ()NSIcom JSCP/CrEme (http://www.nsicom.com)JSCP Sun Personal Java ,CrEme JSCP WinCE : 68k, Sparc, MIPS, ARM, x86, PowerPC, SH3: DOS, Win32, Linux, LynxOS, pSOS, VRTX, VxWorks
PJAE ()KadaSystems KadaVM (http://www.kadasystems.com/)Sun (Kada EVM) Palm Computing Platform, Win32 java.beans(), java.rmi(), java.security()
Personal Java Main(Frame)+Skeleton(Cards)+RatioLayout PJAE Skeleton , , RatioLayout Wire Server
Personal Java () Skeleton () , Skeleton Provider: initialize, execute, cleanup Caller: setup, fire , ,
Wire Wire = WebIDL Runtime Engine
HTTP
Wiring Protocol
Wire Inspector
Wire Server
Wire
doc.table[3].a['*[*]*'].text doc.table[3].a['*[*]*'].href
Personal Java APIclass Connector Connector(String host, [int port], [boolean mode]); Binding request(String mod, String svc, Binding inputs) throws RequestFailureException; void quit();boolean TRANSIENT = false;boolean PERMANENT = (! TRANSIENT);
class Binding WIDL BINDING
Personal Java e-SpiderPersonal Java Wire Server 65KB jar , , , , , , , , , ...
spider.util.Skeletonpackage spider.util;import spider.Spider;import wire.proto.*;import java.awt.*;import java.awt.event.*;
public abstract class Skeleton extends Panel { public Skeleton(String ident, final String parent) { this.ident = ident; this.parent = parent; send = Spider.makeButton(""); exit = Spider.makeButton(""); send.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { fire(); }}); final Skeleton sk = this; exit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { cleanup(); Spider.delete(sk); hide(); Spider.front(parent); }}); message = Spider.makeStrongLabel(" ", Label.LEFT); if (Spider.isColor()) message.setForeground(Color.red.darker()); } ...
spider.util.Skeleton ()public abstract class Skeleton extends Panel { public Skeleton setup() { setLayout(new RatioLayout()); initialize(); Spider.insert(ident, this); Spider.front(ident); return this; } public void fire() { StopWatch timer = new StopWatch(); try { timer.start(); execute(); } catch (Exception exc) { Spider.putMessage(exc.toString()); } finally { timer.finish(); } } protected abstract void initialize(); protected abstract void execute() throws Exception; protected void cleanup() { send = exit = null; message = null; }
Button send, exit; Label message; ...}
package spider;import wire.proto.*; // Wire APIimport java.awt.*;import java.awt.event.*;
class News extends spider.util.Skeleton { public News(String parent) { super(" ", parent); } protected void initialize() { titles = Spider.makeList( new ListAction() { public void fire(int index) { titles.select(index); new NewsView(titles.getItem(index), links[index]).fire(); }}); add(".02, .02; .96, .81", titles); // RatioLayout add(".02, .84; .48, .08", send); // Fields send, exit, and message from Skeleton add(".50, .84; .48, .08", exit); add(".02, .92; .96, .08", message); }
()class News extends spider.util.Skeleton { ... protected void execute() throws Exception { // Connector Spider.wire() throws ConnectionFailureException; Binding os = Spider.wire().request("news", "top", null); // Wire Server stories = (String[])os.get("stories"); if (stories != null) for(int i = 0; i < stories.length; i++) titles.addItem(stories[i]); links = (String[])os.get("links"); } protected void cleanup() { if (titles != null) { titles.removeAll(); titles = null; } stories = links = null; super.cleanup(); } private java.awt.List titles; private String[] stories, links;}
// News : (new News("e-Spider")).setup().fire();
e-Spider 3 Personal Java PJAE + i18n.jar( ) Java JDK1.1.8 Java http://210.217.5.110/demo.html
e-Spider *is* a DONATION-ware!
e-Spider
AfterthoughtsPersonal Java PJAE
Personal Java () !
- -