[Q] Best Way To Start Developing? - HTC EVO 3D

I have NO knowledge of developing at all but I would like to begin building AOSP Kernels and have a very special script in mind.

i found this, i read it and became very intimidated.
now i want to do it too
http://wiki.cyanogenmod.com/index.php?title=Building_Kernel_from_source

NewZJ said:
i found this, i read it and became very intimidated.
now i want to do it too
http://wiki.cyanogenmod.com/index.php?title=Building_Kernel_from_source
Click to expand...
Click to collapse
Can this be translated to english?

I'm trying, I'm starting small by learning command line, i have kubuntu up and running and successfully have amarok configured

I am not a dev, but I do understand how OS/kernel/hardware interaction works somewhat and kernel development is probably the most difficult thing to develop. Especially when HTC only releases Kernel for their Sense version of Android. Sense is so intertwined and intrusive that most drivers in HTC's source will not work with AOSP Android and will probably have to be recompiled or modified in some way for them to work.
It may be easier to start small with making an app or theme. You may also learn stuff from visiting and reading in the Android Development and Hacking forum here.
I'm not trying to dissuade you from doing what you want, because if you can start at making and AOSP kernel then more power to ya. I am just informing you that this may be the most difficult place to start if you want to get into Android development.

So basically what this details is half setting up the environment necessary to make changes to the CM7 Kernel.
This is rather difficult stuff though. It's not a place to start out. Instead try making your own ROM. Look up dsixda's kitchen.
You might also want to get into learning a programming language. My personal favorite is Python.
Android is built using Java which there are good tutorials online for. I personally find Java annoying, but that's because I know Python. The style and syntax of Python is heavily different from Java.

Trial and error buddy just always have a nandroid for your builds and know the fastboot commands for starters if things ever get ugly
Sent from my PG86100 using Tapatalk

Yeah. I'm not really skilled with command though. I just know random commands for adb and terminal emulator.

Related

[Q] Developing Apps and Roms: Q for Developers... help a noob

hey guys... just in the very beginning stages of wanting to learn how to develop android apps/roms and looking for some quick help to get on the right track. (my bro in law and father in law are developers in python and bro-in-law is really getting into android). I am reading through a book which teaches the beginner Java programming to start. In the mean time, I have installed the newest version of JDK (with all the plugins), Eclipse, and Android's plugin for Eclipse.
1. Is this all I need to get started?
2. Does every developer use Eclipse? It was my understanding that it is more of a "crutch" to make android app developing easier... I want to understand the code behind the program.
3. What other advise do you guys have for me?
Thanks for any and all help.
in_dmand said:
hey guys... just in the very beginning stages of wanting to learn how to develop android apps/roms and looking for some quick help to get on the right track. (my bro in law and father in law are developers in python and bro-in-law is really getting into android). I am reading through a book which teaches the beginner Java programming to start. In the mean time, I have installed the newest version of JDK (with all the plugins), Eclipse, and Android's plugin for Eclipse.
1. Is this all I need to get started?
2. Does every developer use Eclipse? It was my understanding that it is more of a "crutch" to make android app developing easier... I want to understand the code behind the program.
3. What other advise do you guys have for me?
Thanks for any and all help.
Click to expand...
Click to collapse
1) Pretty much.
2) I don't know if every dev uses Eclipse, but it's not a crutch. You're probably thinking along the lines of the garbage web pages Frontpage generates. That's not what Eclipse does. It'll generate some tedious code for you (when you tell it to), but it's a powerful and customizable tool, not a babysitter. Anyone that tells you do use Notepad instead is an idiot.
3) A lot of people will disagree with me, but I think learning Java with no programming experience is about the hardest path you could take. But it's tough to try to learn another language for the sake of it while what you really want to do is make an Android app. Just know, going in, that the path you're taking is tough.
You'll hear about object oriented vs procedural programming, but what everyone neglects to say is that object oriented expands upon procedural. That's why, ideally, I'd recommend everyone start with a procedural language.
Make sure you at least get a decent understanding of what object oriented programming is all about. And make sure you bookmark the Java API! If you're not using it you're doing something wrong.
Edit: Disclaimer: I've been a software developer for over 10 years and using Java for most of that. I spent a couple days looking through the Android SDK and tutorials and decided I didn't have a good enough app idea to make it worth the effort.
thanks so much, your input is much appreciated!
Be patient and do write many small apps as a start. And oh, xda chef central is another great resource also stack overflow is your best friend.
I would suggest you be patiently read or watch some tutorial before do 'try and error' way to test what works. Learn from experienced dev is really important
From my RAZR MAXX
Yeah I agree, I would definitely start out with small apps. The first few (several?) things you write are going to suck. Even if they work perfectly well, the code behind them is going to be poorly designed and hard to maintain and enhance.
In a class way back when, our instructor had us writing a to-do list manager. You can start with a simple list and then enhance it as you learn more. ie, add/delete items, priorities, due dates, reminders, etc. You'll read and say "hey, I could use this to do so-and-so," or "I wish I could add this function" and learn how to do it.
In addition to learning how to code and use the Java api, you'll also learn why you eventually want to understand how to design as much as possible up front.

