My new Nexus One came pre-installed with CyanogenMod. It's great so far, but since I bought it for software development purposes (initially just learning how to program for Android), should I stay with it, or install the official Android OS (2.3)?
My main concern is compatibility issues with documented API, that is wasting time on debugging problems that shouldn't have been there in the first place.
You're just getting started? It probably won't make a difference, so I would stay with Cyanogen mod. It has the froyo api, and there are very few phones running gingerbread. When gingerbread comes out for the nexus one, then you might want to consider switching, but until then, I would stay with it (unless your unhappy with it while using the phone).
Stay with 2.2 until you need to use something in SDK 9 to make the next killer app. I'm running a phone with Gingerbread, having come from a Nexus One with Cyanogen. Yes, it's cool, but I miss all the convenience of Cyanogen.
Related
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.
This is related to question Android Emulator vs Real Device
What is the current state of art of Android emulators and what are the differences that developers should be aware of. I'm working on an app that uses bluetooth and thinking of adding a feature related to phone calling. Since I can't afford to test on all real devices so what should be the guidelines for developer to test such apps on emulators ?
Genymotion rocks. According to the blog post of Cyril Mottier it is even much better then the hardware devices.
http://www.cyrilmottier.com/2013/06/27/a-productive-android-development-environment/
I test basically everything on several real devices. The only thing I use an emulator for is making sure layouts look good on the configurations I don't have available(I don't have a 7" tablet, for instance). This is only after just about everything else is done.
Functionality is going to be nearly the same on any real device, and the emulator is no guarantee, since it doesn't seem to act like any real device in some cases(openGL, for instance).
Testing usability on a desktop with a mouse just doesn't make sense, unless you're writing something that going to be using that input method. There's a big difference between swiping with a finger and click-dragging with a mouse.
Even if you have the fastest emulator/virtualizer in the world, how can it be any faster than just picking up the phone next to you?
I am trying to test my app and I have lots of problems with Android emulators. Finally, I got one emulator running using Android 2.2 . So I used this one and my app works fine.
I also tested my app using real device, Nexus 7 , Android OS 4.2. App works fine in both versions.
It is safe to consider my app will run fine for OS versions within 4.2 - and 2.2 band? The reason I am asking is because using emulator makes my computer very slow and it takes forever.
In the best case: yes. In worst case: no. It completely depends on the parts of the Android API you're using in your app. For example, private APIs might very well break or change. You should be fine with public APIs, but there's always the chance of a bug in one of the OS versions...
If you want to test your app on various devices and Android versions, you should give apkudo.com and testdroid.com a try.
You can also try https://www.elusivestars.com it allows you to select devices based on specs like OS version, brand... and offering 5 free reviews
I have heard good things about testflightapp, they used to be iOS only and now doing Android.
Something like http://www.perfectomobile.com/ might also be a good way to go.
Here is a list of tools, including test tools
http://www.apptamin.com/blog/app-developer-tools/
Cloud based real device testing is typically either devices you can access and manipulate/automate or users with devices. Personally I think starting with automated testing then finishing off with real user (usability testing) may give you good coverage.
I am the Founder of elusivestars
My boss recently gave me an HTC Wildfire phone for doing an Android version of one of our mobile apps, which is all fine and good, except that the app requires API level 8 (ie Android 2.2), and the phone itself only has Android 2.1 installed. After much googling, I discovered that this phone does support Android 2.2, and carriers will be rolling out updates over the air for this model phone "in the near future".
Since I'm not entirely certain what our lazy carrier's definition of "near future" is, it would be nice if I could download images for particular releases and install them on my phone. Coming from the world of the iPhone, it seems that this should be something rather necessary in order to successfully develop an Android app.
Yet, it doesn't seem that Google offers any Android OS updates themselves. Have I no choice but to wait for the carrier to release an update?
Edit: Thanks for the suggestions regarding the emulator, but I'm asking about testing on hardware only. I already have a working 2.2 emulator image, but I need to test on hardware now, since the emulator does a very poor job of things like video playback and audio processing.
There's a few ways you can test your application on Android 2.2:
1) You can use the Emulator provided by Google in the SDK. It is possible to create a virtual machine of any version of Android with various hardware options. However, the emulator does have some limitations such as not supporting certain hardware options (such as bluetooth) and it's also dreadfully slow to boot.
2) If you have to use an actual phone with 2.2, you can root your phone and flash a custom ROM. I'm not particularly familiar with how to root the Wildfire, or what custom ROMs are available for that specific phone, but Cyanogen Mod has pretty good ROM support for HTC phones, as well as an active forum with tutorials.
No, it's not possible to download images before OTA. You could check CyanogemMod from time to time - they're working on Wildfire support. Also you could use an emulator.
If you are wanting to bounce around with newer versions, I recommend the Nexus One as a dev phone if you can get your hands on one. Or, if you can deal with the constraints, start with a built-in AVD emulator with API 8 until your phone gets the OTA update.
The Motorola Droid is also getting/has 2.2 on it. At least in the States, in seems that most of the phones on Verizon already have it (non-scientific, just from talking to people I know). So if that phone is available, it may be a decent choice.
I am looking to write an Android app for a device that has not been released to the market yet, and so I will not have the hardware to test upon. I have created an AVD (Android Virtual Device) with as much information as is currently available on the web, so assume that this is as like the device as is possible to get.
However, does anyone have any tips or ideas to make the process of developing for this platform as easy as possible? My current apps have been for personal use on my own phone, so can test performance on the hardware etc. which is obviously not possible in this case. Any gotchas to watch out for (apart from the possibility of the device never being released..!!)
Just follow the SDK.
AVD behaves similar to a real device. I really can't think of something it behaved different on a device and on the AVD.
The only device that brought me trouble is the HTC Hero, first phone with HTC Sense. It didn't follow the SDK and they were calls that weren't there. Newer phones with HTC sense doesn't have this issue, as far as I can tell.