Hey, I'm beginning to (or, planning to) get started with Android Development (Not really Android App Dev, but Android itself. Things like, porting to devices, modifying and customising ROM's.), and I need some direction. I'll present what my skills are or, what I already know, and what I think I'll need to do to get started.
When it comes to code, my main expertise resides in web-development. HTML/CSS/Javascript/jQuery/PHP/MySQL/etc however, I've gotten pretty comfortable with Python and using that for computer programming, and a few years ago, I picked up C++ for a short while and learned some basic stuff there.
I am able to read code.. As in, if someone presents to me a problem with a snippet of code they have, I can read, understand, and usually provide a solution to their problem. However, I have noticed when looking through GitHub projects, I don't have a great time understanding the file structure or, where to start. Web programming usually starts with an index.html/php/etc or even C/C++ start with a main.c/main.cpp. Without documentation, which is usually not provided, I find it incredibly difficult to read through, understand, and thus, I can't really fork it.
I've also done some networking in Linux, modifying routing tables and iptables too.
My planning for getting started with Android Development is as follows:
Learn Java to a comfortable level,
Learn how Google's Repo/Gerrit tool(s) work,
(For porting) Find documentation on a device's components, learn how drivers are coded, and documentation on Android's layout/structure, figuring out how to modify it to work for a specific device,
(For modifying) Should be easy once I understand how the structure of Android's source works.
Other than the learning Java part, I need a lot of direction here. What have I left out, where are the best places for me to find things I need, etc.
If anyone can help me out here, I'll be in your debt. Thank you!
Related
Does anyone in here have experience designing Android Apps?
I am very good with computers, very, very little programming experience, but I have an idea for an app that I would really like to create.
So how hard is the first app? I'm going to download the SDK today when i get home and do some reading and see what I can figure out..
I wish I could get someone I knew and trusted to help me out, but I'd be scared they'd try to steal my idea and cut me out of the loop...
If you have little coding knowledge then how do you expect to be able to code an application.
Agreed, if you have no programming experience then you've got no hope. Although Android apps are coded in Java (therefore a nice OO language which is fairly easy to learn) you still need experience imo.
Anyone can learn to program but it takes time and effort. Leave Android for the moment and learn Java first. A starting point would be here http://java.sun.com/docs/books/tutorial/getStarted/index.html
Once you're comfortable with Java, then move onto Android.
I also recommend you to read up on java, here's a good tutorial.
http://www.homeandlearn.co.uk/java/java.html
They use NetBeans instead of the famous and google supported Eclipse.
But you must first understand Java and programming in general.
im also interested in making an app, and have experience with java. is java the only language that you can use for android? how about jython, since my python is better than my java, it would be best to use that...
i guess i'll start by dl'ing the sdk lol
I think as long as you have an interest in it, and have some aptitude for coding, then you can learn basic programming for android pretty quickly.
I only had really basic programming knowledge, and I managed to get an Android app out - admittedly it's simple (calculation type app), but it's a starting point.
I would recommend having a look around the internet like code.google.com to check out some source code for programs similar to what you would like to write. Also the developers site http://developer.android.com/index.html has some good examples and guides - definitely worth reading.
I've been using appinventor.. I wish making a real app was this easy.. Of course it's just basic things that really nobody would buy, but it's neat to create apps without experience.
I know very little when it comes to programming. About the extent of my programming is getting a batch file to read from a list. So where do I start if I want to look into android programming? Should I pick up a beginning java book?
I have an idea for program, so I have a goal.
not sure if books are needed anymore really
soo many sites and forums just about general programming
and also spc about developing java for android
google should be much faster then using a real book
If you are getting started with android, one thing you will need for sure is the SDK, found here.
As far as learning it goes...google has a fairly good introduction on the platform, although I am not sure it is suited for someone new to programming. I can't really help you there, except point you to the google guide if you want to try anyway.
http://developer.android.com/guide/basics/what-is-android.html
HI i was wondering if any of the devs could point me in the right direction to learn , read, etc... about Rom cooking, im willing to learn but seriously i have no way on how to start i do know a couple of things but thats about it.
thanks for any info and Help.
I am not a ROM developer, but I have seen developer's responses to questions like this (as I'd like to dive into app development myself):
http://forum.xda-developers.com/showpost.php?p=18935780&postcount=12
Things you will need to look into first include the java programming language (which is easy enough if you are familiar with another OOP language) and the Android SDK. While you can develop for Android in Windows it looks like most of the useful tools for ROM development are mainly available in linux, so you may also want to give linux a shot as well if you aren't familiar with linux and that style of developing.
Once you get a working SDK set up and have some java experience then you can move on to actually decompiling apps and ROMs and examining the code (using the tools that Raver mentioned in the post I linked to). The Android Developers site has great resources available for learning about nearly everything you will need to know Android-wise.
A couple of weeks ago I bought myself my first android device (a cheap LG GT540), and since then I've been playing a lot with it.
Noticed that android hackers community is quite big and there are lots of tools which can do kind of anything, but sadly I'm kind of disappointed because I'm having some issues in understanding HOW things work: in order to root my device, install custom ROMs, resize partitions and so on, I had to use a few tools that I have no idea of what they're doing.
To me it looks like that in this forums it's much easier to find a GUI that does everything you need, rather than understanding what needs to be done and how to do it. IMHO this is bad for a community of hackers.
In particular I'd like to understand how the following tools work (both for personal knowledge, and because some of these only work on windows, and I'd like to port it on Linux), and if available, I'd love to put my hands on their source code:
SwiftBootloaderBuilder: it's a tool used to resize flash partitions. I'm prone to think that it might just be a frontend for fastboot, but hum, the fastboot binary I own seems to be missing the capability of handling partitions...
KDZ: it's a tool to upgrade the firmware which I had to use in order to install on my device a custom ROM with fastboot enabled. How the heck does it work? This tool forced me to find and use a windows system to hack my GT540...
Android Developers is a great place to get started understanding how Android works. There you will find much of what you need to know to get a BASIC understanding of Android. If you follow the guides and advice you can create a basic apk that does little except teach you. CyanogenMod wiki is also a great place to learn. One thing about Android is that is is very much like Linux built for specific hardware. Many, and I do mean many, of the same principles apply to both systems. Digital signatures, ownership privileges, file permissions, compiling from source, git, gerrit, google code etc, are all things that a developer runs into everyday working with open source software of any kind. Go to every place I mentioned, sign up, and start asking more questions. Learn C++ and JAVA. Join freenode irc and find some friends who will answer questions while you learn. XDA is the least resource for the development community. XDA is the expression of ALL the other resources. I am new to this also, and have done what I suggest, except the programming languages, which I am working on. Use root explorer to look at your device file system. Ask the developers of the tools you mentioned to help you understand them. A LOT goes on behind the scenes, but it takes a little direction and determination. Cheers!
Hi Guys,
I have been visiting this site for quite a while, mainly the development forum, but have not really contributed that much due to my lack of knowledge in Android Development.
I want to change this and am interested in taking a course to learn how to develop in the Android OS.
Is anybody aware of any courses I could take that are based solely online (ie, no classroom work needed)? Bearing in mind that I have no real programming knowledge to start with so will need an "A-Z" course. I am based in the UK so UK sites would be preferential.
I have done a Google search but to be honest there are so many different companies out there I was wondering if anyone had any first hand experiences?
Cheers
You can teach yourself, find some textbooks (I won't tell you where) online and start reading, download eclipse and netbeans, do some reading about object-oriented programming and being learning the basics of java, start trying to develop applications in eclipse (you will need to download all of the appropriate SDK's, Java, Android, etc), there are plenty of starter posts called "How to program Android" etc. located on the various android forums on the net- I would suggest just jumping in and reading as much as you can. I did, I'm not a full-fledged developer, but I am now capable of programming applications and understanding source code. I need to get acquainted with GitHub now so I can actually begin working on open-source projects, and I have a ton of learning to do myself, but that will take you a long way from being a noob.
luna_c666 said:
You can teach yourself, find some textbooks (I won't tell you where) online and start reading, download eclipse and netbeans, do some reading about object-oriented programming and being learning the basics of java, start trying to develop applications in eclipse (you will need to download all of the appropriate SDK's, Java, Android, etc), there are plenty of starter posts called "How to program Android" etc. located on the various android forums on the net- I would suggest just jumping in and reading as much as you can. I did, I'm not a full-fledged developer, but I am now capable of programming applications and understanding source code. I need to get acquainted with GitHub now so I can actually begin working on open-source projects, and I have a ton of learning to do myself, but that will take you a long way from being a noob.
Click to expand...
Click to collapse
Thanks for the advice. The problem with me taking it on myself is that...well...I wont do it! I have 9 or 10 Learn Linux books on my shelf and have read maybe three pages out of them.
This is why I was wondering if there was any online courses I could take, which would guide me through step by step from start to finish. I appreciate it may be more expensive this way but I feel it is the best way for me to learn
The toolset for creating Android apps while easy for a programmer to pick up, is probably not the best for first steps in programming IMHO but it can be done.
FWIW On the side of "Java" and "Android" sides, I would suggest picking up a copy of "Java in a nutshell". learning the concept of Model/View/Controller (MVC), and inhaling Google's website on Android development. Each will be useful at some point in your growth.
Sent from my Transformer Prime TF201 using Tapatalk
Spidey01 said:
The toolset for creating Android apps while easy for a programmer to pick up, is probably not the best for first steps in programming IMHO but it can be done.
Click to expand...
Click to collapse
Okay, so what do you think the best start to programming is? I really feel it is something I would love to learn. I realize it will be a big challenge...but I think I am up for it
Go for it!!!
I would recommend getting to know a bit of Java first. The Java Tutorials found on the Oracle website are an excellent place to start. I've been learning to program for Android for the past month or so, it's hard going, but very rewarding.
bendonahue said:
Okay, so what do you think the best start to programming is? I really feel it is something I would love to learn. I realize it will be a big challenge...but I think I am up for it
Click to expand...
Click to collapse
Eh, for years I have debated between Assembly and shell script depending on the goal. Programming languages are only a slice if the craft.
Sent from my Transformer Prime TF201 using Tapatalk