[Q] What kind of programmer do I need for Android? - Android Software/Hacking General [Developers Only]

I am in the process of starting a small firm to create Android applications. Not being a programmer myself, I have no idea what kind of engineer we need to create vacancies for.
So, what are the languages necessary to program for Android?

ftgg99 said:
So, what are the languages necessary to program for Android?
Click to expand...
Click to collapse
I've read that for apps, you need to learn Java, and for Kernels learn C.
Sent from my T-Mobile myTouch 3G Slide using XDA App

As a business owner here is something that might interest you as you will be able to develop cross platform - DragonRad.
Getting ready to try it myself. Best of luck with your search and your new firm ftgg99.
Video 1
Video 2
Video 3
Only drawback I can see is Windoze based only as far as building...use of app is cross platform

Thank you, looks very interesting!

DragonRAD is for building data-driven apps. If you're looking to mobilize your existing back-office data, then DragonRAD is for you. But if you're looking to build games, or 'consumer-type' applications, it may not be. Hope that helps!

Android applications are mainly coded in Java but i believe can also be coded in C++
Although, if you're going to be developing cross platform (iphone, symbian, etc.) you'll need people who can code in a range of different languages.

Related

Mono for Android

Are there any developers using Mono for development? Looking for some feedback on it...
Galaxy Red - DJ05 - Voodoo5 using XDA app
Mono with JIT enabled won't work on the Fascinate (or any Galaxy S device) until 2.2 is rolled out. Of particular note, this causes many problems with games authored in Unity3D. Cite: h t t p :// forum.unity3d.com/threads/62410-Galuxy-S-support#post409742
If I was drinking something I would have spit it out when I read the title of this post.
Sent from my SCH-I500 using XDA App
I wonder if some of the new Kernels that are being created are having the same issue ... but Unity isn't using Mono from my quick skim of the site. And from my reading, mono has its own JIT runtime. It would be interesting to know if anyone has used it yet.
http://monodroid.net
Uhhh...no
Lol...the CORRECT answer is why the f*ck would you want to? C# is M$ lame attempt to make a proprietary language. Why did the world need C# when Java is a perfectly good language? It didn't. .Net is garbage unless you want to write windows software, but that's lame....just sayin .
jfelectron said:
.Net is garbage unless you want to write windows software
Click to expand...
Click to collapse
Wait, you mean it's only useful for the exact thing it's ****ing intended for? Shocking.
jfelectron said:
Lol...the CORRECT answer is why the f*ck would you want to? C# is M$ lame attempt to make a proprietary language. Why did the world need C# when Java is a perfectly good language? It didn't. .Net is garbage unless you want to write windows software, but that's lame....just sayin .
Click to expand...
Click to collapse
There is just so much that can be gleaned from this post...
1) Obviously you've never actually tried developing in C#, because it's a complete pleasure to work with. Once you've used Visual Studio, it literally pains you to use anything else, because no other IDE comes close. I've used them all.
2) The entire point of this post is that .NET is not useless; The specification for .NET is completely open. And .NET is apparently good enough that people devoted their free time to develop Mono, thus enabling .NET development for Linux platforms. There's also Silverlight and ASP.NET which enable development of Web applications.
3) M$? Seriously? I remember back when the internet was invented and people thought that was funny. Now it's just kind of ignorant.
4) Refusing to open yourself up to multiple development technologies is a great way to find yourself irrelevant in a short amount of time.
5) Obvious troll is obvious. Sorry for feeding him.
bmxdad said:
I wonder if some of the new Kernels that are being created are having the same issue ... but Unity isn't using Mono from my quick skim of the site. And from my reading, mono has its own JIT runtime. It would be interesting to know if anyone has used it yet.
Click to expand...
Click to collapse
As a Unity3D dev, I can assure you that Unity3D is indeed powered by Mono. (With all the C# code I write every day it better be! )
That said: the 2.1-based kernels that are rolling out for the Fascinate do indeed suffer from this effect. In fact, Kaoscinate is unable to use Android's built in JIT interpreter due to this very effect. I was trying briefly to help him trace down the problem, but didn't have enough time to contribute. Maybe after our next game ships.
konistehrad , thanks for the reply.
I'm one of those stupid C# / Asp.Net developers, so its nice to know I'm not alone.
To jfelectron ... I wonder what the new windows phone is using .. O yea ... .Net and C# .... Go figure ...
bmxdad said:
I wonder if some of the new Kernels that are being created are having the same issue ... but Unity isn't using Mono from my quick skim of the site. And from my reading, mono has its own JIT runtime. It would be interesting to know if anyone has used it yet.
http://monodroid.net
Click to expand...
Click to collapse
In addition to Monodroid(which will require you pay a fairly hefty license fee for an independent developer) there is also Koush working on his own free open source port. This can be found here: http://www.koushikdutta.com/search/label/Mono
I'm not sure what all works in either implementation but I don't think either of them is ready for prime time yet.
I'll be in heaven when it is as I currently develop in VB.Net and swapping to eclipse is a nightmare, not having the .net framework is horrible as well because now I have to reinvent the wheel for dozens of objects.
Haha, I see the C# harpies have descended to inform us how wonderful their language is. It's not a question of how nice it is or isn't to use, it's a question of why fragment the development landscape with ANOTHER systems programming language that is a pretty blatant copy of Java. I don't think C# is fundamentally better than Java, so it just fragments minds away from common development goals and creates two independent efforts. This hurts everyone. It's fine to take an existing Mono/C# codebase and want to run it on Android. I just don't see why you would want to use something like MonoDroid to develop from scratch. The best apps will ALWAYS use the native APIs, there is just no reasonable way a secondary set of APIs that wrap native APIs will provide the same experience. The Evernote people were just talking about this, they have development teams for each platform, they don't look for write once run everywhere solutions because at the end of the day these deliver subpar experiences. If you don't know Java and Android APIs then learn them. Same for iOS. I'd do the same for WP7...that is if I wanted to work for a I decide the UI for you overlord.
I'm pretty sure that everyone participating constructively in this thread has mentioned that they're currently a .NET developer who has code written in VB/C#. It surprises me how much flak this thread is attracting when we're discussing tools and libraries that allow us to effectively and comfortably develop more software for the Android platform.
I develop mostly in Java, but language wise C# is way better. Java 7 still isn't getting lambdas, an when it does it's going to be really kludgy. Java language development has kind of died. Scala is pretty cool though. And Visual Studio is significantly better than eclipse, although IDEA is quite good too. I do like eclipse but it's just not as nice to work with and slower.
Yes ... C# is a redo of Java, kinda, but they moved it beyond what the Java was ... ***** about about MS all you want, they do have some good stuff. As for the API's, they're doors for us to use ... it all gets crunched down to 1's and 0's, so who cares how it gets there. Simplistic I know, but I'm sure you get what I'm saying.
They're already porting .net to the iPhone, so I was just wondering if anyone was interested ... didn't know I would touch a few nerves
jfelectron said:
Haha, I see the C# harpies have descended to inform us how wonderful their language is. It's not a question of how nice it is or isn't to use, it's a question of why fragment the development landscape with ANOTHER systems programming language that is a pretty blatant copy of Java. I don't think C# is fundamentally better than Java, so it just fragments minds away from common development goals and creates two independent efforts. This hurts everyone. It's fine to take an existing Mono/C# codebase and want to run it on Android. I just don't see why you would want to use something like MonoDroid to develop from scratch. The best apps will ALWAYS use the native APIs, there is just no reasonable way a secondary set of APIs that wrap native APIs will provide the same experience. The Evernote people were just talking about this, they have development teams for each platform, they don't look for write once run everywhere solutions because at the end of the day these deliver subpar experiences. If you don't know Java and Android APIs then learn them. Same for iOS. I'd do the same for WP7...that is if I wanted to work for a I decide the UI for you overlord.
Click to expand...
Click to collapse
By your logic why did anyone ever move away from programming in machine code? It was the purest and fastest executing code ever!
jfelectron said:
Haha, I see the C# harpies have descended to inform us how wonderful their language is. It's not a question of how nice it is or isn't to use, it's a question of why fragment the development landscape with ANOTHER systems programming language that is a pretty blatant copy of Java. I don't think C# is fundamentally better than Java, so it just fragments minds
Click to expand...
Click to collapse
Well, I didn't like J++. I felt the same way about C# until I did a test project with SharpDevelop. It really is a pleasure to use, most especially when coming from Java. Both languages also read very similarly and are easy to bounce between. In terms of fragmentation, it tends to come with the territory and might as well be accepted.
Learning something new isn't necessarily evil.
MS does decent development tools. CLR is open and in many aspects better than JVM. C# as language progressing way faster than java and puts it to shame way to often.
Read here from Koush. I guess that name rings a bell?
So, why not? Competition is great!
Unity and Mono
As a long time .Net developer I was drawn to Unity with significant suspicion of the Mono framework, I had always assumed that mono was going to be a slower, poor cousin of the official framework, but for my needs it has proved problem free on a range of Android devices. I chose Unity and Mono as a framework for game dev on android because I had a significant amount of code in c# from Windows Mobile 6 dev back in the day, and Unity had the 3d rendering capabilities I needed.
I'm using Unity game engine that uses Mono. C# is a great language that addresses many shortcomings in C++ and Java. However it is not possible to do everything in the mono-runtime on Android. C# to Java bridge is pain in the ass to implement.
Lets be realistic...
First came C and then that evolved to C++. Today the vast majority of operating systems are written in either C or C++. I have NO idea what Object C is (iOS) but I am sure it is evolved from one of these as well.
Java was an attempt to produce a machine generic programming language where the code runs on any machine. This language was based on C (C++?) and as such is very similar to C(c++) in many areas. However to reach this generic level all compiled code is compiled to a machine independent code and run on an interpreter. This code then is slightly slower than if the same program was written in C or C++. But can be run on MANY machines without porting which is not the case with C or C++.
C# was intended to be an extension of C++. After MS's failed attempt at J they put their energy behind C#. C# has now become a very viable C++ replacement on MS machines to a point it doesn't make much sense to write in anything else unless you are writing system level code for which C++ or C makes sense. Somewhere along the failure with MS's attempt at a Java clone they decided to make .NET a "standard" library which allowed Mono to become reality. C# has evolved over time to incorporate many of the great ideas that Java has included but have come up with many new ideas of their own. Realistically it comes down to which do you feel more comfortable programming in. Java or C#. C# with it's .Net libraries can be much easier to write for than Java simply because of the Libraries available.
On another note, I saw a product recently that looks very promising. dot42 is a product that appears to be looking to make a compiled C# program for Android. This by passes the need for the code interpreter and could potentially be as fast as C++ or C code for running on Android.

What language would i have to learn for Android?

If i wanted to help dev for this xda scene and android in general, what language (programming) should i used first?
I know android is in C and java, but just wondering, i really wanna get started
I'm very interested in some basic knowledge as well. I've done some very basic C++ stuff years back, but know nothing of linux. I'd love to star this as a hobby and if nothing more be able to try to read the code and understand what others are making. Anyone have any good links to some starter guides?
I believe it Java
Beastclaw said:
I believe it Java
Click to expand...
Click to collapse
for linux? arent kernels and stuff based in c?
Depends on what you're doing, apps and such are done in Java and XML, but the framework for android is done in C/C++ (best I can tell, I've never made mods to a rom or anything, maybe when I have more time in a couple of weeks).
For C, I like King's book (and it seems to be a popular one):
http://knking.com/books/c/
The first edition can frequently be found for <$10 if you look enough, and needless to say that the basic concepts of the C language haven't changed enough (at all?) to warrant paying SO MUCH MORE for the 2nd edition.
For Java, well I have a couple of books but neither are great. Somebody else probably knows of a book or site. Once you pick up basic Java, look at Google's guides to programming for Android, it contains the little details you'll need to make the code do what you want in the phone.
jasoninator said:
Depends on what you're doing, apps and such are done in Java and XML, but the framework for android is done in C/C++ (best I can tell, I've never made mods to a rom or anything, maybe when I have more time in a couple of weeks).
For C, I like King's book (and it seems to be a popular one):
http://knking.com/books/c/
The first edition can frequently be found for <$10 if you look enough, and needless to say that the basic concepts of the C language haven't changed enough (at all?) to warrant paying SO MUCH MORE for the 2nd edition.
For Java, well I have a couple of books but neither are great. Somebody else probably knows of a book or site. Once you pick up basic Java, look at Google's guides to programming for Android, it contains the little details you'll need to make the code do what you want in the phone.
Click to expand...
Click to collapse
Thanks a lot for the reply! I will look into some book whenever I can, for now, its Google
Sent from my ADR6400L using XDA Premium App
I just started working on programming apps for the droid a few nights ago. I started out with:
http://www.makeuseof.com/tag/write-google-android-application/
After that I went to the Android Tutorials located at:
http://developer.android.com/resources/browser.html?tag=tutorial
Yesterday I purchased Beginning Android Application Development. This has been a good book so far, only on chapter 2 but I've learned a few things in just the HelloWorld app that I didn't learn with the Google Tutorials.
Today I ordered Java Programming 24 Hour Trainer. I am having a hard time finding a good starting Java book but this looks to be the best I could find. I haven't had any hands on with this book yet so I can't give ya my thoughts on this one yet.
Hopefully this helps ya out a little. Good luck!
If you're looking to do native applications that anyone can run, Java with the android SDK is what you need to learn. However, technically you can program in about any language on android, but it generally requires extra installing (which many would consider bloat). Easy to install languages are ones like python http://pygame.renpy.org/. http://news.ycombinator.com/item?id=2476649 and http://code.google.com/p/android-scripting/wiki/SharingScripts. Since android is linux, you can put pretty much anything you want on there as long as you can get past compiling things with the ARM toolchain. You could even stick a small web server on it if you really wanted like nginx or lighttpd.
You could do quite a bit in a web "application" as well if you have hosting somewhere. The native browser and ones like opera and firefox can render just about any sort of ajax initiated effect. The advantage to doing this would allowing what you do to be OS neutral, so it could run on any device, not just android. Obviously, the drawback would be performance.
There is another project besides the python one above for additional languages here http://code.google.com/p/android-scripting/. This supports python, perl, beanshell, bash and lua (as well as contains interpreters for testing code in all of them).
If you're looking to do development for those of us that have rooted and such, C would be the better option (assuming you're interested in kernel and android source code development).
The community (free) version of Intellij IDEA IDE has pretty good android development support (as well is general java support) and testing (junit, phpunit, etc). They're running a 40% off sale currently as well to buy the full IDE (which supports many other programming languages like php, python, ruby, javascript, etc).
Well worth the money imho; I used netbeans, eclipse (which also supports android development through a plugin) and several other IDEs before it and would never go back. They actually care and reply to bug reports you file as well. I've submitted 2 in the past few months and both have either been partially fixed or will be fixed in the next version. They also give roadmaps of what will be in upcoming versions and are very open about software issues and public relations. You'd think such things would be normal for professional apps, but you would be shocked.
http://www.jetbrains.com/idea/
If you're looking for decent books, usually the O'Reilly ones are good (the books with the animals on the front) http://oreilly.com/store/. O'reilly has at least one book that's recent on Android development. Books published by Apress tend to be pretty good as well.
the android kernel is in C, so you would need to know C++ to play aroudn with ROMs and kernels. to just write an app, you only need to know java.
i just wrote my first app last year, and even made my first kernel to go along with it. granted the kernel i only changed one file, a couple hunder lines of new code. and the app was a great starter project for anyone in this position, had a few different semi easy activities, a 4 tabbed app, to show and learn how it all works together.
great experience, just hit me up if you have specific questions.

