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 1 year ago.
Improve this question
I am going to enrol on a course to learning Android Development. There it says it "write apps for Android 8 Oreo with Kotlin"
But Android 11 is already out there.
So is the course worth it in 2021. Or Android version does not matter.
It will be really helpful if you can share your advice.
If you have any confusion feel free to ask.
well, the answer to your question is yes it will be helpful.
at the end of the day, it depends upon your app's target audience. For example, if you go to Android Studio and make a new project, they ask you to select a minimum SDK.
So for comparison's sake let me give you the list.
Android 4.1 (Your app will run on approximately 99.8% of devices)
Android 4.4 (Your app will run on approximately 98.1% of devices)
Android 5.0 (Your app will run on approximately 94.1% of devices)
Android 5.1 (Your app will run on approximately 92.3% of devices)
Android 6.0 (Your app will run on approximately 84.9% of devices)
Android 7.0 (Your app will run on approximately 73.7% of devices)
Android 8.0 (Your app will run on approximately 60.8% of devices)
Android 9.0 (Your app will run on approximately 39.5% of devices)
Android 10.0 (Your app will run on approximately 8.2% of devices)
Android 11.0 (Your app will run on approximately < 1% of devices)
So, it's a trade-off, with a newer version you'll get more features and you can offer more features but at the same time, you'll lose users.
As of Android 8.0, all the features in 8.0 will be, I guess, included in the Android 11.0. So, you can learn 8.0 and shift to 11.0 as per your needs.
Also, on May 7, 2019, Google announced Kotlin as its official programming language for Android Development. Many apps such as Zomato, dropbox, weChat, Netflix, Trello, Slacks, etc have shifted to Kotlin.
key features would be view-model, Kotlin Coroutines, Live-data, Room Database, and Flows are all included in Android 8 as well as 11.
So, as far as basics are concerned it's a THUMBS UP for the course.
Also, if you are keener on learning Android, go through Android Kotlin Fundamentals
It is a seemingly good to have thing to start with latest version since they bring up quite a number of changes over time. If that is posisble, my suggestion would be to start with the latest Android 10/11 courses.
On the other hand, any sort of Software development is based on the fundamental understanding of the platform. Hence if the latest courses are not that good, to learn basics, the Android 8 course should also be fine. Basically, anything that teaches you how to build Android apps, in general, is enough.
Happy learning and I hope you have a lot of fun while doing so!
There are changes between android 8 and android 11. One popular one is the external storage and how it's accessed. You can go ahead with your course, a lot of things hasn't changed yet and it's easy to adjust to these changes.
Yes it matter the most , google has deprecated lot of functionalities above Android 10 which works for older devices. You need to set target SDK as latest version so lint will give you warning of deprecation.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 6 years ago.
Improve this question
Im developing an Android app and I would like to test it on a real device so that I'd like to get a phone, on which a different version of Android can be installed, upgraded and downgraded.
Which phone can run most of Android versions? How should I choose it ?
Thank you.
[This answer applies to official Google releases of the Android software, not to alternate distros like Cyanogen.]
There are very few devices that even support more than one or two versions of the Android system. Carriers and OEMs seem reluctant to upgrade devices at all, and when devices do receive major upgrades, they rarely get more than one.
Of course, Android is open source, so you can build whatever version you want, right? Not really. Although the base OS is open source, OEMs have no obligation to release the actual source used to build the kernel and userland for any particular device. With a closed-source device, upgrading is out of the question. The best you can hope for is a downgrade, if you can find the right binaries.
As one commenter noted, Nexus devices are in general a good choice. They are usually supported for at least three OS revisions, and can be upgraded and downgraded easily. With few exceptions, they run 100% open source software.
If you're willing to get your hands dirty, the device that supports the most versions is the Panda board, which for many years was the standard test board for the Android Open Source Project. It was recently replaced by the HiKey board, which is more powerful and less expensive. If you don't mind building a device out of raw components, the combination of a HiKey and a Panda will cost less than a single Nexus device and likely remain valid for years to come.
I recommend you to go with the emulators but if you want a real device you should test on a Nexus device, but even nexus devices can't cover all the platforms
You can find most of the Android official versions here
Also you can find custom ROMs for different phones here
Note
Even if you flash ROMs on some devices, you still might get into different issues on different platforms because Android is customized by each phone manufacturers. For example, the Android that runs on the Nexus devices is the official Google version, but is different than the one that runs on a Samsung, HTC, Sony, etc.
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.
I'm starting to broad my developer skills also to the Android development.
I installed all the tools and configurations and every thing seem great, As a default settings I install the 3.2 SDK, but there is not too much docs on that one, mode of what is out there is on the 2.x SDKs.
Is it like IOS, does android have a good backward computability? Can I stay with the 3.x and count on it (with the features that are in the 2.x SDKs) to work on 2.x phones? What are the common version in the Android devices this days? I have lots of newbie develop questions like that, as i want to start from a good starting point and there are lots of materials and tutorials over the web that are not up to date.
Also, does any one know about a good site for this kind of Q&A?
Thank you,
Erez
As of July 5th the version with the largest market share (59.4%) is 2.2 (API Level 8) as shown here
http://developer.android.com/resources/dashboard/platform-versions.html so Consequently I would recommend using that as a starting point unless you are solely focusing on the new honeycomb tablets (<1% market share).
As for backward compatibility, android is completely backward compatible for the most part. Unless of course you use a new feature that is only available starting with a certain API level. Google's Android market is good about only allowing apps that will run on a certain API being visible to that phones user. This is enforced by the API level as recorded in the manifest file that is created with every Android app and set by the developer.
To help you with the API level, the SDK docs show what API a feature/object started with in the upper left hand corner. You can also view the specific changes in each platform and it's corresponding API level at http://developer.android.com/sdk/index.html.
As for a good website to get started I would recommend the developer site at developer.android.com and this website of course. Also the book Android Wireless Application Development by Shane Conder and Lauren Darcey (2 ed) Is very good. (I am not connected with the book just currently reading it). Make sure you get the latest edition.
Hope this helps,
George
Above is good info, but it would be advisable to develop for 2.1 and up at the moment, considering as of this answer's writing, 2.1 makes up 17.5% of the market and 2.2 makes up 59.4% of the market.
http://developer.android.com/resources/dashboard/platform-versions.html
OP should also be advised that version 3.x is specifically for tablets, so that may not be the best choice for a starting developer. My advice is to go with 2.1. Most of the documentation is up to date with that, and you won't have access to things you don't need yet (fragments, tablet-specific things)
Hope this helps!
You can read about application forward and backward compatibility in the docs.
Generally apps are forwards compatible but not backward compatible - new APIs introduced in one version are not available in an older version.
This pie chart shows distribution of devices accessing the Android Market and based on this I would try to target devices using 2.1 or newer to cover most of your users.
Your decision should be based on whether you need a feature introduced in a specific version. For example, if you want to add NFC to your app, you'll need Android 2.3.3 or newer, but otherwise there's no reason to exclude older devices.
I recommend learning about Fragments and using the compatibility package to use them on targets below 3.0. This will make it easier to reuse view elements on both tablet and phone devices. Note that if you only intend to develop for phones, 2.3.4 is the latest phone version of Android at the time of writing. Later this year, 3.0 for tablets will merge with the phone version to provide a unified OS version as with iOS.
Android 3.2 is just released publicly on friday, July 15th. You can start-off with Android 2.3.3 and 3.2 installation and development.
Android applications are mostly forward compatible. (But not always)
The best place to find all your answers is developer.android.com
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 9 years ago.
Improve this question
I am new to Android Development and I would really appreciate some advise on how to develop android. I am currently using Eclipse with Android SDK installed on my Macbookpro.
I am using the newest API, 3.1. However I noticed that the android emulator is not very stable (it keeps crashing sometimes) and the emulator is insanely laggy (my Macbookpro has icore5 and 4Gb ram with AVD ram set to 1Gb plus I am using snapshot). I gave 3.0 a shot but it's still very slow especially with respect to start up time.
How many of you still develop in 2.3.3? Is that the most stable version right now? Are most devices still using 2.3.3?
How many of you actually develop on an actual device? Do most of you just suck it up to the emulator?
In addition, as an avid Vim user, I find eclipse to be really heavy for development. I am much more accustomed to developing on the command line. I also use Git pretty heavily. I am currently using eclim but it's another dimension in it's functionalities. How many of you stray away from the eclipse IDE framework?
EDIT: Ok I didn't know 3.0 was for tablets. I was just reading the intro parts on developer.android.com, which I am not particularly fond of. What is the best book then for doing android development?
You ask too many questions at the same time, but here is something that might interest you about share of different sdk version in the android market (for apps in the category Entertainment) :
Android 2.2 58,4%
Android 2.1 20,8%
Android 2.3.3 9,3%
Android 1.6 4,9%
Android 1.5 4,6%
Android 2.3 0,5%
Android 2.0.1 0,1%
Android 1.1 0,1%
Android 1.0 0,1%
Android 2.0 0,0%
My stats may not seem so relevant but almost no one till now uses android 3.0 and above. It'snice to be compatible with it but your target and min sdk (in your manifest) should be lower if you want more than a few thousands users.
Personnally, I use a 2.2.1 device from archos and I would not upgrade it above just to be able to test what most android users have on their device.
I used to be an emacs fanatics for years and switched to Eclipse 2 years ago for giving Java courses. And really, after 2 years I would never come back to emacs although I loved it but Eclipse, once you get used to the fact the it is missing 6 letters keyboard shortcuts, is really very very very productive.
Close your unneeded projects, use working sets, and tune eclipse memory settings, it will help.
Learning Git though.
Oh, and by the way, if you want the fastest solution to test your programs, you should consider testing on a real device. It's far more efficient than the emulator. Personnaly, I like to use dropbox to copy files from eclipse to my android. Then I can install it within one click from dropbox, using settings >> Application to remove old apps when needed.
The only problem I have is that my app is not generating enough revenue to allow me to follow android 's new SDK, buy hardware to test it with honeycomb, unfortunately.
Regards,
Stéphane
Using 2.3.3 is not about stability.
2.3.3 is the phone version of Android while 3.1 is the tablet version. Hopefully they will be merged in 4.0. Anyways i used to develop using 1.6 as long as i don't need the new features to reach as many devices as possible... its probably time for 2.1: http://developer.android.com/resources/dashboard/platform-versions.html
From my experience you should use Android 2.2. I have run into very few bugs with the emulator and graphical layout of the xml files. Also if you walk into any AT&T store most of the phones right now will ship with Android 2.2. Android 3.0 is for tablets only. Your 2.2 application will still work on tablets.
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!