Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

What knowledge does it take to develop an Android app?

How easy is it to publish one in the app market?

I was thinking of trying one once I have a more firm grasp on Java. What skills should I focus on to meet that goal?

Is it a long-shot to think I could develop an app like a photo editor (which I already can in Java) in the near future with intermediate Java experience, or are apps more for small teams or commercial software firms?

This question serves as a personal to-do list on what to learn. I would like to develop an Android app in the near future from which I could make money.

share|improve this question

closed as too broad by gnat, Jim G., Bart van Ingen Schenau, Dan Pichelman, Jimmy Hoffa Aug 5 '13 at 15:17

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs. If this question can be reworded to fit the rules in the help center, please edit the question.

Reading skills: developer.android.com/guide/index.html –  Bernard Dec 10 '11 at 4:42
The best way to learn a language is to start a project. I'd say just go for it. Download the SDK and get started. –  Kyle Hodgson Dec 10 '11 at 19:42
There is no mention of NDK in the answers (though NDK could be optional most of the times). –  iammilind Jan 14 '12 at 5:08
There are more ways to develop an Android app. Using Java is one of them. Using JavaScript and PhoneGap would be another. Or using some engine, such as Unity. Each of those choices will have some consequences on what you can do and how quickly you can do it. -- But if you are already good at Java, just learn how to put your Java code in the Android projects, and how to use the mobile-specific events. –  Viliam Búr Apr 22 '13 at 8:50

5 Answers 5

In my opinion you need the following :

  • good understanding of Java : classic java, some third party libraries, some tools (eclipse if you are planning of using it or ant tasks)
  • minimal understanding of xml because you will be using it for some ui rendering and setting up some configuration/properties.

Then it depends, based on what kind of app you are developping you may need some skills in ui design (i mean ergonomy AND bitmap drawing). If you have some designer available fine, otherwise it is your job to provide custom graphics and including them in your app. If you are planning on making games then you need to understand the basics behind 2d drawing (using native low level android framework elements such as Canvas) for simple games or open gl for more complex games.

And the most important thing => experience. You will learn a lot by trial and error.

share|improve this answer

Honestly, it depends on what sort of Android app you are trying to create.

Case in point: my employer wanted a mobile app. Currently, the Android version is a WebView with a JavascriptInterface to launch native Activities from actions on the web site it loads.

I learned Java years ago. Haven't used it since. It took me about a day to have the prototype of our Android app ready.

If you want to do something more complex, or go full native, it will likely require more Java (and Android SDK) knowledge.

But Android programming is in many ways not generic Java programming; you're programming to a very specific platform, SDK, and API. Use the ADT Eclipse plugin, it makes life easier. You get to avoid most fo the XML if nothing else. Really, though, the best way to develop the skills you need is to dive in, write code, make mistakes, solve problems, figure it out. But that's true of damn near everything.

share|improve this answer

You don't absolutely need Java to develop an Android app today. You need some programming skills but if you'd prefer using another language there are technologies that make that possible:

PhoneGap - HTML5 framework for developing Android apps.

Xamarin - C#.NET framework for developing Android apps.

Corona SDK - Lua (mainly aimed at games but does have widgets for non-game apps) for developing Android apps.

share|improve this answer
would you mind expanding a bit on what each of these resources have and why do you recommend these as answering the question asked? "Link-only answers" are not quite welcome at Stack Exchange –  gnat Aug 5 '13 at 6:17
The question asked what skills are needed to develop an Android app. Most of the answers seemed to focus on Java, so I've referenced 3 frameworks that allow you to build Android apps with languages beside Java. I'll remove the hyperlinks. –  Nick Gotch Aug 5 '13 at 15:28
@Nick: The stuffs you mentioned have some side effects on performance because none of them use native language. –  Vahid Ghadiri Sep 5 '14 at 9:56
@VahidGhadiri They do eventually compile down to native code (at least Xamarin and Corona) but you can't optimize that native code as if you had coded it yourself. So yes, there ~could~ be a performance hit assuming you'd know how optimize it better if you did it yourself natively. Unless you're a solid pro, I'd bet these frameworks will perform just as well (or better) than if you did it natively. –  Nick Gotch Sep 5 '14 at 16:26

I am developing android application from last one year so according to me knowledge criteria are--

1)You should aware about core java.That is most used in Android.Except some changes happened but you can learn quickly if you know core java well.I promised you will able to work with in a month

2) In android design screen layout are created in XML so you should have little knowledge about xml tags. Although you can create layout design dynamically but sometimes its very painful

3)cause of android open source nature you will get lot tutorial and code to study.So you should be able to search relevant data.

Now you can start android application development.Wish you good luck

share|improve this answer

One of the strongest reasons why the Android framework engineers chose Java to create Android apps, was the great community of developers who already have the basic skills to develop Android applications. So yes, basically you need to know Java, OOP and XML for generate the UI.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.