Qualcomm Releases Proprietary API Extensions
One thing we at XDA like is information. One thing we hate is convoluted methods. Qualcomm has released proprietary extensions for their latest processors in hopes that developers will take advantage of them instead of releasing actual documentation, source, or other means that would allow developers to program applications for all devices. In their latest bit of PR they state:
The Snapdragon SDK for Android enables mobile developers to access next-generation technology and features of Snapdragon processors via Application Programming Interfaces (APIs) not otherwise available.
The reason these are “not otherwise available” is Qualcomm makes closed and proprietary products. Rather than open up and allow developers to come up with a unified method of handling Qualcomm processors in their applications, the company has made certain extensions available in a special form that must be programmed around and not with other devices.
Initially, the SDK will support devices with the Snapdragon S4 8960 processor, and it is anticipated that the SDK will support future Snapdragon processors across multiple tiers over time.
Using these extensions, you can support one specific processor and perhaps a few others in the future. Again, they have currently released proprietary extensions for just one processor.
“The most powerful applications in mobile are those that are tightly integrated with the underlying hardware,” said Rob Chandhok, president of Qualcomm Internet Services and the company’s senior vice president for software strategy. “Qualcomm is always striving to enable developers and device makers to differentiate their offerings via the unique capabilities found in its industry-leading Snapdragon mobile processors. With the Snapdragon SDK for Android, developers and manufactures can now more easily utilize these features as they work to set their products apart in a crowded ecosystem.”
This statement is full of holes. The most powerful applications are those that are universal and can be used on several devices. This may be the most powerful thing for Qualcomm because people who use these extensions not only serve as Qualcomm evangelists, but they also write software for Qualcomm. Qualcomm is not striving to aid developers. Qualcomm is striving to sell more chips.
However, I will agree with that final bit. Any application you design with proprietary Qualcomm extensions will be set apart from the rest of the crowded Android ecosystem. You will be writing a program which works on only one processor.
Rather than release documentation on how to deal with their chips and integrate them into the Linux layer, they have released proprietary SDK. This is the wrong way to do it on Linux. What they have done is taken a few basic features out of the control of Linux and released them as a separate kit, which is totally dependent on Qualcomm to maintain and upgrade.
Keep this in mind: Qualcomm is a proprietary company with tons of trade secrets. Their release of these proprietary extensions fragments the Linux Kernel and goes against the very principals of open source. These features are not special for this processor; they are available on all modern processors. On top of that, we still have no documenataion on how to use QPST, read individual registers, or use their processors effectively. We’ve always had the ability to program Qualcomm processors to an extent. These proprietary Qualcomm APIs do nothing except abstract the actual processor documentation further and make it look as though Qualcomm was providing something useful. In all actuality, Qualcomm is making moves in the wrong direction.
TLDR: Adoption of these APIs by developers will hurt Android, Linux, and Open-Source in general. Qualcomm has released nothing but a marketing tool.