blob: e2aee60113df1c9fb75b7da648177d985fee22bb [file] [log] [blame] [view]
Jeff Brown590a9d62011-06-30 12:55:34 -07001<!--
2 Copyright 2011 The Android Open Source Project
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15-->
16
17# Migration Guide #
18
19This document contains a few helpful tips when migrating to new Android releases.
20
21## Migrating to Android Gingerbread 2.3 ##
22
23In Gingerbread, we added the concept of input device configuration files
24(also referred to as input device calibration files in this release).
25
26Make sure to provide an input device configuration file for all touch screens.
27In particular, it is worth spending time providing a calibration reference for
28touch size information.
29
30## Migrating to Android Honeycomb 3.0 ##
31
32In Honeycomb, we revised the key character map file format and started making
33greater use of input device configuration files. We also added support for full
34PC-style keyboards and introduced a new "Generic" key map, which
35replaced the older emulator-specific "qwerty" key map (which was never
36intended to be used as a general-purpose key map.)
37
38Make sure to update all of your key character map files to use the new syntax.
39
40If your peripherals relied on the old "qwerty" key map, then you
41may need to provide new device-specific key maps to emulate the old behavior.
42You should create a new key map for each device identified either by
43USB product id / vendor id or by device name.
44
45It is especially important to provide key character map files for all special
46function input devices. These files should simple contain a line to set
47the keyboard type to `SPECIAL_FUNCTION`.
48
49A good way to ensure that all built-in input devices are appropriately configured
50is to run [Dumpsys](/tech/input/dumpsys.html) and look for devices that
51are inappropriately using `Generic.kcm`.
52
53## Migrating to Android Honeycomb 3.2 ##
54
55In Honeycomb 3.2, we added support for joysticks and extended the key layout file
56format to enable joystick axis mapping.
57
58## Migrating to Android Ice Cream Sandwich 4.0 ##
59
60In Ice Cream Sandwich 4.0, we changed the device driver requirements for touch screens
61to follow the standard Linux multitouch input protocol and added support for
62protocol "B". We also support digitizer tablets and stylus-based touch devices.
63
64You will probably need to update your input device driver to implement the Linux
65multitouch input protocol correctly according to the standard.
66
67You will also need to update your input device configuration files because some
68properties have been changed to be simpler and more systematic.
69
70Refer to [Touch Devices](/tech/input/touch-devices.html) for more details about
71driver requirements.