USERNAME
PASSWORD
LOST PASSWORD?
REGISTER
"A
Complete
Mobile Application Development Environment"
Downloads
Documentation
Forums
Blog
Press
Bug Tracking
Creator IDs
Contact Us
Joomla-Visites | Web statistics tool for Joomla!
Development Tracks
-----------------------
Native Linux
Web 2.0
Garnet
Java
Programming Guide
Documentation
»
ACCESS Linux Platform Native Development
» Programming Guide
1 Introducing ACCESS Linux Platform
Principal Features of ACCESS Linux Platform Devices
Powerful, Flexible OS
Supported Application Types
Small Screen
Input Methods
Power
Storage
PC Connectivity
Options for Application Development
Native Linux
Garnet VM
Java
2 Inside ACCESS Linux Platform
Linux
Linux Kernel
Other Linux Components
X Server
NetFront™ Web Browser
Synchronization
Telephony Framework
Messaging Framework
Data Storage
Application Server and Framework
Application Packaging
Key Platform Components
Bundle Manager
Bundle Manager Architecture
The ACCESS Linux Platform Native Format
The Java Format
The Garnet VM Format
Notification Manager
Receiving Notifications
Handling Notifications
Sending Notifications
Exchange Manager
Handlers
Transports
Parameters
APIs
Garnet VM
Key Open-Source Components
GTK+
User Interface Widgets
libglade
GStreamer
OpenSSL
SQLite
BlueZ
Hiker Application Framework
3 Creating a Simple ACCESS Linux Platform Application
The Development Environment
SDK
Scratchbox
Rootstraps
Eclipse
Glade
Simulator and Emulator
Creating a Simple Project
Classic "Hello World"
The Manifest File
The Application Icon
Building the Application
A Proper "Hello World"
Creating the Eclipse Project
Building the User Interface
Writing the Source Code
Creating an Icon
Creating the Manifest
Writing the Makefile
Building the Application
Running the Application
Debugging the Application
4 Designing ACCESS Linux Platform Applications
Basic Design Principles
Pocket Size
Applications Should Limit Data Entry
Menus Are Hidden
No Button Toolbars
Less Is More
Fast and Simple
Perceived Speed Is Important
Minimize Required Steps
Minimize "Taps"
Be Consistent
Optimize Frequent Tasks
Low Cost, Long Battery Life, and High Value
Keep User Costs Down
Seamless Connection with Desktops
The Design Process
The Usual Approach
The Recommended Approach
Decide on Design Goals
Know Your Users
Develop User Scenarios
Propose an Implementation
Develop the Initial Design Concept
Complete the Design
ACCESS Linux Platform User Interface Elements
UI Widgets
GTK+
ACCESS Linux Platform User Interface Toolkit
Attention Manager
Attentions, Alarms and Notifications
When the Attention Manager Isn't Appropriate
Attention Manager Design
The Attention Manager Dialogs
Categories
Launching and Launch Codes
The Launch Sequence
Launch Codes
How Launch Codes are Passed
Notifications
Notification Manager
How Notifications Work
Broadcast Queues
Broadcast Priorities
Notification Names
Key Notifications
User-Created Notifications
Playing System Sounds
Playing a System Sound by Name
High-Performance Sounds
Playing a System Sound File
High-Performance Sounds
5 Constructing the User Interface
Form Objects
GTK+ Widgets
ACCESS Widgets
ACCESS Menu Bar
ACCESS Title Bar
ACCESS Progress Dialog
ACCESS Date Selector
ACCESS Time Selector
ACCESS Repeat Button
ACCESS Spin Button
Status Bar Manager and Status Gadgets
Dialogs
6 Coding for the User Interface
The ACCESS Linux Platform Application Model
Application Architecture
What is an ACCESS Linux Platform Application?
Model
Application State
Concurrent Access
Updates
Notification
Data References
Application Startup
Application Execution
Application Shutdown
Application Server
Application Launch
Handling Launch Codes
Relaunch Handlers
Registering a Relaunch Handler
An Example of Launching and Relaunching
Handling and Broadcasting Notifications
Registering for Notifications
Notification Type Strings
Registration Priorities
Application Installation Notifications
Global Settings Notifications
System Boot and Notification Persistence
When to Register for Various Notifications
Unregistering for Notifications
Receiving Notifications
Notification Callback Functions
Notifications Passed Through Launch Codes
Verifying the Notification Type
Handling Notifications
Sending Notifications
Notification-Specific Data
Broadcast Priority
The Main Event Loop
Supporting the Clipboard
Handling Hardware Keys
7 Activity Model
Activities and the Activity Model
Application Execution Modes
Transient Mode
Exchange Manager
The Role of the Exchange Manager
Services
Basic Procedures
Requesting a Service
Providing a Service
8 Data Storage
File I/O
Locating Application Data
Working Directory, and Home
SQL Abstraction Layer
PIM APIs
Design Philosophy
Query Model
Locking
Calendar
Inserting an Event
Locating an Event
Contacts
Contacts Database Structure
Locating a Person
Adding a Person
Deleting a Person
Memo
The Memo Database
Tasks
The Tasks Database
Launcher
Interacting with PIM Applications
Adding a Calendar Appointment
Viewing a Specified Date
Viewing a Specified Appointment
9 Communications Options
Exchange
Definitions
Service
Application Requesting a Service (Client Application)
Application Executing a Service (Handler)
The Role of the Exchange Manager
Basic Procedures
Requesting a Service
Providing a Service
Sending an Object as an Attachment
10 Improving Usability
Supporting Find
Registering with the Find Manager
Responding to a Find Request
Reporting Progress
Allowing the User to Cancel the Search
Alerts and Alarms
Setting an Alarm
Responding to an Alarm
Clearing an Alarm
Getting the User's Attention
The Alert Item Dialog Title
Icons and Images
The Text Areas
The Button Bar
Alert Sounds
Further Alert Item Dialog Customization
Posting the Alert
Handling a "Go To" Request
Exploring the Attention Manager
Preferences and Global Settings
Keys
Key Naming Conventions
Global Settings Keys and Access Rights
Values
Default Values
Data Security
Change Notification
System Preferences
Application Preferences
Writing Application Preferences
Reading Application Preferences
Setting Ownership and Permissions
Initial Key Installation
Default Settings XML File
Specifying UID, GID, and Mode
Data Backup
Transaction Support
Preference Panels
Preferences Framework
Panel List
Panel Combo Box
Initialization and Termination
Preference Panel Launching
Glade Support
Preference Panels as Applications
Packaging
Customization
Preferences Launcher
Power Management
Power Manager
Flight Mode
Interacting with the Power Manager
Device-Specific Information
Examples
11 Testing and Debugging
Using the Simulator
Command-Line Options for Starting the Simulator
Environment Variables
Networking
Debugging Drawing
Operating the Simulator
Entering Unicode Characters
Restricting the Cursor to the Simulator Window
Exiting an Application
Connecting to the Simulator
Using the Debugger
GDB
gdbserver
Debugging ACCESS Linux Platform Applications
TUI Mode
Debugging Executables
Starting gdbserver on the Remote Target
Starting GDB
Tracing
Using Traces
Tracing APIs
Setup
Filtering
Command Line Operations
Application Launching and Debugging
Exploring and Manipulating Global Settings
12 Adding HotSync Support
Making an Application "Sync-Aware"
1.LUIDs
2. Model categories as sync-able items
3. Track Changes
4. Register with Change Manager/ HotSync
5. Implement Data Store
13 Security
Security Policies
Signing Your Application
The Signing Process
Sign Tool
The Sign Tool Command Line Interface
Signing With the Test Certificate and Key
Sign Tool Usage Example
Bundle Installation
SPF and POSIX Group File Permissions
14 Background Processing
Specifying the Basic Behavior
Altering the Behavior Programmatically
Background Applications and the Launcher
Executing in the Background
Handling the Background to Foreground Transition
Launching Another Application
Multithreading
Inter-Process Communication (IPC)
ALP Abstract IPC
Using the Abstract IPC Mechanism
Advance Techniques
15 Volume Services
Overview
Notifications
Functionality Exposed by Volume Services
Manipulating Volumes
File System Info Blocks
The slot Field
AlpVolumeSvcsFSinfo Field Combinations
16 Improving Performance
Performance Tips
GTK/Glade UI
Notifications
Global Settings
SQL
XML
Libraries
Miscellaneous
Use of SQLite
Data Window
17 Where to go From Here
Third-Party Books
Additional SDK Documentation
Open Source Documentation
A Manifest File Reference
Manifest File Structure
The <manifest> Element
Resource File Paths
Applications and Preference Panels
The <application> Element
The <about> Element
The <notifications> Element
The <extractor> Element
The <export> Element
The <reference> Element
Phone Drivers
Connection Manager Plug-Ins
Postal Kit Plug-Ins
Exchange Manager Plug-Ins
Status Gadgets
Multimedia Extractors
Telephony Multiplexers
Telephony UI
Components
Add-Ons
B Exchange Verbs
Audio Application
Calendar Application
Camera Application
CAT Browser
Contacts Application
Document Viewer
Download Manager
Email Application
File Manager
Instant Messaging Application
Web Browser
Memo Application
Messaging Application
Mobile Telephony Server
Telephone Dialer
Picture Editor
Picture Manager
Garnet VM Preferences Panel
Security Preferences Panel
Tasks Application
Video Telephony Application
Video Player
Voice Recorder
Garnet VM Application Launcher
Mobile Server
Java Exchange Server
Java Application Launcher
OMA DM Server
WAP Push Library
Bundle Exchange Server
IMPS WAP Push Postal Plugin
MMS WAP Push Postal Plugin
SMS WAP Push Postal Plugin
C Using C++
Libraries
Standard C++ Libraries
Disallowed C++ Features
Virtual Methods
Constructors
Destructors
Assignment
Abstract Classes
Friends
Public or Private Data Members
Limit Default Arguments
Pass By Reference, Not Value
Pass Collections When Possible
Avoid Returning References As Function Results
Lifetime Of An Object
An Acceptable Case
Use of Const
Enums
Avoid Macros
Avoid Casts
Hide Storage Allocation
Avoid Allocating Dynamic Memory
Hide Allocation Inside a Class
Use a Pointer Class Wherever Possible
Use Global Names Only For Classes
Design Guidelines
Composition Versus Inheritance
Read-Only Vs. Semantic Const
© 2008 ACCESS Developer Network | Joomla! is Free Software released under the GNU/GPL License. |
ACCESS Global Website