[myTouch 4G Android Development] saranhai:
Please Read

FAQ - THE BIG PICTURE​

What is ICS?

ICS is Ice Cream Sandwich - Google's latest version of Android.

- Some of the very latest phones on the market already have it installed. e.g HTC One series

- Some slightly older phones will eventually be 'upgraded' to ICS e.g Desire HD, but this may be a number of months away, and promised 'upgrades' have sometimes never been delivered at all.

- If / when it does arrive for Desire HD it may not happen for everybody at the same time, sometimes it's carrier by carrier, and finally 'retail' (non carrier branded) handsets that get the upgrade last!

- If / when it does arrive, it will be overlayed with HTC's Sense (some like it, some don't)

- In the meantime, folks are working on getting ICS on your Desire HD BEFORE it's officially released for the phone, with and without Sense (giving you a choice)

So why don't some features work?

Well, the ICS being used on Desire HD is 'taken' from officially released ICS phones like the HTC One range, or 'leaked' ROMS from similar phones.

However, those phones have slightly different hardware and features than the Desire HD - so they aren't exactly the same. This means that parts of the software have to be 'ported' to work on the Desire HD.

OK, so why is porting so difficult?

The Android O/S is 'open source' meaning that anybody can see the actual source code for themselves, and see how it all works. They can modify it and adapt it to suit their needs (good).

Phone manufacturers USE Android in their phones, but they don't have to make all their own 'extra' software open source too. They like to protect their software by keeping it secret (not so good). There are many reasons why they do this, both good and bad, but it makes porting difficult.

When developers don't have access to the source code for parts of a phone, they have to write their own!... this means they have to have highly detailed knowledge of the phone, its hardware and other software components. Sometimes they can try things by trial and error, sometimes they have knowledge from a similar phone, and sometimes they just don't know.

This is the most common issue for 'ported' ROMS. Things like Power Management, Camera, WiFi, GPS etc are the things that make one manufacturer's phone stand out from another, and therefore end up 'secret'.

This does not mean that they will never work, it only means that they take longer to get working.

Who does the porting?

The actual porting is done by surprisingly few people:

- Some guys who know 'inside secrets'

- Some guys who are just great developers but who don't have the secrets

- Some guys who can develop but need a little guidance

- Some of them are 'great guys' helping the community (and keeping their own skills up to date)

- Some of them have other motives (good and bad)

- Some of them form teams to work on different ports

Why don't all the developers work together?

Developers are people - they have all the same issues as everybody else:

- Some like working alone

- Some feel that other developers standards aren't high enough

- Some are trying to fix a specific problem that THEY want fixed

- Some teams have different goals (one team might be aiming for a port that can work on 5 different phones, whilst another team are focused on a single phone. One team may want a totally 'clean' ROM and another want a ROM with lots of customisation options built in)

- Sometimes, people just don't get along with each other

I thought the ROM makers did all this work?

You'd be wrong.

The ROM developers use the ported code to make their ROMs. Sometimes they can choose different components from the various development teams to build a ROM.

Imagine a motor car:

1) The 'developers' make the engine, wheels, steering, chassis etc

2) The ROM Makers build their car choosing the components they need for their ROM

3) The 'Modders' add custom paint colours, fancy headlights, custom interior etc

The 'developers' are not smarter than the ROM makers, and the ROM makers are not smarter than the modders. They just have different roles (and some people do all three roles!)