I am running into countless problems with the emulators of different versions. Sometimes it loads, othertimes it hangs, I've tried reinstalling the SDK and platforms etc. Even though I've a reasonably a high-end machine, when I manage to get it working performance is very slow.
Therefore, I'm thinking of buying a real phone to test out on. If I do so, can I get away with buying one second hand without bill-plans, SIM card etc? I only want it to test out on, I don't want to get stuck with bills for something I don't need to use.
Any advice is appreciated.
Thanks
I gave up the emulators a long time ago. As you are saying, it's slow.
If you want to get away cheap buy a "LG Optimus One P500", you can get it for ~150EUR. But it all depends on what version of Android you wanna develop for. No SIM or other fancy stuff is needed.
You should really check andoid x86 project http://www.android-x86.org/ You can find some instructions on the web how to get it working with ADB.
I would say you get a Droid Incredible, cheap but I think its one of the best and cheapest Droids out. But yes the emulator is horrible, I have to use my own phone to test.
Get a phone from Cricket you don't need a plan from there.
You can use any Android phone you buy for testing without having a contract. Without a contract, you won't get phone service or 3G/4G, but everything else will work just fine. You can buy one used or at full retail from a provider. Just don't activate a service plan.
Related
What is the recommended way of testing an app on a device? The emulator is slow, mostly unresponsive and a cpu beast on my machine, so I use my phone to test my app. When I make a change to code, Eclipse builds it automatically, and then I debug it on the device. Is this the most efficient way to test small changes in code?
Android has some information on testing here. Personally I've found that testing code is much faster on a device. Other options without a device is to use something like Android x86 and run it in virtual environment like VirtualBox - this can be faster than the emulator. In my opinion, to really make sure your application is working as expected (especially with graphics and memory usage) is to test with the device(s) you intend to deploy the application on.
That's how I test my code, the emulators and on an actual device are the only ways I know of. I usually use an actual device, but I think you can keep an emulator running to speed up time a bit, but not too much.
It's in my opinion a good way to check the general functionality of your application. If everything works fine, I would use the emulator to check with different versions of android/screen sizes/resolutions etc. Maybe you can ask a friend who has a more powerful PC. The best possible thing is of course that friends/family/relatives etc. own Android devices so you can test your application / let it be tested on real devices.
I have an android app with more than 500,000 users. I want to try to port it to WinPhone7, but I haven't any smartphone with WinPhone7. Is a real device needed to publish an app on WinPhone? Is there some developper phone?
First of all, I will say that for some scenarios, there is no real substitute for have a physical device to test against. Having said that, I would suggest that 99% of what most apps will do can be developed and test perfectly well on the emulator that comes with the developer tools.
The advantage of the emulator is that you can write and test without shelling out for the hardware and then signing up to create.msdn.com to get it (officially) unlocked, but once you are ready to deploy to the marketplace you will need to sign up anyway.
In your case, I'd say the main word in your question is "try". You don't seem confident in being able to port to the platform so the emulator route seems like the best starting point.
Your will find a Windows Phone 7 emulator in the Windows Phone SDK. You can download it for free on create.msdn.com.
There is an Android to Windows Phone API mapping tool and Windows Phone 7 Guide for Android Application Developers white paper as described on the Windows Phone Developer Blog that you should find very useful.
For getting a development device, you should reach out to Brandon Watson or your local Microsoft WP7 dev rep.
Simple answer - no, you don't. There are plenty of applications out there that were published without being tested on an actual device. Whether it's a good idea or not - that is the main question here. Depending on your application type and its behavior, you might actually need a device.
Also, another problem is the fact that the resources used by the emulator are different from the resources used by the actual device. That being said, if your application runs just fine in the emulator, it will not necessarily run the same way on a device.
You can use the WP7 emulator to test your application. But if you want to deploy it on a real phone, you will have to unlock it though the App Hub portal. That will cost you 100 dollar/year though.
As you and others have rightly pointed out, you can start porting your application using the emulator. There are differences in the emulator and real devices. In particular, to answer your question, emulator does not take pictures.
If your Android app really has half a million users, MS will happily give you a developer device (nearly) for free.
Contact #BrandonWatson or #FrankPR on Twitter.
From my experience I can tell you, that the emulator works very well. But once in a while you will stumble about a problem that you don't understand why it happens. Then you try it on the phone and it works... So... The answer is yes...not!
I am looking for a way (maybe impossible) to test my PhoneGap Android application on different phones / hardware. As I am able to obviously test it only on my phone, but some people are reporting that my app doesn't work / crashes / explodes on their phone. Is there any way how can I test my app on different phones without buying actual device ? Maybe virtually like running Android in an emulator or somehow ?
It is kind of frustrating knowing that the app works perfectly, but some people are not able to even start it...
EDIT: I am certainly testing the app in Android emulator, but that only helps to test on different Android versions. But I am looking for a way how to test in on different phones without actually buying it - if it is possible ?
There is a company called DeviceAnywhere: http://www.deviceanywhere.com/ that seems to be doing that.
But it may cost you. If you don't want to buy all those devices, somebody else will have to. Plus they have to build the infrastructure to support remote access. Does not sound like something you would get for free.
Like DeviceAnywhere, there is another company that will let you test your application on multiple hardware devices. It https://appthwack.com/ . They do have 100 mins of free plan to test out, so go ahead and try this out.
You can run it through the emulator that is provided with the Android development kit through Eclipse. But this will only help test the code on different versions of Android not necessarily on the different hardware so if it is really a hardware problem this will not help but if it is related to the different versions of android this should help you find the problem.
Here is information on the emulator and how to use it: http://developer.android.com/guide/developing/building/building-eclipse.html#RunningOnEmulatorEclipse
I started developing android applications. And am testing with the android emulator. Do I really need android phone before releasing it for public usage?
Short answer No. You can test and build a android application package with the SDK and an emulator. But I would say there are usually many things which it would be wise to test on a device.
Personally I have noticed that the emulator does not give a good indication of response times for UI controls. It is usually necessary to move functionality which has long processing times into background threads to maintain user interactivity without the 'force close' pop-up. Testing the effectiveness of your UI responsiveness must be done on a phone to be meaningful.
Network connectivity is another aspect which can be vastly different on a phone, 3G or wifi.
Device sizes and Android platform versions can be tested effectively on the emulator.
Some phone allow hot-swapping of the SD card (replacing the SDcard without turning off the phone). I am not sure how to replicate this on the emulator.
There may be many more things which may only become apparent when using your application on a real device. I would strongly suggest to always test under real conditions when feasible for any commercial project.
From a technical perspective there's no reason why you can't develop purely on the emulator. You're not going to be able to test on every available device, so there's always going to be possibility of device specific bugs that you've missed.
However, I'd strongly recommend getting an actual phone to test your application on.
For me the biggest difference between an actual device and the emulator is the difference between using the interface with your fingers and using a mouse. Interactions which make sense in the emulator sometimes don't work as well when you start using touch on the screen. So if you develop purely on an emulator you'll won't lots of little improvements to your UI that would obvious when you used your app on a phone.
You can't feel a real app in your hands until you have a real phone. (I'm telling you as an Android developer)
So, developing w/o real phone is possible, but real phone gives you a lot more experience, fun & usefulness.
It depends on what type of application you're developing, for serious ones you need at least one device to test it on. For complex applications you would need a range of devices, for example with or without hardware keyboard, different navigational button etc. For basic, simple applications you'll probably do fine with just the emulator.
I would imagine with games you would definitely need to test on real devices.
Thanks to you all. I am going to get HTC Legend and test it, so that I can hope that my apps can be used by others :)
You guys suggest me HTC Desire or HTC Legend?
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.