|
Again, this is down to the sensitivity of lithium
batteries. If the charge of the battery falls below
the minimum safe level, the device will charge it
before allowing you to take power. There are a couple
of reasons – it's important to make sure the battery
doesn't fall into deep discharge, and to ensure that
device power isn't immediately cut off (=hard crash)
if the user subsequently disconnects the power before
the device charges to acceptable levels.
No. It comes down to mediocre design, and unfortunate misconceptions, and tunnel vision about what's worth designing for and what isn't.1. If the main board is receiving power, it can use some of that power. 2. The user can pull the plug, and and cut power to the main board, and guess what, the main board can simply stop working without trying to consume power from a battery without enough power to operate safely. 3. The operating system can employ an architecture that tolerates hard faults, in the middle of code execution, and address them upon the next successful reboot. Yeah, that's expensive to develop, and yeah, Apple computers are expensive. 4. With each of these preceding points in place Deep Discharge of lithium batteries is irrelevant, because the main board is in control of whether or not the battery is even called into action at all. With AC power, no power needs to be sourced from the battery. Anxieties about a bricked device are circumvented with a durably designed OS. The end. |
There are a lot of edge cases; consider that in some cases devices being used a full-blast power can draw more current when operating then a charging device can supply, meaning they can still discharge batteries even when AC power is available. (Apple example – smaller power adapter than supplied. Still technically works to charge, but not supply power. Or any arbitrary 500mA USB charger.)
Yeah, I don't doubt that you could probably engineer something that works. But would the complexity be worth it? Probably not. The fact that every modern device (Apple and otherwise) behave this way should suggest that it's not that easy – if it were, it wouldn't be implemented that way.