This is Why Third-party Cameras on Android Don’t Work Well. Sometimes Even Google Camera

Posted on the 20 June 2023 by Top10

In the world of Android, there has long been a seemingly inexplicable problem at first glance - camera programs do not work well. Pictures taken with third-party applications sometimes turn out significantly worse than with a standard pre-installed application, and sometimes, in addition to this, additional camera modules are not supported at all. This applies not only to individual third-party applications exclusively for shooting (which, by the way, are very popular with users, because standard utilities do not always have a professional mode, night shooting and other functions), but also cameras built into other applications - for example, viewfinders in messengers and social networks that allow you to take a photo or video without leaving the service.

If you dig deeper into this issue, then everything, in principle, becomes clear - in the Android world there is an unsolvable problem that they tried to get around (but not very successfully). That's about it later in the article.

Why doesn't the iPhone have this problem

Describe the problem most clearly in contrast to the opposite camp - iOS. And when it comes to comparing Android and iOS, the concept of "optimization" always appears.

Every year, dozens of new devices are released under the control of the "green robot", and this is if you count only the most famous manufacturers in the global arena. All of them are similar only externally - inside they are often completely different devices for which applications must be optimized. And if all sorts of toys and office programs only need to be optimized for the processor and the aspect ratio of the display (in this regard, everything is relatively simple, because there are not so many chipsets and screens themselves), then in the case of camera applications, everything is much more complicated - for different gadgets different sensors and their combinations, for which a different image signal processor (Image Signal Processor, ISP) built into the chipset is responsible.

For example, one smartphone (Pixel 6a) may have a system of 12.2 MP and 12 MP (wide-angle) cameras controlled by Tensor, another (TECNO Camon 19 Pro) may have a combination of 64 MP, 50 MP (telephoto) and 2 MP (depth sensor) with a Helio G96 processor, their competitor (OnePlus Nord CE 3 Lite) has 108 MP, 2 MP (macro) and 2 MP (depth sensor) cameras with a Snapdragon 695 5G chipset, and someone does I decided to equip my smartphone (OPPO Reno8 T) with a microscopic lens instead of the usual macro module (even if you don't remember the unusual 100 MP sensor). But you also need to consider the front camera ...

At the same time, Apple releases no more than five iPhones a year, while forcing developers to adhere to strict requirements. In addition, many of the "apple" smartphones of the same year run on the same processor, and most of the cameras are also repeated. As a result, in the case of iOS, it is easy for developers to optimize their applications for the hardware of all devices, but this is impossible to do on Android.

This problem is not theoretical, but practical - it is worth remembering at least the popular Moment camera application, whose developers decided in 2020 to stop developing the Android version of the utility. Then they wrote:

We love Android, but unfortunately we don't have the opportunity to continue developing the app. [...] The bottom line is that phone manufacturers like to create their own versions of Android, each with different access to certain camera features. The result is a random compatibility list where each phone has different app features available. The problem only gets worse every time a new version of Android comes out because it breaks proprietary modifications that phone manufacturers have made to their phones.

With their farewell letter, Moment Inc revealed another problem, now not at all obvious - each of the Android firmware allows third-party programs to different camera capabilities, and these access levels change with each version of the system (and, probably, with each assembly of the shell from the manufacturer). To understand how significant this problem is, it is worth remembering at least MIUI: the same firmware version can be based on different generations of Android. That is, for example, to provide support for Xiaomi, Redmi and POCO smartphones (without remembering models without MIUI) in 2022, developers had to take into account the limitations of MIUI 13 + Android 12 and MIUI 13 + Android 13, and then do the same for MIUI 14 in conjunction with Android 13 and Android 14 (remembering to keep the old support for those who have not updated), and so on. And this is taking into account the fact that new smartphones also have new camera bundles (like the cameras themselves).

In addition, the same smartphone model may have different characteristics depending on the region, that is, the functionality of third-party applications may differ even on the same model.

Google has been trying to fix things for a long time (but not persistently)

The Android fragmentation problem has been known for about as long as Android itself. And Google was trying to level the pitfalls of camera support even before there was a fashion for installing double rear eyes.

Back in Android 5, the Camera2 API appeared, which allows third-party applications to influence camera settings (if the manufacturer allows it) - adjust ISO, shutter speed, shooting in RAW, and more. Over time, Camera2 was followed by other technologies like CameraX, which gives third-party developers access to various shooting modes (like portraits and night mode). Probably, work on solving the problem has not stopped until now, because recently, with the release of Android 13, the Camera HAL (Hardware Abstraction Layer) interface appeared, which acts as a kind of link between the software of the upper (Camera2) and lower levels. In theory, HAL allows you to use the standard API for working with the camera, regardless of what types of sensors and what camera drivers are used on the device.

It would seem that the combination of Camera2, CameraX and HAL is the very solution that would eliminate the problem of Android fragmentation in the issue of camera support (or at least reduce it to a minimum). But why is the problem still present? Because Google is not obligated to implement support for any of these technologies.

For example, companies have the right not to provide access to camera settings through Camera2 or not to provide special shooting modes through CameraX. The same applies to HAL - implementing this interface is extremely troublesome, and manufacturers may simply not be interested in it. The problem is that even if there is support for one of the technologies, it is not necessarily the same. For example, only for Camera2 there are five levels of implementation, differing in the number of available functions.

By the way, you can find out about Camera2 support on a specific smartphone through the application Camera2 API Probe - it shows both the implementation level (Hardware Support Level item), and specific supported and unsupported functions.

💡 Mostly only Samsung (and Google itself) implement CameraX support in most of their devices (but even Google for some reason deprived it of the Pixel 6 Pro, the basic Pixel 7 and Pixel 7a).

Smartphones may lose previous API support

In 2021, owners of OnePlus smartphones using a ported Google Camera faced an incident - after updating the firmware to OxygenOS 12, third-party camera applications lost access to auxiliary modules, that is, wide-angle, macro and zoom cameras. This is because OxygenOS 12 is based on parent company OPPO's ColorOS, and it does not support the previously used loophole to access the Camera2 API.

To be fair, it should be noted earlier that OnePlus subsequently fixed the problem, and it was tacitly believed that the developers made an oversight by accident. But the fact remains that the previously existing support for the camera API may disappear with one of the updates. And it is not known whether another manufacturer in place of OnePlus will return support for camera access technologies, because outside the Pixel camp, only OnePlus, as it is tacitly believed, has a large share of geek users - others may not have enough dissatisfied people to return the API.

Everything can change, but it is unlikely in the near future

Apparently, one of the main reasons for such a strong swing of the problem is that it worries not so many people. For quick photos and videos via instant messengers and social networks, it seems that basic access to the camera, implemented in most smartphones, is enough, and advanced settings are important mainly for lovers of mobile photos (but even those who buy a smartphone usually choose models with native support for Pro-mode in the standard camera app).

Nevertheless, the appearance of HAL in Android 13 shows that Google is not going to let the problem take its course - the company is struggling with it, but it is doing it slowly, because it does not see any serious reasons to greatly complicate the work of OEMs with some stringent requirements.

Po material Android Police.

Программы
#thirdparty #Cameras #Android #dont #work #Google #Camera