I developing a low-latency audio app on Android, and found sth about FEATURE_AUDIO_PRO from https://developer.android.com/ndk/guides/audio/audio-latency .
But when I run my app on dozens of phones, every one is FEATURE_AUDIO_PRO support is False. Can someone tell me which Android phone is supported it? Thank you.
Most likely only Google's Pixel devices and flagship Samsung ones, as very few vendors seem to care that much.
Samsung has heavily invested in professional audio, to the point of having their own SDK, before Google finally added the AAudio APIs.
https://developer.samsung.com/galaxy/professional-audio
Supported by all Galaxy S and Galaxy Note series, as per Programming Guide.
So those are the models you can be sure to have proper support.
Related
I know this question has been asked before but its been a long time. Asking this question again to gather any new hacks/thoughts/approaches.
I need to access both front and back camera simultaneously.
So far I have tried implementations using android camera API (Dual Camera- by Jens) and camera2 API. Both implementations work fine on devices having hardware support(Dual Image Signal Processors) for dual camera feature.I have tested and both implementations works fine on HTC one M8(Snapdragon 801) & Xiaomi Mi4(Snapdragon 801).
Both implementations fails on Samsung s6 even though it's hardware capable (Exynos 7420 has dual ISP). Also, the default camera app on S6 supports dual camera mode.
Any ideas/advice on this ?
Thanks in advance.
Update:18/11/2015 --> Tried using the Samsung Galaxy Camera SDK but still no luck.
I had to implement the exact same thing in a previous project. I know the struggle, and I know how much code you have to write to make this work. Especially with Google providing TWO camera apis (camera and camera2).
Even though I got it working on some devices (like HTC M8) which basically had two Image Signal Processor (necessary to access both cameras at the same time), I had trouble with the Samsung devices that had this feature implemented in their native camera application.
Then I turned around and found out that Samsung provides different special APIs for its "very special" OS. What that means, is that for every special feature that Samsung has (like the finger print sensor, the S-pen, and soooo on), they provide a API for the developers to work with.
I found the SCamera API on their site here . They also provide very good documentation and it is ok to implement.
The question you need to ask yourself: is it really worth it to integrate yet another camera API in your app to make this work on Samsung devices as well? Take in consideration that the proportion of Samsung devices is really high.
My advice? Try and implement it in a different project and see how that goes. If you get it to work in a decent amount of time and it's not very complicated, then integrate it in your main project.
I hope this helps you. Have a great day and good luck!
I am about to port my application on android. Since I am new to this system I would like to ask for tips on android phones for testing my app. The number of phones is pretty huge so it is pretty hard to choose the right one. Also I wasn't able to find some kind of official chart of system distribution.
I know that it really depends on hardware and how much my app demands from hardware. It is pretty basic app and I am able to run this app at 30fps on iPhone 4S.
I did some research and people are talking about the latest phones but I think that it is not necessary to buy the newest one. Also, is there option to buy for example tablet and emulate android devices on this tablet?
So my goal is to focus on devices people have the most.
Thank you for any advice.
You can run many of your tests on the Android emulator. Using it together
with the DDMS will allow you to simulate several real life situations
(arriving call, arriving sms, change position...)
You can use BlueStacks which is an emulator put on steroids.
TestFairy and UTest are awsome communities for crowd testing were you can test ~any device you can think of.
Still, it is a good idea, especially if you plan your run at Android to be long,
to maintain a small stash of real devices.
Which devices should you buy? Which OS version should they run?
The Android dashboard is the official source for answering some of these questions. It gives an
up to date statistics of worldwide distribution by OS version, svreen size/density and more:
OS Distribution
Screen type Distribution
So, true to July 2014 you would want devices running Jelly Bean, Gingerbread & ICS and you screens of types normal/hdpi, normal/xxhdpi and normal/xhdpi. This list can grow but even this will provide you with a good sample of the Android device ecosystem.
As for manufacturers, the picture is clear: Samsung is the winner. Exact number &
distributions are harder to find here, but a Google search might help.
If my memory serves me write some 65% of all Android devices are Samsungs made with
Galaxy S3 taking 15% (of ENTIRE Android market) and Galaxy S4 = 10%.
Device screen features:
Galaxy S2 is normal/hdpi
Galaxy S3 is normal/xhdpi
Galaxy S4/S5 is normal/xxhdpi
These will probably be your best bet. You will do smartly to install on them 2-3 different OS versions, at
minimum Jelly Bean and ICS.
The Android Development Tools in Eclipse and Android Studio both have emulators that can be used to emulate different devices, including tablets and phones. You don't need to buy anything to be able to test your app on an emulator. The emulators run on your computer.
For more information
As for what devices most people have, while I don't have official statistics, looking at my own applications' downloads, most people are using either a Nexus 4 or Nexus 5.
I'm very curius about one thing:
Is it possible that for instance, Jelly Bean on HTC differs from Jelly Bean on Samsung, or Sony, Motorola..etc? If "YES" why?
Actually this IS programming question because, some apps that i'm testing are working on HTC, but not (not fully working, or with "bugs" ) on Samsung, or vice versa.
Is it possible that for instance, Jelly Bean on HTC differs from Jelly Bean on Samsung, or Sony, Motorola..etc?
Absolutely.
If "YES" why?
Because they can. Android is open source software, meaning that anyone can modify it as they see fit.
Devices that legitimately have the Play Store app on them must meet certain compatibility criteria, including passing a test suite designed to ensure that the Android APIs are not horribly broken.
Although any "Jelly Bean" version is based on the same ASOP core there are a bunch of reasons why things could differ. The inclusion of Google Mobile Services (on Nexus7 for instance, but not Kindle Fire), chipset level changes that are developed by TI or Qualcomm etc to support the hardware platform as well as customizations and optimizations my OEMs and ODMs (eg a custom launcher or inclusion of Dolby Digital to the audio pipeline) are going to mean potentially different behaviors, though mostly they should not change core API functionality
Within any given major release there are also fixes and changes for the point releases which may show up in your tests.
Do you have examples of the sorts of things you are seeing
Yes, because some companies all vary, and it takes time to get the next Android Version into their devices. Say for instance when Android 5.0 Key Lime Pie comes out this May, Motorola will be the first to have it with the Motorola X, but it will take other companies such as LG some time to get to it. My LG Android device doesn't even go to Android 3.0 Honeycomb yet.
I'm currently developing apps for iOS, but I also want to start developing for android. The device to use for iOS development is not too hard of a choice, because, well, you don't really have much of a choice, either an iPhone, an iPad or an iPod Touch, end of story. But for Android, you have a much wider spectrum, there are many different models and many different brands. So, what would you recomend for Android development. I don't want to spend that much money, but also I want a device that won't get obsolete too soon. Any suggestions?
The Nexus series of dev phones should be an obvious choice since they are the first ones to be updated with new releases.
Also, as rony l pointed out, they are installed with vanilla Android and are not contaminated with 3rd party software.
I would choose the latest Nexus Series phone since it is the most 'Google Android' phone out there. They seem to be the first ones to be updated when new releases of android comes out too! The Nexus S is a good shout since it's the latest one.
Nexus S is a good choice.It's new android phone from Google and is quite well for development. You can read more here: http://www.google.com/nexus/#/tech-specs . But of course it's better to have some devices for testing.
You are best to use a Google branded phone since it has no extra "skins" on top of the OS like most other brands do. The Google Nexus series is discontinued now, so get a Pixel phone instead.
Using this library, ZXing, we have a project at school in which we'll implement a inventory system using Android phones.
We aim to use an Android phone to be a inexpensive replacement to this:
I've read some of the warnings on the FAQ for certain phones. Is there a specific phone that Android developers prefer (with use of the ZXing library in mind)? We have to buy the phone ourselves, so we would prefer not to buy the wrong phone!
You want phones with auto-focus capability on their cameras. Some of the smaller/cheaper phones, like the HTC Tattoo, have fixed-focus cameras. Some tablets do not have a camera at all. Most Android phones have auto-focus cameras, AFAICT. Certainly, every one I have used has had one, and I have quite the collection at this point.
I'd watch out for phones running Android 1.x, not because of any ZXing problems, but if you are going to spend money, I'd invest in an Android 2.x device. One advantage of the Nexus One cited by Blumer is that it will get new Android releases as fast or faster than any other device.
Beyond that, and beyond specific problems cited on the ZXing site, anything should do, if it works with your carrier, is a color you like, etc. :-)
Developer here. The single factor that really makes barcode scanning easy is an auto-focus camera. Resolution, CPU, etc. don't matter. The library can work with any version of Android but 1.5+ is recommended.
So, just about any used Android phone ought to be fine.
Follow up at http://groups.google.com/group/zxing .
I don't know that there's necessarily a "preferred" developer phone, but the Nexus One is the official developer phone as endorsed by Google: http://android.brightstarcorp.com/index.htm . Despite being kind of a business flop, it's a very nice phone, and it's hard to imagine how you could go wrong with it for development purposes. Since it's put out by Google, it should support everything there is to support, and it's not mentioned as having any issues in ZXing's FAQ.