Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I am quite new to this big android world. I am going through my first app so go easy on me.
There are lots of API levels and lots of devices and i think this makes lots of hard stuff on android.
So my questions are :-
which minimum API level should I choose and why ?
Which Virtual Device should I start for - like there are lots of options available ?
Should I check my UI every time when I make changes on all the devices ?
Thanks. any help is appreciated :)
1)
Basically there are two ways here.
Right now (2014/09) you can go for SDK 10+ or SDK 15+. SDK 10 still has about 12% of total active users. As indicated here: https://developer.android.com/about/dashboards/index.html?utm_source=ausdroid.net
Supporting from API 10+ is a pain, it requires using a lot of backports and compatibility libraries. But you're in luck! It's pretty safe to develop on SDK 15+, as you can see from the dashboards that will cover close to 90% of all devices.
2) You can use Genymotion. It's free for small developers and beginners. You can also use the native emulator but it's laggy, if you use Intels HAX and GPU rendering it will be decent. Have a look here.
3) Well yes and no. You should develop for the best device you can get, a Google Nexus is prefered because it gets the newest versions of Android fastest. Then you should probably get the worst device you want to support and test on it. The more devices you test on the better. Also Android Studio has the option to preview layouts on multiple devices.
Related
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
I wonder that is it necessary to use android mobile to build an android powered application.
Actually i'm developing an android music application. I used emulator only to test the app. Is there any changes happened to the app when i test that with real device or it works same in the both??
No, you can use the default emulator or other tools like Genymotion.
You should just consider that a real device might be handy as you get a better feeling of your app when you have it on a real device.
Also there are limitations based on the emulator you use. For example the graphic power might be way slower than on a real device. Also other stuff like battery, camera etc is basically just emulated as well, so it might work on the emulator but not on a real device.
It is the same answer if you switched Android for iOS.
It is not required, but it is a very big advantage.
Android and iOS come with emulators for their platforms in the software development kit. So if you want to do quick testing then you don't need a device.
However, if your application relies on any hardware component (for example the accelerometer) these functions are not available in the emulators.
No, you can use android emulators instead..
check the below link for more info:
http://developer.android.com/tools/help/emulator.html
It is not mandatory for development and deployment (publishing to google play store) we can use emulator.
But I strongly recommend to use as development time would fair increase while debugging with actual device rather on emulator.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
For example, can anybody give some concrete examples of differences between Cyanogen Mod 10 for Samsung i9100g and CM 10 for i9100?
As far as I know, they have different hardware and that's why their drivers are different, as a result their HAL are very different from the other. However, I'd like to have an example contains -maybe- several lines of code.
I am aware that there are many many people who wants to get into Android porting/development and does not know how to start what to modify/change, I am one of those. I think the answer of this question will be beneficial for those.
The biggest is going to be the kernel and the RIL (radio interface layer).
Different devices have different hardware. Different hardware needs different drivers. If you have two similar devices often little modification needs to be made to run one OS on a sibling device. However, even hardware that looks the same externally can have drastically different internals.
If you want to get into platform development, follow some of the people who do it and look through what they're doing. jt1134 does a lot of the kernel and platform dev for the Samsung devices. The CyanogenMod org has a lot of code worth looking at too and the team even has a wiki that goes into some of the finer details about building from source.
You should also sit around in the Android development IRC rooms on the Freenode and Mod-a-droid servers. You can ask questions but don't always expect to get an answer. You can even try PMing jt1134 on freenode (if he still hangs out there), he's pretty responsive if you can convince him you know what you're doing << as in read all the publicly available documentation first.
Here is an outline of the process you need to follow.
Milestones:
0.5. Setup a development environment http://source.android.com/source/initializing.html
Download the kernel sources from Samsung.
Compile the Linux kernel.
Wade through all the developer docs at source.android.com
Download the Android platform sources from googlesource.
Make any modifications required for your device (for example: you may need specific vendor files (drivers) for your device, you might need some custom init scripts, etc.).
Compile the android platform <-- this takes a long time
After this, you should have a OTA flashable copy of the Android Open Source Project that you can test on your device. This process took me about a month to research and get down, it's not a trivial endeavor, I wish you luck.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I want to buy a phone for android development and testing. I know that Galaxy Nexus has good reputation among developers what about new nexus 4?
In Nexus 4 my minimum OS version will be 4.1.2 or 4.2. If I wanted to test previous versions would I need another phone?
If I upgraded nexus 4 to next OS verson (for example android 5.0) I would be able to downgrade it to 4.1. How complicated is to flash ROM on Nexus series?
Overall, using the most recent version of Android for development is the way to go. (E.g.: Pre-honeycomb versions stored raster data of images/bitmaps in native memory, thus the Memory Analyzer Tool, when you searched for memory leaks not showed the actual size of a bitmap leaked, just a few hundreds of bytes.)
On the other hand, vendors are customizing their phones, they have different drivers for example the camera. So testing only on one phone, in some situations might not be enough... I'd advise to have an older phone (with low available memory, pre-honeycomb os), and a newer one...
You should integrate ACRA, or other crash reporter tool, that enables you to track your product out in the wild. Bugsense or similar solutions provide you a nice Web interface, where you can see the different Exceptions that occured in your code for users...
If you don't have access to an actual phone, TestDroid from bitbar.com can provide a solution, as they have a cloud of different android phones (>100) where you can execute your test cases...
As for downgrading, I don't know if that is supported...
But the latest phone you can get. Longevity is better that way. You can test for other phones on the in-built emulators.
Here are some links to help you out:
https://developer.android.com/tools/testing/testing_android.html
https://developer.android.com/tools/testing/index.html
http://www.vogella.com/articles/AndroidTesting/article.html
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I am building Android apps and have an HTC Desire with running 2.1 of Android.
How do I upgrade, or even downgrade, OS on the phone to test the app on real devices as well.
You need to install another (older or newer) firmware. In my opinion that doesn't make much sense though - if you want to re-install a firmware over and over again, that's quite time-consuming, only in order to test your app for different versions.
Better to get an (maybe used - then cheaper) G1 phone with 1.6 on it to do tests with an older Android version. That's what I'm doing to test for older devices.
With the SDK, you can select OS from 1.1 to 2.2.
In many cases, that should be enough.
If you really need real hardware, please consider DevPhone1(Google version HTC Dream) or DevPhone2(Google version HTC Magic).
DevPhone1 supports 1.1 to 1.6 by Google. Other guys support 2.0 to 2.2
DevPhone2 supports 1.5 and 1.6 by Google. Other guys support 2.0 to 2.2.
I am a Software Developer seeking to break into Android, so I am not developing yet. Nevetheless, it would seem to me that you ought to listen to the previous advice given to you. However, as a Developer, it seems as though you should be or should have been using the Android 1.6 compiler on your PC and then running the finished application on your Android 2.1 OS. In other words, you have it the wrong way around! Developers know that if you want backwards compatibility, then one should use the oldest development software possible, otherwise, you can run into a whole world of problems!
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
not much of a programming question, but development related still,
I'm starting Android development and have been at it for just a little over a week. So far so go regarding progress, specially for someone who hadn't touched Java in his life (but have good C#, Objective-C, VB.NET and Fortran experience)
As I'm looking into a testing device I'm undecided on the phone to get. I need it to be unlocked, so I'm looking into Dev Phone 2 or Nexus One. The difference being $120~ish in price.
Anyone having one of those and using it for development? which do you consider is the best choice. Is the extra speed and screen in the Nexus One worth it?
I'm targetting SDK 1.6 but down the road I can see myself playing with 2.1.
Any input is appreciated
Regards
Something I learnt today was not to let a developer work on the faster model of mobile device when most of your users have the slower model. If it's good on the faster one, it's not always good on the slower device. I'd get a retail G1 as they can be flashed to all kinds of Android revisions. Plus they'll be cheap.
If you go for the Nexus 1, your apps will look better but only to Nexus 1 owners, mostly!
From what I've heard all Android devices are going to get a bump to some form of 2.1 in the future. The specific feature set of each particular build would depend on the hardware capabilities of the device. Neil makes a good point about speed and polish but with a device like the G1 (which I have and love) you will yourself to be limited by the hardware whereas with the Nexus One you can choose to limit yourself or you can choose to develop Live Wallpapers!
Also, you've asked 7 questions and haven't accepted any answers. If you keep that up you'll soon find that people are less willing to spend the time answering your questions.
If you want a test device go for the g1. If you want a good android phone for everyday use go for the droid or the nexus one.
For development be careful which carrier you buy the phone from, some of them like AT&T will change them to forbid installation of software from unknown source etc. to enforce the market. Those are pretty useless for a developer then.