- ホーム
- > 洋書
- > 英文書
- > Computer / Languages
Full Description
The release of MIDP 2.0 and the introduction of the new Mobile Service Architecture (MSA) are generating momentum for the Java ME platform. As more and more Java-enabled mobile devices become available and more service providers become open to third-party development, the demand for customized applications will grow dramatically. Now, there's a practical, realistic guide to building MIDP 2.0/MSA applications that are robust, responsive, maintainable, and fun.Long-time Java ME author Jonathan Knudsen offers real solutions for the complex challenges of coding efficiency, application design, and usability in constrained mobile environments. Experienced Java developers will master MIDP 2.0 and MSA programming through clear, carefully designed examples. Downloadable code is available for both NetBeans Mobility Pack and the Sun Java Wireless Toolkit. Kicking Butt with MIDP and MSA's wide-ranging content covers:Pushing MIDP's limits, and exploiting MSA's full power Using MIDlets, Forms, commands, core classes, and invocation Building effective mobile user interfaces Designing graphics with the Canvas, the Game API, SVG, and 3D Providing storage and resources: record stores, FileConnection, and PDA PIM Internationalizing mobile applications Networking via WMA, Bluetooth, Web services, and SIP Parsing XML documents Implementing audio and advanced multimedia Securing mobile applications with SATSA and the Payment API Building advanced location-based applications Designing applications for multiple devices Creating end-to-end mobile application architectures
Contents
Foreword xviiPreface xixAcknowledgments xxiAbout the Author xxiiiSECTION I: GETTING STARTED 1Chapter 1: Overview 31.1 Not Plastics, but Wireless 31.2 MIDP, the Heart and Soul of Mobile Java Technology 41.3 The First Umbrella: JTWI 51.4 A Bigger Umbrella: MSA 61.5 Understanding MSA APIs 71.6 Looking beyond MSA 1.0 91.7 What about JavaFX Mobile? 101.8 Summary 10Chapter 2: Tools 112.1 Sun Java Wireless Toolkit for CLDC: A Toaster Oven 112.2 NetBeans Mobility Pack: A Gourmet Kitchen 132.3 Eclipse, Too 132.4 Inside a MIDlet Suite 142.5 Building a MIDlet Suite 152.6 The Command Line: A Campfire 162.7 Preprocessors 172.8 Obfuscators 172.9 Emulators 182.10 Device Testing 182.11 Summary 19Chapter 3: Quick Start 213.1 Make Something That Runs 213.2 Put Something on the Screen 223.3 Give the User Something to Do 233.4 Get the Source Code Online 253.5 Summary 26Chapter 4: Core APIs 274.1 JVM Features You Might Miss 284.2 Strings, Primitive Types, and System Methods 284.3 Threads 294.4 Using Streams for Input and Output 304.5 Dates, Collections, and Random Numbers 32Habitat 375.1 The MIDlet Life Cycle 375.2 Using the Browser and Making Calls 405.3 Application Properties 405.4 Protection Domains and Signed MIDlet Suites 415.5 Permissions 425.6 The Bottom Line on MIDlet Signing 445.7 Summary 45Chapter 6: Starting MIDlets Automatically 476.1 Responding to Network Connections 476.2 Running a MIDlet at a Specific Time 546.3 Responding to Content 566.4 Summary 66SECTION III: USER INTERFACE 67Chapter 7: Basic User Interface 697.1 How to Show Screens 707.2 TextBox, the Runt of the Litter 717.3 Input Modes 727.4 Using Alerts for Notifications 737.5 A Very Quick Introduction to Images 747.6 Putting It Together 747.7 Good for the Old Ticker 767.8 The Whole Story on Commands 767.9 Command Placement 797.10 Summary 80Chapter 8: More User Interface 818.1 Lists 818.2 List Selections 838.3 Handling List Events 838.4 Three Lists in One Example 848.5 Advanced List Control 868.6 Using Forms 868.7 Working with Items 888.8 Gauges 898.9 Controlling Item Layout 908.10 Please Drink Form Responsibly 928.11 Item Change Events and Item Commands 958.12 Summary 98SECTION IV: GRAPHICS 99Chapter 9: Creating Custom Screens 1019.1 Getting Information about the Display 1019.2 How Painting Works 1029.3 Making Colors 1029.4 Drawing Lines and Shapes 1059.5 Drawing Text 1099.6 Measuring Text 1119.7 Creating Images 1149.8 Drawing Images 1169.9 Keeping Resources Small 1189.10 Drawing on Images 1199.11 Getting Your Fingers on the Bits 1219.12 Clipping 1249.13 Event Handling 1249.14 Controlling Command Placement 1279.15 Summary 129Chapter 10: Custom Items 13110.1 Custom Item Sizing 13110.2 Painting 13210.3 A Pretty Wait Indicator 13210.4 Handling Events in Custom Items 13510.5 Internal Traversal 13610.6 An Interactive Example 13710.7 Summary 142Chapter 11: Using the Game API 14311.1 Tight Looping with GameCanvas 14311.2 Building Scenes with Layers 14811.3 Tiled Layers 14911.4 Sprites 15111.5 Detecting Collisions 15311.6 Assembling a Game Scene 15311.7 A Blocky Example 15411.8 Summary 158Chapter 12: Scalable Vector Graphics 15912.1 The Simplest Way to Show SVG Content 16012.2 Working with Animated Documents 16312.3 Digging into an SVG Document 16612.4 Displaying an SVG Document on Your Own Canvas 16812.5 Creating New SVG Elements 17112.6 SVG Event Handling 17412.7 Summary 178Chapter 13: 3D Graphics 17913.1 Creating M3G Files 17913.2 Displaying 3D Content the Easy Way 18013.3 Doing It the Hard Way 18413.4 Summary 192SECTION V: STORAGE AND RESOURCES 193Chapter 14: Record Stores 19514.1 Itsy Bitsy Teenie Weenie Databases 19614.2 Working with Record Stores 19614.3 Manipulating Records 19814.4 Making Queries 19914.5 Iterating through Records 19914.6 A Place to Keep Your Stuff 20014.7 Summary 204Chapter 15: Reading and Writing Files 20515.1 The Quick Story 20515.2 Working with Files and Directories 20615.3 Somewhere, a Place for Us 20815.4 Finding Pictures, Music, and Other Goodies 20815.5 Starting from the Top 20915.6 Ask for Permission 20915.7 An Example 21015.8 Summary 213Chapter 16: Contacts and Calendars 21516.1 Understanding the PIM API 21516.2 Working with Lists 21716.3 Where Do Lists Come From? 22016.4 Importing and Exporting 22116.5 What's Supported? 22216.6 Don't Forget Permissions 22216.7 Example 22316.8 Summary 232Chapter 17: Mobile Internationalization 23317.1 About Locales 23317.2 Using Resources 23417.3 Finding Resources 23517.4 Resource Inheritance 23717.5 Formatting Numbers and Dates 23717.6 Sorting Strings 23917.7 Take It Out for a Spin 23917.8 Summary 244SECTION VI: NETWORKING 245Chapter 18: The Generic Connection Framework 24718.1 Making Connections 24718.2 Clean Up 24918.3 Use Threads 25018.4 Image Loading via HTTP 25018.5 Advanced HTTP Techniques 25218.6 Tips for Success 25318.7 Using HTTPS 25418.8 Other Connection Types 25718.9 Incoming Connections 26018.10 Connection Permissions 26118.11 Summary 261Chapter 19: Text and Multimedia Messaging 26319.1 Why Messaging? 26319.2 Sending Messages 26419.3 Sending Binary Messages 26519.4 Sending Multipart Messages 26619.5 Receiving Messages 26819.6 A Simple Messaging Application 26919.7 Summary 273Chapter 20: Bluetooth and OBEX 27520.1 Control Your Own Bluetoothiness 27620.2 Finding Other Bluetooth Devices and Services 27620.3 Cheap Shots 27820.4 Making a Client Connection 27820.5 Setting Up a Server 27920.6 Authorization and Encryption 28020.7 What about OBEX? 28020.8 Don't Forget the Push Registry 28220.9 Permissions for Bluetooth and OBEX 28220.10 The BlueChew Application 28320.11 Summary 293Chapter 21: XML and Web Services 29521.1 Parsing XML 29621.2 Creating a Handler 29621.3 Parsing RSS 29821.4 Parsing XML without JSR 172 30121.5 Using WS-* Web Services 30321.6 Harness the World 30721.7 A Mobile Client for Flickr 30821.8 Summary 317Chapter 22: Session Initiation Protocol 31922.1 Understanding SIP 32022.2 Development Tools 32122.3 Setting Up a Notifier 32122.4 Sending Requests 32122.5 Receiving SIP Requests and Sending Responses 32222.6 GoSIP and SIPDemo 32322.7 Summary 324SECTION VII: MULTIMEDIA 325Chapter 23: Playing and Recording Sound and Video 32723.1 Boring Background Information 32723.2 Tones 32923.3 Using Players 32923.4 Supported Content Types 33123.5 Threading and Listening 33223.6 Taking Control 33223.7 Playing Sampled Audio Content 33323.8 Playing Video Content 33323.9 The Tone Sequence Player 33523.10 The Interactive MIDI Player 33623.11 Recording Audio 33723.12 Capturing Video 33823.13 You Can't Make Everyone Happy 33823.14 About MMMIDlet 33923.15 Summary 340Chapter 24: Advanced Multimedia 34124.1 Image Processing 34224.2 Controlling Image Format 34424.3 Music 34524.4 3D Audio 34524.5 Audio Special Effects 34724.6 More Camera Control 34724.7 Plain Old Radio 34824.8 Summary 349SECTION VIII: SECURITY AND TRANSACTIONS 351Chapter 25: Smart Cards and Cryptography 35325.1 Smart Cards? Really? 35425.2 Testing SATSA Applications with the Emulator 35425.3 Basic Smart Card Communication 35525.4 Smart Card Communication with Java Card RMI 35525.5 Generating Signatures 35625.6 Managing Certificates 35725.7 Cryptography 35725.8 Summary 359Chapter 26: Mobile Payments 36126.1 Show Me the Money! 36226.2 Matching Applications to Payment Providers 36426.3 Editing Payment Provisioning Information 36526.4 Security and Payments 36626.5 Summary 366Chapter 27: Know Where You Are 36927.1 The Short Story 37027.2 An Even Shorter Story 37127.3 Receiving Periodic Location Updates 37127.4 Getting Close 37127.5 Landmark Databases 37227.6 Orientation 37327.7 Simulating Device Location 37327.8 Summary 374Chapter 28: Application Architecture 37528.1 Use the Strengths of Java ME 37528.2 Use the Strengths of the Internet 37628.3 Don't Cram the Desktop into a DJava ME Application 37628.4 Developing for Multiple Devices 37728.5 Stretchy Screens 37728.6 Make It Just Work 37828.7 Summary 379Index 381