[Q] How to become an Android developer?

I've seen all the work you guys here at XDA developer do (and it's all really great).
And i'd really like to be able to develop stuff for android devices like you guys!
I know how to use Eclipse to develop apps and i've made a few apps already (no games or any real good stuff because i'm still learning right now).
But I want to be able to develop ROMs,kernels,...etc.U know!!
I've signed up for a java coarse at "New Horizons" training center and i'm gonna start in about a month.
But that won't teach me everything,it won't even teach me everything about application-creating
So,here I am,asking you guys (android developers):
How can I learn the stuff that you've learned?
What websites should I check out?
Where and how can I learn how to develop complete apps,games,Roms and kernels for any android smartphone?
In other words;Tell me how you learned all this stuff,and how can I learn it too?
Thank U!!!
Custom ROMS are not created from scratch.
Existing ROMs from the manufactors are taken appart, dissected, modified and packed again to be uploaded here.
The best way to start on that is just by taking apart existing ROMs and looking through the files.
Modifiy some, repack them and check if it still works.
Repeat said process .
If you want to go deeper read up about decompiling & recompiling apk files.
Modifying bak smali code.
For creating your own kernels, just use google, so much info about that. Its not an android only topic, but a linux topic and the internet has plenty of info on that.
Good luck on your journy .
The first thing you have to do is to understand the system. This means you have to understand Linux, the kernel, the datasystem(because Android is obvisiously based on Linux).
You have to be able to understand written code or program/code yourself.
The best way to code for android is to learn java.
Read this here: http://developer.android.com/guide/index.html
Ok,thanks for the information.
But let me tell you what I already know and understand:
Android is Linux,I know what linux is,I know everything about it and i'm already using GNU Fedora and Ubuntu (I have spent countless hours reading the "about Ubuntu" and "about GNU"),In Android or Linux everything is a file and everything in the system or the apps has a file .
Now I have some questions that I need you to answer first before adding anything else:
1-Is learning Java enough?don't I need to learn any other programing languages?And if I do,then what languages will I need to learn?
2-how can I learn to build or modify an android kernel (linux)?give me a good site or something?
3-how can i learn to decompile and recompile apks and roms?
4-What will I be needing to learn in order to buid a kernel?
5-What programing langusge is the android source code written in?I think it's java,am I right?
I hope you answer these questions before adding anymore information.
Thanks in advance,and I hope it's not any trouble)
1-No, you need to compile and modify kernels etc. therefore you need to program in C(I guess)
2- Well, buy books about Linux and Kernels etc. Its quite difficult to teach it. You gotta learn yourself.
3- Decompiling and recompiling is not an option. Its like stealing - Dont modify apks without permission. If you got permission then you modify apks with the SDK(Java).
Roms are often compiled in C(I think)
4 - Books and the will to learn.
5. Android Source Code is C(like Linux), Android Apps are Java.
Quinity said:
1-No, you need to compile and modify kernels etc. therefore you need to program in C#(I guess)
2- Well, buy books about Linux and Kernels etc. Its quite difficult to teach it. You gotta learn yourself.
3- Decompiling and recompiling is not an option. Its like stealing - Dont modify apks without permission. If you got permission then you modify apks with the SDK(Java).
Roms are often compiled in C#(I think)
4 - Books and the will to learn.
5. Android Source Code is C#(like Linux), Android Apps are Java.
Click to expand...
Click to collapse
Just making sure you mean c, not c# right??
Try visiting the android website. There is a tutorial on how to get started with android development.
There is a fee that you would need to pay per year in order for your application to appear on the android market where you will be able to sell your product.
Java will be advantageous when it comes to android programming and if you know J2ME that will be a bonus as well.
ps:Learn from examples, buy a good book for beginners: “Hello, Android” and “Beginning Android“.
(i’m not a developer)
Nilurun said:
There is a fee that you would need to pay per year in order for your application to appear on the android market where you will be able to sell your product.
Click to expand...
Click to collapse
I believe it is a one time fee when you sign up, not a yearly fee.
Ok,I'm already using the Android developer website,but the whole thing takes time to read all the guidelines and do tutorials and packages.
So all i'm asking here:
What programming languages do I need to learn in order to be able to understand the native android source code and develop everything starting from kernel down to apps,I already know that I need to learn Java for apps and thanks to "Quinity" I know I need to learn C to understand the native source code.
I can easily learn C at any professional training center.The questions now are:
1-how and where can I learn to edit the Linux kernel and decompile and recompile ROM and APK files?
2-why do I even need to learn Java ME (formerly J2ME)?
I understand that Java ME is the java environment originally running on small devices with limited processors and performance such as mobile phones and smart phones,but what is the use of it when it comes to the app development,or any Android development at all?
And thanks for all the replies.
One more thing,I have to make sure what the android source code written in.And Quick answers;PLEASE.
Is it C,or C#?
C
Check out the wikipedia article, which states at the beginning:
The Android open-source software stack consists of Java applications running on a Java-based, object-oriented application framework on top of Java core libraries running on a Dalvik virtual machine featuring JIT compilation. Libraries written in C include the surface manager, OpenCore[21] media framework, SQLite relational database management system, OpenGL ES 2.0 3D graphics API, WebKit layout engine, SGL graphics engine, SSL, and Bionic libc.
Dark3n said:
C
Check out the wikipedia article, which states at the beginning:
The Android open-source software stack consists of Java applications running on a Java-based, object-oriented application framework on top of Java core libraries running on a Dalvik virtual machine featuring JIT compilation. Libraries written in C include the surface manager, OpenCore[21] media framework, SQLite relational database management system, OpenGL ES 2.0 3D graphics API, WebKit layout engine, SGL graphics engine, SSL, and Bionic libc.
Click to expand...
Click to collapse
Thanks,the article really did help a lot.
So,now I need to learn Java SE (without question),but what about Java EE and Java ME,will they be useful in the app development process,will I need them?
And what If I can't learn C (it's extremely hard to find a training center that teaches C these days),will learning C++ or C# do me any good?
I know that the source code is written in C,but is it really a big difference between the three,If I learn C# or C++ will I still be able to do everything I need to do and fully understand the code?
note that i'm on a tight schedule for now and I need to learn only the stuff I can't do without.
speeed_demon47 said:
Thanks,the article really did help a lot.
So,now I need to learn Java SE (without question),but what about Java EE and Java ME,will they be useful in the app development process,will I need them?
And what If I can't learn C (it's extremely hard to find a training center that teaches C these days),will learning C++ or C# do me any good?
I know that the source code is written in C,but is it really a big difference between the three,If I learn C# or C++ will I still be able to do everything I need to do and fully understand the code?
note that i'm on a tight schedule for now and I need to learn only the stuff I can't do without.
Click to expand...
Click to collapse
I think you are missunderstanding something here.
You should start by just learning java, the different EE ME SE etc. are still java.
The difference is that those are sets of java platforms. They bring, as does the android platform, prebuild libaries along, these contain functions (i.e. print that, create datastructure X) so you don't have to write every tiny bit of code.
Forget about those.
You want to use java on the android platform, which still uses java, but brings along its own libaries with prebuild code you can use ( See http://developer.android.com/reference/packages.html ).
So just learn java, if you want to work with android you can learn java on the android platform, this way you will already be familiar with the libaries provided by android.
I would say C# is more similar to java and C++ is more similar to C.
I don't understand what you mean with "do everything i need to do".
What do you need to do?
"Understand code".
Understanding code does require more than knowing what each line does, you will have to see the bigger picture ,not just few lines of code, to understand what is does. Depending on how the code is written (tidy or confusing), is the code commented? It might take ages to understand it.
Programming is sometimes a bit like art . Code can be beautiful or horrible
You don't have to do everything in a training center either.
The internet, time and interest is enough. There are so many tutorials and pages available...
You could have also found most of the answers by just using google...
Wikipedia article about java holds the information about the differences between EE/ME/SE etc...
Searching for terms like "difference C C sharp" etc. holds the answer to that question...
So maybe a training center is better for you to learn those programming languages, as "google skills" will certainly be required to teach you those things yourself.
What tight schedule are you on?
Dark3n said:
I think you are missunderstanding something here.
You should start by just learning java, the different EE ME SE etc. are still java.
The difference is that those are sets of java platforms. They bring, as does the android platform, prebuild libaries along, these contain functions (i.e. print that, create datastructure X) so you don't have to write every tiny bit of code.
Forget about those.
You want to use java on the android platform, which still uses java, but brings along its own libaries with prebuild code you can use ( See http://developer.android.com/reference/packages.html ).
So just learn java, if you want to work with android you can learn java on the android platform, this way you will already be familiar with the libaries provided by android.
I would say C# is more similar to java and C++ is more similar to C.
I don't understand what you mean with "do everything i need to do".
What do you need to do?
"Understand code".
Understanding code does require more than knowing what each line does, you will have to see the bigger picture ,not just few lines of code, to understand what is does. Depending on how the code is written (tidy or confusing), is the code commented? It might take ages to understand it.
Programming is sometimes a bit like art . Code can be beautiful or horrible
You don't have to do everything in a training center either.
The internet, time and interest is enough. There are so many tutorials and pages available...
You could have also found most of the answers by just using google...
Wikipedia article about java holds the information about the differences between EE/ME/SE etc...
Searching for terms like "difference C C sharp" etc. holds the answer to that question...
So maybe a training center is better for you to learn those programming languages, as "google skills" will certainly be required to teach you those things yourself.
What tight schedule are you on?
Click to expand...
Click to collapse
Yes,I already know all about java,I read the articles on wikipedia,but why would I need to learn java enterprise? Isn't it mostly used around internet applications and servers? Can't I just use the APIs if i'm going to build an app that needs internet or server connectivity?
And why would I need to learn java Micro? Doesn't android use dalvik virtual machine to run apps? I mean,java Micro is mostly used to create feature phone apps,why would I need it with android?
There's something I don't understand though,on wikipedia the article about android says this:"Applications are usually developed in the Java language using the Android Software Development Kit, but other development tools are available, including a Native Development Kit for applications or extensions in C or C++"
So,the question is;what is the difference between apps developed in java and apps developed in C or C++?
The problem about C# is that I don't know anything about it;can't find any articles on wikipedia and other sites really don't help!!!
I meant by "understanding the code",having the ability to understand the command lines,what they do,what each line is responsible for and having the ability to edit or adjust something,.....etc.
And for the tight schedule;I need to learn everything about android within 6 months (I don't need to learn C as much,but it'd be a bonus),and that's why I go to training centers,faster and more efficient than self learning.
What did u mean by "google skills"?
And what did u mean by "learn java on the android platform"?
Thanks for the help and providing quick answers.
speeed_demon47 said:
Yes,I already know all about java,I read the articles on wikipedia,but why would I need to learn java enterprise? Isn't it mostly used around internet applications and servers? Can't I just use the APIs if i'm going to build an app that needs internet or server connectivity?
And why would I need to learn java Micro? Doesn't android use dalvik virtual machine to run apps? I mean,java Micro is mostly used to create feature phone apps,why would I need it with android?
There's something I don't understand though,on wikipedia the article about android says this:"Applications are usually developed in the Java language using the Android Software Development Kit, but other development tools are available, including a Native Development Kit for applications or extensions in C or C++"
So,the question is;what is the difference between apps developed in java and apps developed in C or C++?
The problem about C# is that I don't know anything about it;can't find any articles on wikipedia and other sites really don't help!!!
I meant by "understanding the code",having the ability to understand the command lines,what they do,what each line is responsible for and having the ability to edit or adjust something,.....etc.
And for the tight schedule;I need to learn everything about android within 6 months (I don't need to learn C as much,but it'd be a bonus),and that's why I go to training centers,faster and more efficient than self learning.
What did u mean by "google skills"?
And what did u mean by "learn java on the android platform"?
Thanks for the help and providing quick answers.
Click to expand...
Click to collapse
You miss understood again...
I will try to be clearer:
I meant by google skills, that you would find most answer yourself if you just use a search engine with the right terms.
You DONT need to learn Java ME/SE etc.
You can and will only use the APIs provided by the android toolkit.
So if you already know java, google "android developement tutorial" and start build some apps to get experience.
Forget C#, you don't need that, AT ALL for android.
Android apps, only need java.
If you want to understand the deeper layers of android, those are written in C.
But "int i=0;" is a variable i with value 0 in java and in C. So if you just want to read some of the code of the deeper layers and change small bits, you don't need to take extra courses in C.
So the conclusion is, you need to understand the android architecture and be able to write apps and have experience...
I would recommend to just think of some thing and write an app for that, learning by doing. Occasionally you can read some theory about the underlying concept of what you are doing.
An example would be to write an app that sorts values the user enters.
You would use already premade sort and array functions from the android api
Something like
Code:
Array x;
x.addAll(y);
x.sort(Descending);
To get deeper knowledge you could then browse the android sourcecode and see how x.sort actually sorts the array.
I think Android application is writen in Java ?
But maybe it is not that your question?
Dark3n said:
You miss understood again...
I will try to be clearer:
I meant by google skills, that you would find most answer yourself if you just use a search engine with the right terms.
You DONT need to learn Java ME/SE etc.
You can and will only use the APIs provided by the android toolkit.
So if you already know java, google "android developement tutorial" and start build some apps to get experience.
Forget C#, you don't need that, AT ALL for android.
Android apps, only need java.
If you want to understand the deeper layers of android, those are written in C.
But "int i=0;" is a variable i with value 0 in java and in C. So if you just want to read some of the code of the deeper layers and change small bits, you don't need to take extra courses in C.
So the conclusion is, you need to understand the android architecture and be able to write apps and have experience...
I would recommend to just think of some thing and write an app for that, learning by doing. Occasionally you can read some theory about the underlying concept of what you are doing.
An example would be to write an app that sorts values the user enters.
You would use already premade sort and array functions from the android api
Something like
Code:
Array x;
x.addAll(y);
x.sort(Descending);
To get deeper knowledge you could then browse the android sourcecode and see how x.sort actually sorts the array.
Click to expand...
Click to collapse
Ok,good,thanks.
So,I don't need EE or ME,right? But if I learn them later on (maybe next year or so),would they come in handy or would they be useless?
I've been developing in Eclipse and SDK with ADT plugin,it's very helpful and I've completed most of the tutorials so far (hello world,tom cat,......etc) and started building something of my own.I've been also using Titanium app accelerator,it's really good too (still mainly eclipse but the tutorials and help are better);but so far all i've done is just copy the code and that's all,I didn't write a single line of code (maybe a few lines,but that's it).
I also started a course a week ago (learning Linux kernel),so far so good,And I found a good site to teach me image files.
But a little hung up on the programming languages section,so,conclusion;I need to learn Java Standard,would enterprise or micro be any good?
And about the native source code,will java be enough? won't I need to learn C?
Thanks for the quick responses,it's a lot of help.
HuTcHx said:
I think Android application is writen in Java ?
But maybe it is not that your question?
Click to expand...
Click to collapse
I already know that,but that's not what i'm asking about.
The enterprise edition and what not just offer different sets of libary for other platforms, aslong as long as you program for android devices you will have little use for knowledge of the other editions.
Think of it as being a specialised technican for cars. They all have engines and 4 tires and a steering wheel and all technicans can work with that, but will you work in a VW repair shop or in the Mercedes repair shop?
In this case you will work on the android platform, as long as you don't want to switch to server programming in java (Java EE) or embedded systems (Java ME), there is no need to get familiar with that.
Java SE means standart edition and basicly already included in the android libaries.
If you don't want to keep copy pasting code, try something different that has not been done in a tutorial, or modifiy a tutorial to do something else.
But there is nothing wrong with copying code, if you have written a good piece of code there is no harm in reusing it elsewhere.
The android sourcecode is a mix of java and C, the lower layers are written in C the higher ones in java.
I don't know what you want to achieve with your knowledge? To write apps you don't need to learn C.
It is difficult to master all fields, easier if you choose one.
Dark3n said:
The enterprise edition and what not just offer different sets of libary for other platforms, aslong as long as you program for android devices you will have little use for knowledge of the other editions.
Think of it as being a specialised technican for cars. They all have engines and 4 tires and a steering wheel and all technicans can work with that, but will you work in a VW repair shop or in the Mercedes repair shop?
In this case you will work on the android platform, as long as you don't want to switch to server programming in java (Java EE) or embedded systems (Java ME), there is no need to get familiar with that.
Java SE means standart edition and basicly already included in the android libaries.
If you don't want to keep copy pasting code, try something different that has not been done in a tutorial, or modifiy a tutorial to do something else.
But there is nothing wrong with copying code, if you have written a good piece of code there is no harm in reusing it elsewhere.
The android sourcecode is a mix of java and C, the lower layers are written in C the higher ones in java.
I don't know what you want to achieve with your knowledge? To write apps you don't need to learn C.
It is difficult to master all fields, easier if you choose one.
Click to expand...
Click to collapse
So,learning java enterprise isn't really important;but is it important if I want to excel in the development process?
But what's the use of learning Micro edition AT ALL when it comes to android development???
Isn't it used to develop apps for feature phones and PDAs,not smartphones?
And after I learn Java standard will I need to learn any special libraries for android? I mean,will I be able to get to writing the code right away or do I need to learn about the android files and libraries? or are they java standard already? I know I need to learn to compile the packages,but is that it?
And what about XML files,I can do them with JDK or Apache Ant,right? so,I don't need to worry about them,do I?
I'm trying to learn as much I can from the dev guide and the tutorials on the developers site,but the dev guide is too long to both read and comprehend,and that's basically a huge problem,cuz I have a job and education and I can't find time to know everything in the dev guide.
I know it'll be difficult to master all fields,but the team I'm going to work with needs someone who's able to edit the deeper layers of the code and,so I think I'll need both java and C for that job,it don't matter anyways I have time to learn both.

Where should I start if I wanted to start developing ROMs?

I have coding experience in C++ and windows programming languages, but I haven't a clue about android. I tried searching google and this forum for a good master thread or even a book, but haven't had much luck.
Can anyone help me out?
jojo54696 said:
I have coding experience in C++ and windows programming languages, but I haven't a clue about android. I tried searching google and this forum for a good master thread or even a book, but haven't had much luck.
Can anyone help me out?
Click to expand...
Click to collapse
same here
Hello I am new to xda and I would like to start developing new custom roms and kernels however I do not know where to start.
Just some background info about me:
I am 15 yrs old
I am have programmed in the following:
c++
visual basic
c#
asm
Java
javascript
html
android 2.2 framework
window phone 7 framework
xml
ios
XNA
I have done computer repair for people along with console repair
Tools I have used:
visual studio
android sdk
eclipse
dreamweaver
dev c++
Photoshop
appmobi xdk
phonegap xda
xcode iphone sdk
and some more
Phone I currently have:
evo 3d
I am a noob to making roms and I do not know how to start if someone could help me or point me into the right direction that would great. Thanks
Click to expand...
Click to collapse
that was my post and still no replys
First of all, learn and become comfortable with Java. If you're not comfortable with Java you're going to have some problems since besides the c libraries/kernel the android source is Java/XML.
Second, you need to decide if you're going to be messing with pre-built ROMs (or RUUs or whatever) or the actual AOSP. Actual AOSP is the actual source code but if you're modding a pre-built ROM you're going to have to also learn how to deal with smali code (which as far as I know is basically machine code [if you know what that is]).. Eris has a pretty good guide-in-progress which I'll find and post here later if I can.
It's a lot of work and a lot of looking and learning and not very clear. I have a lot of respect for the people who do it a lot I'm thinking of dabbling soon...
Edit:
here: http://teambamf.net/showthread.php/2793-Guide-Eris-s-Ultimate-Guide-to-ROM-ing-and-Porting

Looking to Develope

Hey Guys (and Gals),
I've been in the tech scene for a while, rooting and unlocking android/softmodding psps and xboxs for fun. However recently I wanted to contribute to the scene, and I'm kind of in a dilemma. I want to make a few apps, nothing crazy ambitious just learn how to. Though I'm not sure what platform to do it on. I am kind of torn about doing it on Android or doing it on the Windows marketplace. I want the simplest setup, (i have 2 windows 7 computers, and a htc rezound and toshiba thrive and tf300). I took a college course on C++ but it didn't even touch on guis or go that far in depth. So basically I am starting from scratch either way.
I like android and have a few pieces from them, but I feel as windows is just getting a start it would be a good chance to start also. Furthermore what language is best for each platform? I have heard java for android, but heard a c type program is overtaking, and html and javascript for windows. Any input is greatly appreciated
adamsaur said:
Hey Guys (and Gals),
I've been in the tech scene for a while, rooting and unlocking android/softmodding psps and xboxs for fun. However recently I wanted to contribute to the scene, and I'm kind of in a dilemma. I want to make a few apps, nothing crazy ambitious just learn how to. Though I'm not sure what platform to do it on. I am kind of torn about doing it on Android or doing it on the Windows marketplace. I want the simplest setup, (i have 2 windows 7 computers, and a htc rezound and toshiba thrive and tf300). I took a college course on C++ but it didn't even touch on guis or go that far in depth. So basically I am starting from scratch either way.
I like android and have a few pieces from them, but I feel as windows is just getting a start it would be a good chance to start also. Furthermore what language is best for each platform? I have heard java for android, but heard a c type program is overtaking, and html and javascript for windows. Any input is greatly appreciated
Click to expand...
Click to collapse
Woo! Somewhere I can be helpful.
I'd recommend researching a few game engines / frameworks. For example, check out Marmalade SDK (google madewithmarmalade), it's a cross-platform game engine that will abstract your game from the hardware it's running on.
I'd also suggest sticking with c/c++, it's probably the most versatile, and you'll be able to use it with Android, and iOS (and I believe the new Windows 8 mobile platform).
Hope that helps!
Jamie W said:
Woo! Somewhere I can be helpful.
I'd recommend researching a few game engines / frameworks. For example, check out Marmalade SDK (google madewithmarmalade), it's a cross-platform game engine that will abstract your game from the hardware it's running on.
I'd also suggest sticking with c/c++, it's probably the most versatile, and you'll be able to use it with Android, and iOS (and I believe the new Windows 8 mobile platform).
Hope that helps!
Click to expand...
Click to collapse
thanks, ill definitely look that up, any suggestions for tutorials on using c++ with android/windows?

Categories

Resources