Developer workflow?

Hi there! I was curious as to the ROM developer workflow. I'm somewhat familiar with building AOSP for x86 VMs and have done some skinning and manipulating system apk's ... but I have some other questions:
1. What distinguishes a ROM package from other zip installers, I guess since it is *nix, everything's a file and most ZIPs then just have the files changed?
2. Jokersax makes mention of doing all development on the device itself... What this workflow, just doing a lot of nandroid backups then, or just replacing things on the fly and hoping for the best?
3. What options exist for adapting system level native code, perhaps I guess I'm asking if, for instance, the camera works with Blur stock SBFs, how could one go disassembling the functionality and deriving CM9 compatible packages? Are the drivers that tightly coupled with the UI elements? That would seem impossible to maintain, and say what you want about Motorola, I couldn't imagine this to be the case.
Thanks -ap
Sent from my MB855 using xda app-developers app
antipasto said:
Hi there! I was curious as to the ROM developer workflow. I'm somewhat familiar with building AOSP for x86 VMs and have done some skinning and manipulating system apk's ... but I have some other questions:
1. What distinguishes a ROM package from other zip installers, I guess since it is *nix, everything's a file and most ZIPs then just have the files changed?
2. Jokersax makes mention of doing all development on the device itself... What this workflow, just doing a lot of nandroid backups then, or just replacing things on the fly and hoping for the best?
3. What options exist for adapting system level native code, perhaps I guess I'm asking if, for instance, the camera works with Blur stock SBFs, how could one go disassembling the functionality and deriving CM9 compatible packages? Are the drivers that tightly coupled with the UI elements? That would seem impossible to maintain, and say what you want about Motorola, I couldn't imagine this to be the case.
Thanks -ap
Sent from my MB855 using xda app-developers app
Click to expand...
Click to collapse
1) You are pretty much correct....and rom can be turned into a simple one file zip or vice versa
2) He actually uses the device along with a build machine. You can do some simple stuff on the device itself, but if you're going to get into decompiling jars or apks, you will need a bot or a PC.
3) Apktool (Linux/Windows) or Android Suite (Windows) will allow you to break down the apks like you are describing. I'm sure you can make a blur apk work with CM9 (obviously app developers on the Play market do manage to make both). I'm not very familiar with Blur/CM7, as I started work on ROMs after ICS had hit, and I really didn't see much real desire to do something that wasn't forward from where my phone was.
Mainly, you can do source work, which you are most likely familiar with the process of.
I do "port" work...taking the framework, apps and some other necessary functionality-related parts and making a new rom for my device with it.
If you are interested in the process, by all means get in touch with me via PM. We are in need of some people to help with a void that has been left by our team member Spleef taking on a second job.
Thank you so much for the extensive reply. I have about a kabillion personal projects, it would be perhaps interesting to ruminate some on the metadevelopment as it were, I do notice that the Cyanogen project seems to have a lot more ability to automate their workflows, it would be cool to try and get more people into those kinds of logistics to help out... Anyway, I'm trying to remain productive, I'm a long time lurker, and I can't bring myself to post unnecessarily to even get to the 10 posts I need to provide feedback in the development forums, but I'll try
I've been really inspired with the Clojure / Java community, especially "Leiningen" and things like Jenkins for continuous integration. Could be cool to try and think at this level, perhaps like a chrooted VM or something that enthusiasts could run to assist in build CPU times, or hell I dunno, this kind of thinking is all pie in the sky and is hell to set up possibly for little gain, although I'm encouraged that Bittorrent is being used a little more here and there perhaps to offload some of the hosting costs. FWIW I have used S3 in my own projects, and for various static sites I have, I've been hard pressed to pass 30 cents a month in hosting costs on S3, but this is all low traffic stuff and there's a lot of options out there with various kinds of advantages and disadvantages.
All in all, thank you all for your continued efforts, especially going into the later part of this year when JB will mature, and the possibility of ICS drivers being integrated. You guys rock!

[Q] Where should I start if I want to learn how to develop Android apps?

