I am an experienced Apple developer who is looking to develop for Android. I do not currently own any Android devices, so I am considering purchasing a B&N Nook HD for development purposes, which now runs Android. From the research I've done, it seems that the spectrum of Android devices is quite varied and disorganized compared to the Apple world (no offense intended). So, my question is, even though there are better (more expensive, too) devices to purchase (Nexus tablets), will a Nook HD suffice for beginning Android development? By the way, my intentions are to develop mostly tablet utilities with emphasis on networking and data manipulation. I'm not really interested in hardware-specific areas like graphics and sensory input (with the exception of the touchscreen, of course). Thank you for your advice.
In a general sense, yes. Your device will do just fine. However, a caveat is that you must take into consideration the flavor of android you are planning to target. e.g. Working on a Froyo flavor won't necessary guarantee it will run on the latest Jellybean and so on.
Hell, I started developing android almost 2 years ago (but stopped indefinitely) but it was only this year that I took it upon myself to get a PHYSICAL android device when I continued to develop my app. For no particular reason I just dropped by the local gadget mall and randomly picked the Samsung Tab 3. Yes, reviews are bad and it kernel panics a lot but these are trivial things for my specific use.
The one major problem I had? Dealing with REAL input from REAL data on a REAL device. My app worked sufficiently fine on the emulator. When it ran on the Tab it was breaking everywhere!
Related
I want to get into developing apps for Android because of its large userbase. However, at the moment I do not have a smartphone. I'm also not too keen on getting an Android phone in the future.
What problems could I encounter when developing apps for Android solely using an emulator? I could use my parents' Android phones for the occasional testing, but will an emulator prove sufficient otherwise? Furthermore, is it possible to set up an Android Virtual Device with low-end hardware on my computer to test out apps with low-end phones?
note0: I do not plan on developing apps which require use of the phone's sensors (such as gyros, GPS, etc.) I only plan on developing apps which require internet access for API calls and perhaps microphone usage (I can't give away too many details right now ;) )
note1: I know this question has been asked before on stackoverflow (albeit 4 years ago). However, I feel it is important to revisit the question because emulators, hardware, and Android itself have changed enormously in the last few years.
edit: My main issues are problems like the app looking weird on the phone despite it looking fine on the emulator or working slowly on the phone but working fine on the emulator. Will every app which works fine on the emulator work fine on the phone as well with a similar hardware configuration as the emulator? I'm in particular targetting devices with Android 4.x/5.x.
Without a doubt, the biggest problem is that many functions like push
notifications, maps, geo-location, in-app vending etc. cannot be
tested with an emulator. The reason is that all these functions are
present in the Google Play Services library which is not present on
emulators.
Another important reason for testing on hardware devices is that the
OS implementation is changed by manufacturers like Samsung, HTC and
others, and therefore, certain problems & exceptions are not observed
till a real device is used.
But the most important reason has to be that running apps on an
actual phone is a hell of a lot more fun that it is with the painfully
slow and retarded emulators! One of the most important things about
Android is that anybody with an Android phone can easily explore
computer science concepts by running simple programs on their phone.
It is incredibly easy, even for a novice, to just fire up their
Android device and start exploring the world of programming! Till just a few years back, it was incredibly difficult to debug an app on a Symbian or Palm or WinCE device. iOS is still as retarded when it comes to running the simplest apps, you have to create a provisioning profile to run a Hello World app on an iPhone!
EDIT:
If your processor supports Intel virtualization, then the emulator can be made to run as fast as a real device. You need to check that out. If your PC is low-end in the sense that it does not support such virtualization, then running and testing Android apps will be a painful, tedious experience that will suck all the fun out of the development process.
Emulators do have one significant advantage over real devices - an emulator is able to access web services on a localhost. If you are still in development phase on your local server and have not yet shifted to a publicly hosted environment, the emulator can easily access web services on a local server. All you have to do is put your computer on the same network as the local server and you're good to go. A real device cannot access a localhost; its impossible, as far as I know.
The Android emulator is a true emulator - it emulates sensors as well, so in fact you can test sensor programming (with some limitations) on an emulator. It cannot do things like GPS, maps etc. because those features have been migrated to the Google Play Services library, and they require a valid Google account to be used, which is why that library is not present on an emulator. If you only plan to work with web services, APIs', GUIs' then I suppose an emulator is more than sufficient. Unlike the iOS simulator, an Android emulator generally exhibits the WYSIWYG behavior, so your GUI will not differ on actual devices, although you do need to test your GUI on multiple AVDs' with different screen form factors.
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.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I'm in the market for a basic Android device. My main reason for buying one is for learning to develop mobile apps. While the Eclipse IDE offers a virtual Android device for testing apps, it's not the same thing as a real Android device and won't put me on the same wavelength as Android device users. (The most obvious example: Visibility is poorer in a bright outdoor environment than indoors.)
Some questions:
Is a tablet PC the type of device I should get? I get the impression that it's more versatile than other devices. I don't need a smartphone, because my dumbphone works well for me, and I don't even use it that much. And I HATE the idea of being locked into a specific wireless provider. I'm not interested in ebooks, because I still like books on paper better.
Should I get a device with Android 2.3 or 4.0? On the one hand, over 90% of current Android users are using version 2.3.3 or earlier. On the other hand, 4.0 is better and will be gaining market share. (Would buying an Android 2.3 device now and buying an Android 4.0 device later be my best bet?)
In addition to wifi, what else should I look for?
Are there any brands/models I should avoid? I remember hearing that the Packard Bell PCs were the most unreliable. The Yugo was a terrible value. (An old Oldsmobile Cutlass clunker was a better value - at least as reliable but MUCH cheaper to buy.)
Is there any point in buying used? The listings on Ebay and Google Shopping don't show the used tablet PCs to be that much cheaper than new ones, and there are more new tablets than used ones available.
Ebay listings currently (5-23-2012) show over 200 Android 2.3 tablets selling for $55-$90:
http://www.ebay.com/sch/iPads-Tablets-eBook-Readers-/171485/i.html?Operating%2520System=Android%25202%252E3%252Ex%2520Gingerbread&LH_BIN=1&Internet%2520Connectivity=Wi%252DFi%7CWi%252DFi%2520%252B%25203G%7CWi%252DFi%2520%252B%25204G&_nkw=android+2.3&_dmpt=US_Tablets&rt=nc&LH_ItemCondition=1000
Ebay listings currently (5-23-2012) show over 200 Android 4.0 tablets selling for $83-$107:
http://www.ebay.com/sch/iPads-Tablets-eBook-Readers-/171485/i.html?Operating%2520System=Android%25204%252Ex%2520Ice%2520Cream%2520Sandwich&LH_BIN=1&LH_ItemCondition=1000&Type=Tablet&_pppn=r1&_dmpt=US_Tablets&Internet%2520Connectivity=Wi%252DFi%7CWi%252DFi%2520%252B%25203G%7CWi%252DFi%2520%252B%25204G
What do you think?
This question is probably off topic.
But here are my thoughts:
If you want to develop the truth is you should try to have access (be it ownership or just access) to any devices that you intend to support with your applications. This is certainly not possible for everyone, but there are ways that you can maximize your value while building a device collection by aiming to hit the largest swath of different types of devices.
You have no obligation to be locked into a contract (or even any service) for a telephone. If you go to a carrier store you can purchase a device at full price and leave the store without activating any service on it (In general, subject to change at the whim of whatever store you are in =) If you intend to by a phone for full price expect the range of prices to be $380-$600. From what I can tell about your situation I would think that a phone is best route for you to start off with. In addition to being able to buy from a carrier, Google also from time to time directly sells a "Nexus" device which is released with stock(ish) android OS (no skins etc..) The current device in this line is the Galaxy Nexus which is being sold directly through the (former) Android Market That is a good choice because it is more or less the latest generation of hardware, and the newest OS (these Nexus devices tend to receive their OS updates in a more timely manner than carrier tied devices). In fact the first Nexus device was marketed heavily toward developers, this line of phones was meant to be used for development.
Is a tablet PC the type of device I should get?
If you intend to create applications for tablets then yes. If you intend to develop phone applications you should really be testing on a phone.
Should I get a device with Android 2.3 or 4.0?
Ideally both on different devices. If you must pick one, then it depends on your budget 4.0 is only on the newest devices right now so they are likely going to be more expensive than some of the devices you can find with 2.3. (although $399 for the Galaxy Nexus might be hard to beat in price, even for some of the 2.3 devices for sale)
In addition to wifi, what else should I look for?
On phones that can be readily purchased in the US your choices are basically boiled down to only a few things. Screen Size (anywhere from tiny to pretty damn big for a phone), HardwareKeyboard(in a few different shapes and sizes), Camera (if you care about it). In general most of the other features are fairly standard (i.e. bluetooth, gps, accelerometer, etc..) The other thing to consider would be "Oomph", despite being called phones what people are carrying around today are small computers. They have CPU, GPU and RAM just the same as PCs. Battery life is the last major divisor, there is a fairly wide range of battery life expectancy (hint, massive screen and multiple cores need lots of battery). However since you don't seem to want to use this device as your phone some of this stuff may not matter as much to you.
Are there any brands/models I should avoid?
Anything in the list of your first ebay link. In general (in the US) the major phone manufactures are: HTC, Motorola, Sony, LG, Samsung. There are many other devices out there that are nice as well. But these guys are generally the ones consistently pumping out the most used phones. Idealy you should aim for a spread of device's made by different manufacturers. The custom skins and addons they like to use in their versions of the OS tend to like extra testing. Having one of each will help you help the largest chunk of your users.
Is there any point in buying used?
There are good deals to be had on nice but slightly dated phones. If you don't know what you are looking at I'd stay away though, it could be easy to get ripped off.
Well it does not seem like you need a very expensive device. Guess you could buy Google's and Samsung's old Nexus S which is not the newest around but still has android 4 because it's Google's "offcial" or something. And since it rolled out with 2.3, you should be able to download the old version somewhere and flash it. That phone should be cheaper, especially second-hand.
I mean since there are so many devices with different screen sizes and all you can't really find one that will reveal what other device-users will think of your apps.
Carrier options should be a non-issue for development. You can buy any Android phone for any
carrier including unlocked, and that should not affect your development flexibility.
Get the lowest version you can have. 2.3 and 2.2 have the most market shares right now. There is no reason to get 4.0, unless you are developing specifically for Android OS 4.0 and above (meaning that you actually use API that only exist on 4.0 and above and not lower).
Your development platform also affects what phone model to use. If you use Windows, get a phone that comes with Windows drivers. It'd be a bummer to buy one only to find out that Windows can't detect it. Mac and Linux do not need drivers, as they are both UNIX based.
You should get a phone. If you don't want to use it you don't have to... but most likely the majority of your users will be on a device. If you want a device that is always up to date and is great for testing I recommend the Galaxy Nexus.
Since most Android phone users are not on the most up to date os version, I prefer testing on a phone with 2.3
If you temporarily need a phone to test your app, Sony Mobile developer program has a phone loaner program in US and Canada where you can borrow a device for up to 30 days.
http://developer.sonymobile.com/wportal/devworld/phones/borrow-a-phone
/Magnus E
Sony Mobile
I would like to start doing some Android development, and would like a cheap device to deploy apps to, just for testing and demo purposes. Is it possible to deploy apps to, for instance, an Archos 28? I don't know much about Android development yet, and haven't found a good answer to this question elsewhere. Thanks.
I can recommend the A28 for development. The user experience is rather crashy, part of the problem lies in the low RAM (128Mb is very little for an Android device). But I developed JGame on an A28 and did not run into firmware bugs. It also runs Flash 10.x in case you want to experiment with that.
I second that you should in particular worried about devices with a larger display. I found that graphical performance can be much worse on those devices. The A28 has a pretty good GPU considering it has several times fewer pixels than the average Android device.
Yes, it is running android 2.2 froyo. That should work fine for development purposes. Just keep in mind that some people will be using your app on cell phones that may be "larger" than the archos' screen size.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I've been intrigued by all the android world since I first learned about it and would like to get my hands dirty developing for it. The question that comes to mind is if it's worth buying the unlocked phones that Android sells directly or not.
Those phones (link) quoting the Android page:
Run and debug your Android™
applications directly on a device.
Modify and rebuild the Android
operating system, and flash it onto a
phone. The Android Dev Phone 1 is
carrier independent, and available for
purchase by any developer registered
with Android Market™.
Please note that this device is
intended for development purposes, and
may not include certain features found
on consumer Android devices.
So will it be worth it to purchase one of those as a tool for app testing as opposed to developing and testing just on Eclipse or one of the other IDEs and emulators.
-Have you tried it, do you own one?
I'm assuming they have the same specs as the HTC Dream and the HTC Magic, since they look exactly the same although they have a 'developers edition' custom black design not that I really care about the design for this particular item.
All comments are welcomed,
Thanks in advance.
Update:
I'll leave it open until tomorrow to see if there are any more answers, then I'll just pick the most voted since it's really a subjective question with no good or bad answer.
It depends what sort of applications you wish to develop. I find that the emulators very accurately reflect how things work on genuine devices; you can seamlessly connect to either an emulator or a dev phone using the command line tools, the Eclipse tools, the debugger etc.
Also, while you can flash your dev phone to a new OS version, HTC often lag behind (e.g. there's still no 2.0 image available) and it's much easier and faster to just use the emulators. The emulators also allow you to create and test with different screen resolutions, whereas the two dev phones available are only "standard" resolution.
I find it's quite rare that I need to use my ADP1 dev phone for development -- my rooted consumer HTC Hero works fine for most of the development I do.. allowing me to pull files from the device etc. Though the only reason I use my Hero rather than an emulator is because I've been working on an app that uses audio recording functionality.
However, where having a physical device would help is where you need to do specific stuff regarding the camera, audio hardware, orientation and compass sensors, GPS, wireless network access and so on. Should you need to connect a debugger to work on hardware-related issues like the above, then you would definitely need a dev phone.
Overall, it's definitely worth buying an Android phone for testing and demonstration purposes, but whether it's a development phone is up to your requirements.
If you plan on developing apps that you intend to put on the Android marketplace, it's absolutely critical to test on real hardware. You can get away with developing on the emulator for quite a while, but at some point, you'll want to use a real device.
That being said, you can use any android phone for development. There are some restrictions on locked devices, but if you're simply developing against the SDK, any phone will work. With android, you can install an apk directly on the phone without special permissions, so the only real advantage to a dev phone is that you can install new roms without having to root the phone.
Personally, I'd hold off on purchasing one of the older dev phones. From what I understand, they only support up to SDK 1.6, whereas the Droid and some of the other new phones are supporting SDK 2.0 ++.
Wait for the release of the Nexus One from G. The latest rumors are that it'll be released on Jan 5th. So it's just a week or so.
I think that you need a real android device whether it's the dev phone or another handset but a real phone is primordial. The emulator is great but you can't get an idea about the execution speed of your app until you use it on a real phone.
As said before there are a lot of rumors about the nexus one so wait and see!
As for which phone to buy (assuming you're going to get one) I think ablerman is right. I'd wait until January to see if there is going to be some new hardware available.
With regards to the more general question of should you buy one, I think it depends on what you're doing. For the most part, the emulators are fine. They can emulate GPS (you can even load KML to simulate a path), SMS, phone calls, etc. They cannot however emulate acclerometer/compass/orientation sensor data and actually will crash (actually I believe it hangs...) if you try to run code that relies on it. Also, it's difficult to actually debug phone-call related functionality without the dev phone.
They're good phones, I've used the Dev phone 1 (the G1/Dream) and it's nice. It also is a bit faster than the emulators and if you're writing something like a game, it would be really good to test it on the actual hardware.
All in all, it just depends on what you're writing. They're definitely fun to play with regardless as you can do pretty much ANYTHING you want on them.
Good luck with the decision!
I've been developing with the emulator since June. I've found it to be a very near substitute for the real deal, and it's easier to switch between handset configurations/versions. However, not knowing how quickly my apps will run is a concern for me.
The reason I've personally held off buying a handset is that 2009 was the wrong year to buy one. I have a feeling 2010 will very much be the long-awaited "Year of the Android".
+1 to Christopher and I will add - the emulators are great but having a physical phone will give you instant access to the Android Market to verify publishing, statistics and user comments. I also believe using your own app on a physical phone will help you to develop a better app. You do not need a development phone - but at least one physical phone - absolutly.
FYI. Belgium is one of the few countries where it is possible to buy any mobile unlocked. Indeed, the Belgian regulators forbid the forced bundling.
One more Pros for buying a real developer phone :
HierarchyViewer does not work on user builds (i.e. with devices
available in stores.) This is for security reasons.
See the original thread
Hierarchy viewer can be very useful if you have problems with layout being slow, although I don't think it would worth buying a real Developer phone only for this.
As some people made workaround for that problem : https://stackoverflow.com/a/7801475/62921.