I developed a small BLE configuration application for a customer (app configures a BLE enabled embedded control). He's hearing back from one of his over seas customers (Japan) that the application will not install. We've targeted Android 4.4 as our minimum SDK and have tested it in the US on Android devices running everything up to and including Marshmallow (6.0) and have had no issues.
The customer insists that applications have to be "specially developed" for Japan on Android. There are no text boxes on the application. Just some check boxes and spinners to select the appropriate numerical values.
I understand that the few LABELS haven't been translated to Japanese (or any foreign language for that matter) but that wouldn't prevent the application from installing, correct?
Thanks in advance.
Related
I have developed an android application that allows to control the Smart TV. It is based on Connect SDK and Conenct SDK Sampler, which allows the phone to pair with the TV and control it with the usual functions such as volume down or navigation on the smart TV interface using the up/down/left/right/ok buttons.
The problem is that according to my statistics, about half of the users have some non-working buttons, I sent a failure event in case the user presses the button, and the Connect SDK responds that the function is not supported, success and failure events are related as 50 at 50. I add screenshots with failure statistics: Button names and number of failures and TV models and the number of failures
I want to reduce the number of non-working buttons for users to a minimum, I will be grateful for any help. I tried to look at several analog applications published on Google Play and saw that some applications, in addition to the Connect SDK, use separate classes for Samsung and other brands, but I did not understand where these classes came from (which library or api?). I am unlikely to be able to develop extensions for each brand, like Tizen or WebOS. I only have Android TV which by the way also has more non-working buttons than working ones.
I am building an application with React Native but the app not working well on a few android devices. So I need to see what's going wrong but I don't know how to set up an emulator for a specific device. Are these problems depends on phone's brand and model or it just depends on their android versions?
Its not really possible. There's two major problems:
Software. Real devices don't ship pure AOSP like runs on the emulator. They add patches and features and there's no way to know what they actually run.
Custom UIs. Many phones provide custom UIs like TouchWhiz and the like which can override Android behavior
Hardware. If your app depends on things that are very hardware specific, like GPS or Camera, they could have issues due to hardware bugs.
If you just want to emulate a specific OS version like KitKat, or specific low memory conditions its possible via emulator configuration. If you really need to test on a device, either buy one or use a service that allows you remote control over specific devices. Amazon has a nice device farm that you can rent over AWS.
One of the biggest challenges when developing for Android is the wide variety of devices and "optimizations" manufacturers make to their Android versions.
The Android emulator is based on AOSP (vanilla Android) and was only recently published with Google services included. This is the most clean version of Android. You can use the emulator to test UI scaling for different screen sizes but it will always behave like an AOSP Android. Google packs a bunch of hardware configurations into Android Studio which you can simply select when creating an virtual device. You can always create a custom hardware profile with custom screen size and resolution. Some manufacturers also change the DPI value of the OS causing the UI to be bigger or smaller, keep this in mind when creating a custom hardware configuration.
Further, you can use the emulator to test the default behaviour on different Android versions. Again, manufacturers change their Android usually causing slightly different behaviour.
I assume that your question is focussed on different behaviour of e.g. Samsung phones having crashes only occuring in Samsung phones (Samsung can be exchanged with any other brand here). Unfortunately, there is no simple way to test this but getting your hands on the faulty device. One option is to use a cloud based test lab (e.g. Firebase Test Lab, App Center or AWS device farm) to test your code on the faulty device or rent the device at a local shop. Most bigger cities have companies renting phones and tablets on a daily or weekly basis.
In the end you will need if statements checking for a specific device, manufacturer or Android version or any combination of them and doing something slightly different to fix the undesired behaviour.
I know that this is not the answer you are looking for, but it's the best I can offer. To tell a little tale of my worst experience: I had once a bug were calling a crypto function caused a kernel panic on HTC (?) phones. This means the user opened my app and the phone rebooted. I was required to implement the entire encryption logic again just for HTC with Android 6.0.
I've never made an app before and am looking to get into it. I also need to upgrade my phone because it's really old. I've heard people say that it is best to test your app on stock android. But I really wanted to buy a Huawei, which might be running an older version of android not stock. What extra benefit would I get by spending the extra $500 to buy a Google Pixel phone for testing. Or is it fine, if I go ahead and test my app on a Huawei? What would be the pros and cons?
Android is an open-source operating system, which means companies can modify it to their liking. They do so by adding what’s known as a custom skin or user interface on top of the OS, which changes its look and feel as well as adds new features. These skins include Samsung Experience, HTC Sense, EMUI (Huawei), and OxygenOS (OnePlus), to name a few.
Some skins, like Huawei’s EMUI, change the overall Android experience quite a bit. For example, until EMUI 5.0 came along, owners of Huawei smartphones didn’t have an app drawer. All the apps installed on a device were placed on the home screen, just like on iPhones.
With stock Android, you get none of that — you only get the features developed by Google.
You can see the comparison of "Stock OS" and "Forked OS" here
https://www.androidauthority.com/what-is-stock-android-845627/
https://www.digitaltrends.com/mobile/what-is-stock-android/
With stock android, you get updates a little faster than other OS.
Coming to your scenario, you can even test an Android App without a physical device and by using Android's Emulator(Virtual Device) which has an Android Stock OS. You can select any version of Android(latest to old) and test your app there. If you are looking only for the purpose of testing I would not recommend you to buy PIXEL you can go ahead with your instincts.
People say it is best to test your app on stock android because the functionality you implement in pure android must work in the other OS as it is a layer on top of the stock OS but there are some chances(very few & negligible) that the functionality you implement in other OS might not work in stock OS. You can always use an Emulator for testing.
I am an Android developer. In my 5 years experience, I used both pixel and Oneplus, I did not find any advantages for stock android over Oneplus's Oxygen Os.
I seem to be a bit at loss with the status and development of MIDlet managers for Android or Windows Mobile devices.
I know of JBlend and JBed but I can't work out who those projects belong to.
JBlend is installed on my LG540 by the manufacturer but not on Galaxy S1 for example.
I need to find a way to give a reliable set of instructions to the users to get these installed on their device.
Is there is a central place to download them from?
Is there a road map for those projects (i.e Android 2.3)?
Why aren't those available from the Market place?
Is a midlet manager available on all Windows mobile 7 devices?
Some (eg. JBed) were said to be found on Android Market, however those were probably from some 3rd parties without legal rights, they don't appear on the Market now.
JBed :
I found some versions of JBed were ripped off of firmwares of some Android phones. The company doesn't have it listed as a downloadable product, so it seems to be developed for bigger companies, like phone manufacturers, to be integrated in their firmwares. That seems to be the reason why we don't see much info or new releases.
JBed is owned by Myriad Group (formerly known as Esmertec)
http://www.myriadgroup.com
Netmite App Runner :
App Runner is a converter + Android runtime (for shared java functions). It's said to be a corporation, though it looks like a one-man operation. The 'homepage' of the website instantly redirects to the 'Android App Runner' pages, which are just a few poorly structured html text, with poorly written English, and the author uses the words 'we' and 'I' interchangeably. No company info. The application is not available on stock market applications, to what I see.
http://www.netmite.com/android/
Most (all?) Java emulators need root access, and require phone owners to do some hacks on the device, which in most situations invalidate their warranties. This is another disadvantage for them to spread.
I would expect a stock java emulator on most phone models, probably license fees and maintenance (firmware updates) are keeping manufacturers away.
I uploaded an app built with 1.5 SDK into market, but someone told me they can not find it in the market in their phone. I do not know why, because I have test it in 2.1 emulator.
Then how to know if my app is available in android market with all versions, is there any url to test that?
There are a couple of Web front-ends available to the market where you can check if the app appears in principle. E.g. http://www.cyrket.com
Whether the market lists your app from a specific phone depends on the phone and the resources your app needs. E.g. if your app does not support small screens (you can set this in the manifest), the market won't list it for phones like the HTC Tattoo.
Apparently the sequence in which apps are displayed by the market also varies by phone, carrier and country. You can get the app "Market Enabler" which allows you to make your phone pretend it's in a different country, in order to check if your app displays fine for all country markets.