I'm wondering what are the steps I should take to learn/know how to develop apps for Android OS.
It would be very appreciated if you would consider me as a complete nooblet and advised me what I should learn/study.
For example, first thing I assume I should do, is study to code/language for Android platforms. So what is it?
What are the necessary development environment required? (Linux PC?)
My ultimate goal is to be able to create a launcher (ex. Go Launcher Ex).
I'm willing and able to invest my time into properly learning how to develop apps for Android, and I just need some help on an outline of a
syllabus, per say, of how I should progress with my studies.
On another note, I was wondering what the difference is between Launchers and Themes?
I was reading up on this Theme guide http://forum.xda-developers.com/showthread.php?t=916814 and it got me wondering if this only pertains to themes
or ADW launcher?
As you can see I'm quite confused
Thank you for your time.
Download SDK and start looking at the examples. You'll find an excellent step-by-step tutorial at developer.android.com/training/basics/firstapp/index.html
http://www.xda-developers.com/xda-tv-2/how-to-build-an-android-app-part-3-arduino-development/
refer this series of 5 awesome episodes by Adamoutler
Thank you for the replies
I will look into every mentioned content.
Linux seem's the right choice, for app development and ROM development, i personally use Linux for ROM development, kernel compiling also most of tutorials are based on Linux, and for app development i use windows, you can do both on windows but i prefer a full Linux OS that Cygwin for more complex Android stuff.
hmmm, as I stated above, my ultimate goal is to create a launcher of my own which I can create themes and customize at will.
Launchers fall into the Apps category if I'm not mistaken, so I wouldn't need another testing platform, and just use my trusty ol' PC with Win 7 x64, right?
Creating Launchers would be an 'Advanced' step in App development. First you have to get used with the Eclipse and android-sdk, debugging, editing and modifying the xml's etc. So I'd suggest you to take some sample tutorials based on App development. If you have enough knowledge in Java, then its so easy. But getting straight into creating Launchers would be slightly difficult IMHO.
Anyways I've created some Threads (You can see by visiting my Profile) based on beginner level app development. If you're interested you may refer and do as mentioned in the guide.
~Cheers
So the initial step I should take is learn comprehensive Java.
Thanks for the input.
coolsandie said:
Creating Launchers would be an 'Advanced' step in App development. First you have to get used with the Eclipse and android-sdk, debugging, editing and modifying the xml's etc. So I'd suggest you to take some sample tutorials based on App development. If you have enough knowledge in Java, then its so easy. But getting straight into creating Launchers would be slightly difficult IMHO.
Anyways I've created some Threads (You can see by visiting my Profile) based on beginner level app development. If you're interested you may refer and do as mentioned in the guide.
~Cheers
Click to expand...
Click to collapse
I started learning not to long ago as well, and I have found that youtube is pretty good. I can't sit and read books for a decent amount of time, so videos really help me. Here is one I have been watching :
http://www.youtube.com/playlist?list=PL2F07DBCDCC01493A&feature=plcp
or this bootcamp series is pretty good.
http://www.youtube.com/playlist?list=PLE08A97D36D5A255F&feature=plcp
I downloaded all the videos so I can watch whenever and jump around. Feel free to pm me, I have some more resources...
Just picked up a Java book :fingers-crossed:
In addition, looking into various Java beginner tutorials to back up the readings.
Hopefully, after I gain some basic understanding about Java (language), my transition into app dev for Android will be easier
AER0 said:
Just picked up a Java book :fingers-crossed:
In addition, looking into various Java beginner tutorials to back up the readings.
Hopefully, after I gain some basic understanding about Java (language), my transition into app dev for Android will be easier
Click to expand...
Click to collapse
If a Launcher is your ultimate goal, go with Java.
If you would also settle for lesser goals like simple timer apps, barcode scanner apps etc, trash your Java book.
Start with Python and the Python for android. You will be able to programm your first semi-sophisticated apps within a week.
AER0 said:
Just picked up a Java book :fingers-crossed:
In addition, looking into various Java beginner tutorials to back up the readings.
Hopefully, after I gain some basic understanding about Java (language), my transition into app dev for Android will be easier
Click to expand...
Click to collapse
i can suggest a few books...java for android developers , the android cookbook , linux in a nutshell , linux kernel by o'reily
Try to modify some android app/games first just like what im doing now:good:
Learning Java is for sure the first step, then look at the SDK examples.
Will do :good:
Thanks for the suggestions

[Q] As a complete noob to coding and Android development (could use some advice)

