Probably my question is very stupid, but I can't find a clear answer.
For now, I'm developing and testing my apps on Nexus devices, so I have no problem with debugging.
I also want to buy cheap/weak phones and tablets to test, but I'm afraid to unfortunately buy a phone/tablet with debugging unavailable.
Since Android is very open, for manufacturers and carriers, is such a thing possible?
Any device that legitimately has the Play Store on it must be capable of serving as a development device.
Some manufacturers -- usually firms whose names you might not recognize -- will pirate the Play Store and therefore may not allow USB debugging mode.
So, if you stick with a major-manufacturer, Play Store-capable device, or another device that others have confirmed supports USB debugging mode, you should be safe.
Android's code is opensource, so people can do whatever they want.
But I don't think the any of the manufacturers or carriers would make the usb debugging option disabled.
Before buying an new phone or tablet, you can check for the full specifications to be sure.
Related
I would like to know if there is a way to detect if my app is running on a PDA (with android OS) or a conventional smartphone?
There is no difference between a PDA and a traditional smartphone, except for possibly the presence of a cellular radio (and even that's not assured, there may be one). THere's also no difference between a tablet and a smartphone. They're marketing terms, not actual differences between devices. Take any smartphone and smack on an assistant looking UI and you have a PDA.
BTW, not all Android phones have the play store either- its common in Asia for low price brands to not pay Google for it and just load a version of AOSP on it.
So if you want actual help, you need to describe what's different about this device that matters to your program, and then we might be able to help you find workarounds. But there's no way to tell "PDA" because "PDA" has no meaning.
I just want to know the actual difference between android dev phone, android nomral phone and android rooted phone.
Can we not buy dev phone from a physical shop or from some where else except android marketplace?
Can we buy android rooted phone?
If yes then from where ?
A developer phone can only be bought from Google, if you are a registered developer. The Android source tree contains (almost) all source code needed to re-build and flash the phone.
A normal phone is what you can buy in a shop.
A rooted phone is a normal phone that someone has gained root access to. Root access does not necessarily mean that you can re-build the software, although there are some community-driven projects that will help you do that, for example CyanogenMod.
You can't buy a rooted phone, instead you buy a "normal" phone and root it yourself. Have a look at XDA Developer's forum for some guidelines.
The one exception is the Samsung Nexus S that you can buy as a "normal" phone, unlock the boot loader and then build software for using the Android open source project. I assume the Galaxy Nexus will give you the same possibility, but I haven't tried it myself yet.
If you are developing apps, you do not need root access. You can just use any normal Android phone for that. But if you are developing some platform features, you need a rooted phone or a developer phone. Or you can get one of the many developer boards available, like the Beagleboard and the Pandaboards. These boards will not look like a phone, but they are superb for platform development.
Basically, it all boils down to what you are going to use it for.
You can develop software on almost every android phone but there are some differences.
Dev phone has unlocked bootloader, and will allow you to flash new OS images easily. (but you can unlock bootloader on other phones too, almost every bootloader out there was already hacked, and some phones are unlocked as well)
Phone coming from carrier will contain a ton of crappy carrier branded software, and you will be unable to remove it (but you can root phone, unlock bootloader and flash another OS image voiding all the warranty in process), and there could be some restrictions like "you bad boy do not uses VoiIP - we like to sell you minutes) - but you can also develop software with it
Rooted phone is the same phone, but OS is hacked to allow you root access (there is a linux below the covers) - some applications need this, but it is not really portable. You can develop software with it, but some things working with rooted phone may be unavailable to real users in field.
Conclusion: if you like to see what most users in field are experiencing, stick to standard phone without alterations.
So I want to create an Android app(s), but I dont own, or plan to get, an Android phone (due to Verizon's forced plans). Is there a way to buy an unlocked Droid or other android phone and use it as a test platform? If I just buy and unlocked phone with no plan or anything can I just plug it in and test the app?
I am buying in the US, and plan on buying one that comes unlocked
yes. Just about any device you buy you can use for testing. Some of the carriers will sell you devices at full retail cost with out having you activate or sign up for any plan. You'll only have access to internet through wifi though. Which means your testing may not reflect the users experience is some cases.
I'm not sure if my answer constitutes ads. But anyway, I feel my answer solves the problem.
Unlocked Droid on Newegg.com: http://www.newegg.com/Product/Product.aspx?Item=N82E16875209212
Verizon-only contract-free Droid on Amazon.com: http://www.amazon.com/Verizon-Motorola-A855-Android-contract/dp/tech-data/B0046NR5PK/ref=de_a_smtd
Google Experience Devices are unlocked or unlockable where the vendor allows root access. Nexus One and Motorola Xoom are an example of such devices. Depending upon the unit, it could refer to subsidy unlocked which is another thing.
We want to place a device in a store that operates as sort of a kiosk device. As in customers walk up to it and start interacting with our custom app. The app could be developed for Android or the iPad, so I'm trying to decide which one to use and would like comments on the following ideas:
Is it possible for Android or iOS to access services over the USB port? This would enable us to disable the network.
Is one particularly better for 24 hour always on?
I like the iPad as I think its supply will be more constant as we move forward and need to replace devices due to ones gone bad. Also, our app will probably work on future generations of the iPad. With Android, I'm not sure there will be that sort of consistency from the tablet vendors.
Kiosk mode? I think with the iPad by putting it in a kiosk case that removes access to the home button and turning on the restrictions we'll get what we want. What about Android? I'd rather not have to get into rooting devices and replacing their firmware.
Remote control? Any way to remotely control iOS or Android in a standard means? Our app will be a client to a master server which will obviously be able to control the app somewhat (when used purely as a display device to a customer, controlled from behind the counter).
My feeling is that neither Android tablets or the iPad is best suited for this. Are there other options?
I will try to answer your points, but know that I am probably biased towards Android, because that is where my experience lies.
With Android 3.1+, at least with the Xoom, you have full USB host capabilities. Things like USB flash/hard drives, keyboards, mice, even digital cameras, all work. If you need custom interop with a USB device, you could go as far as to write a driver for it.
24 hour always on is not good for any device with a battery, but neither is better in this situation.
While android apps are forward-compatible, bad programming practices and/or deviations from "vanilla" Android software and hardware CAN break forward compatibility. That being said, if you grab a Google Experience device like the Xoom, you won't meet as many surprises.
In Android 3.0, the navigation bar is built-in at a low level, and it is not possible for apps to remove it. Therefore, it is trivial for anyone to break a "software nanny."
I know that it is possible to control android devices remotely, but without knowing your specific needs, I can't really offer more information than that.
Good luck!
iPad NOOO believe me I am a convert to Apple for my home and business but when we went to launch kiosk the iPad FAILED Big Time.. Here are a couple of little (Big) issues we ran into.
If the device reboots you cannot auto launch you iPad app since Apple does not allow that.
There is a serious memory leak in the iPads browser. We were running javascript / CSS3 and it cratered intermittently. I literally spent 2 hours "today" on the phone with Apple getting the MAJOR run around. I finally said let me speak to an Enterprise Sales Manager as my project could mean thousands of iPads and I got NO WHERE. One Apple employee even told me they don't have enterprise sales managers.
If those weren't enough even though we are just in the proof of concept phase, we are already getting request for other options. These other options are going to require access to the OS which Apple yea right. We are moving to Android immediately.
Sorry Apple I love you but you loose here.
If your using an Ipad you should consider if it can support the power for the USB thing. Watch this Using Powered USB Port
Your idea about putting the tablet behind another piece of glass/plastic is neat. To then deal with remote controlling, you might consider doing some Bluetooth programming.
My mobile development has been primarily with iOS, so I am biased toward that SDK. I will mention that the data/sync/charge port for iOS has (I believe) never changed. Your Gen 1 iPhone sync cord works on your iPhone 4... and your iPad or iPad 2. So, in terms of third party hardware, you may see more consistency with Apple.
I haven't found a good answer regarding whether it is easier to do Bluetooth programming for iOS or Android, but I think to stay cost-effective, you might see which one is more open to third-party devices. Here is an SO post/answer about iOS and third-party Bluetooth devices; I've not found anything on Android regarding third-party Bluetooth remotes, but considering a lot of hardware running Android is third-party, your chances from a naive perspective seem pretty good. Here's the Android Bluetooth API.
Buying an iOS or Android handheld to remote control an iOS or Android tablet does seem a bit steep, but then again, maybe not. Cost also depends on your ratio of remotes to tablets. 1:1? 1:N? N:1? N:M?
The lowest end iPod goes for $229 as of May 20, 2011. Android does have more variety in terms of hardware. You may be able to get a cheap Android phone with no service plan to act as a Bluetooth remote for an Android tab.
I have provided a solution for the kiosk mode using iPad here Lock-down iPhone/iPod/iPad so it can only run one app
I am afraid that I don't really know for Android if the same thing is possible.
To address the issue of crashing applications you can use an exception trampoline (see discussion here https://blog.compeople.eu/apps/?p=275) to catch the crash and reboot your app.
If the entire device is restarted however then other apps that are on the device can be started and will subsequently be locked in.
To answer your other points:
You can use a configuration profile to control network access. Force it to use a VPN or Proxy that only allows your custom app with embedded credentials to use. That way other network access can be prevented.
Your concern over future compatibility is spot on. The Android marketplace is so fragmented then maintaining a fleet is difficult.
If you have an app that is behaving as a server and is locked in then remote control is possible.
We manufacture tablet kiosks that support both android and iPad devices. In fact we are the only iPad kiosk that has achieved apple approval.
Generally speaking i think you will have an easier time with an iPad as the software and hardware will remain more consistent over time. Which is important if you have to change out a fault unit or deploy more kiosks 6 months or year from now when the original device is no longer manufactured.
Is it true that ANY Android phone can be used for App development and testing?
I'm trying to find some inexpensive off-contract hardware for development and testing of our Apps. I've found some devices I can buy New with No Contract for $150 to $300 (like the HTC Aria or the Huawei Ascend). Is there anything that would prevent me from using these devices for USB debugging and app testing? I guess I'm concerned because I've read how the HTC Aria has been locked down by AT&T to limit applications. I suspect this won't affect me loading apps using ADB, but I'd like to be sure.
Yes, you can use any phone for testing applications via the Android development tools. This includes the HTC Aria of what I've read.
You can read more here: http://developer.android.com/guide/developing/device.html
And it is not true what Sam Dufel wrote. A developer phone have messaging and phone features. It's just as any other ordinary unlocked phone. The only difference between the dev-phones is that they have unlocked bootloaders so you can install and customize your own Android-system and install it. It is rooted by default.
Google actually sells development phones - after you create a developer account, they give you an option to buy one of a couple different models. You don't get any messaging / phone features though, obviously.