Hey folks!
Yes, this is my first post, and yes, it may be in the wrong section. If so, I would kindly ask some moderator to move it to the correct section.
Anyway, let me just get right to it:
I have NO coding experience whatsoever! I have never coded anything but a bit in html when I was 16 or something. I have a good understanding
of Android from a user-end perspective, and same goes for computers and website management - I've just never coded anything.
Now, I would really love to learn how to code applications for Android, as I feel like it would be a great challenge to take upon myself + I have a lot of ideas for apps, which I believe will be fun.
Now, I know that Android runs on Java, so I suppose I should start learning the basics of Java before moving into learning Android development, right?
In my search for great free / somewhat cheap online resources, I've found that "thenewboston .org" has a Java and an Android development section with video guides. I believe I should start with the Java section and then move on to the Android one.
Would you recommend using that site, or should I start somewhere else?
And also, is it correct for me to start diving straight into Java, or is there something I should know beforehand?
Or should I learn any other coding languages?
Please take into consideration that I know no coding language as of right now.
All help is very much appreciated! :fingers-crossed:
Java is the best option to start with!
All native applications of the android OS are written mainly in Java, which makes it a good option to start with. Also, as you already know some HTML Coding, you might not find it problematic using "XML".
Head over to this link: http://forum.xda-developers.com/forumdisplay.php?f=2195
You might find it useful to begin with.
vineethraj49 said:
All native applications of the android OS are written mainly in Java, which makes it a good option to start with. Also, as you already know some HTML Coding, you might not find it problematic using "XML".
Head over to this link: http://forum.xda-developers.com/forumdisplay.php?f=2195
You might find it useful to begin with.
Click to expand...
Click to collapse
First of all, thanks a lot for your reply.
What I take from your answer is, that it would be just fine to start diving right into Java, and also take a look at XML whenever I have extra spare time. Is that correct?
And also, what part of an application is built on/in XML?
The layout mainly comprises of xml
ltsune said:
First of all, thanks a lot for your reply.
What I take from your answer is, that it would be just fine to start diving right into Java, and also take a look at XML whenever I have extra spare time. Is that correct?
And also, what part of an application is built on/in XML?
Click to expand...
Click to collapse
Check any android app's source code. The application's interface mainly is made using xml's.
Welcome to this world, you'll have fun here for sure
Anyway, to your questions:
Yep, you need basic Java knowledge. Any website will be great to get started (actually, if you have a doubt and can't find the solution there, simply use Google. There are so much developers out there, is difficult to find an unanswered doubt).
You can get started with Java directly, you don't need to learn any other programming language. Take in mind that only the syntax changes between languages, the logic behind the programs is identical.
Android apps use Java for its core, and XML for its GUI. Don't worry, Eclipse (and after, Android Studio as well) offers a visual environment to build your GUI, without touch XML directly (of course, you can edit the XML code if you wish, for example, to make a quick change).
Good luck, dude :highfive:
RoberGalarga said:
Welcome to this world, you'll have fun here for sure
Anyway, to your questions:
Yep, you need basic Java knowledge. Any website will be great to get started (actually, if you have a doubt and can't find the solution there, simply use Google. There are so much developers out there, is difficult to find an unanswered doubt).
You can get started with Java directly, you don't need to learn any other programming language. Take in mind that only the syntax changes between languages, the logic behind the programs is identical.
Android apps use Java for its core, and XML for its GUI. Don't worry, Eclipse (and after, Android Studio as well) offers a visual environment to build your GUI, without touch XML directly (of course, you can edit the XML code if you wish, for example, to make a quick change).
Good luck, dude :highfive:
Click to expand...
Click to collapse
This was a very helpful answer!
You basically answered all my questions, and a few more than I hadn't even written yet.
Thanks for letting me know about the option to edit the GUI directly from Eclipse, which is currently what I use to learn Java.
I've found a lot of great resources here at xda-developers as well, so I'm really looking forward to dive into this now!
Already learned the very basics of creating user inputs etc. (yes, that is a noob talking - I know), and I am thrilled to learn even more

Building a prototype Gui

A lot of you may have come across my Android Desktop os 2.0, here.
http://forum.xda-developers.com/showthread.php?t=2214161
And people keep asking me about betas and what not, and truth is, it is all pictures, Photoshop and video.
Over time, this had me thinking about building a GUI, but not for a launcher, or anything 4.0+ or anything. I want to build a runnable App that resembles my desktop os.
there will be no runnable working apps, I just want to build it to where you can click around and get an idea of my os yourself.
I am learning Java, and am hoping I can build a prototype in Java.
I need to know what's the best language to build it in, if Java is possible, a list of programs to build the Gui and what not, I really need a lot of information
hope this was posted in the right place, and typing on the phone sucks.

Categories

Resources