Learning ROM Development - Where to even begin?? - Google Pixel Questions & Answers

So I’ve been a member here since the Droid X days and I’ve learned a lot over the years with each device I’ve had but I never really looked into creating ROMs (I always wanted to learn but never got to it).
I know it’s going to be a learning process that takes some time but I’m looking for help on where I should start. Before anyone posts a whole bunch of random looks I’ll say right now that I am a complete beginner when it comes to this stuff. I’ve looked at a bunch on threads and it’s so overwhelming being completely new so I don’t know what’s relevant and what’s not.
From the research I’ve done today I learned about a program called Android Kitchen which from my understanding was used to create and compile ROMs. From what I found it looks like the original dev stopped updating it back in 2013. In the ChefCentral>Android forum it looks like someone else took over and maintains it for Linux. I also came across a variant there called “Assayyed_Kitchen”. Is this the same program just made by someone else? I don’t know you tell me? lol
I also plan to learn some Java in the coming months and Android App development. I don’t have a huge interest in making apps right now but who knows maybe I will down the road. I just figured learning Java can only help with learning to make ROMs? Do I even need to know any of it for this kind of stuff?
So basically I’m looking for some guidance on where to start as a complete beginner in learning ROM development. Even someone taking the time to type out a few basic steps explains what the whole process even involves from start to finish would help a lot. For example..
1. Download source
2. Open in this program and blah blah
3. Do your magic and customize this and that
4. Do some more magic and pack it back up and flash
Just understanding the steps would make a huge difference because then I know what to research and what to learn. Hoping this thread gets some good info in it and maybe at some point I can create a complete noob friendly guide in the OP to help others like me who don’t know where to begin. To anyone that takes the time to reply and help out.. THANK YOU!

You download the source, edit the code you want to edit, then you compile it.
If you have more questions then that it is because you don't know enough to be able to make a ROM. Where to start? Learn how to code and compile, start compiling other peoples Roms and look at their commits and source code to see what changes they made.
You can't really drag and drop then place your logo on it.
Sent from my Pixel using Tapatalk

scryan said:
You download the source, edit the code you want to edit, then you compile it.
If you have more questions then that it is because you don't know enough to be able to make a ROM. Where to start? Learn how to code and compile, start compiling other peoples Roms and look at their commits and source code to see what changes they made.
You can't really drag and drop then place your logo on it.
Click to expand...
Click to collapse
Not sure what the attitude is for I never implied that I could do simple things like drag and drop and use others people's stuff and do it with no programming experience.
Again it's all new to me so I was asking where to start with it all. I am starting to learn Java this week and I'm trying to figure out how it all works.. I'm not interested in making android apps so the android development tutorials all over the internet wouldn't help. Yes they would help with the Java stuff but not with the ROM stuff so that's what I was trying to understand. Imagine being a complete beginner with this stuff. All this talk of compiling and GitHub and commits is all jibberish at first. You gotta start somewhere so I'm trying to get a grasp on everything. My goal is to understand the steps needed to make my own ROM first. Because once I know Step 1: use this program to do this Step 2: do this, etc.. then I know the basic overview and can start the process of actually learning the details involved in doing step 1, 2, etc

If I was teaching someone how to change a tire on a car. They first would have to understand that it involves jacking the car up, loosening lug nuts, take tires off, put new tire on, tighten lug nuts, lower car off jack. Once they get the concept and process of what they are trying to do.. then they can start learning how to jack the car up. Then how to take the lug nuts off.. and so on
If they didn't first understand the general process they might start to learn how to take the lug nuts off first and do that right away

The best place to start is to google , "how to build Android from source." This will help set up your build environment and teach you the basics. The rest is pretty much trial and error.
I started back in 2013 with one of the guides and just started messing with code. I went from not knowing any coding to compiling my first ROM(slimroms) within 2 weeks of starting. I became an official member about 2 months after starting. Here is a link to one of the guides I used to start.
http://forum.xda-developers.com/showthread.php?t=2223690

arcardinal said:
The best place to start is to google , "how to build Android from source." This will help set up your build environment and teach you the basics. The rest is pretty much trial and error.
I started back in 2013 with one of the guides and just started messing with code. I went from not knowing any coding to compiling my first ROM(slimroms) within 2 weeks of starting. I became an official member about 2 months after starting. Here is a link to one of the guides I used to start.
http://forum.xda-developers.com/showthread.php?t=2223690
Click to expand...
Click to collapse
Thanks for the link! I've done some searching around also. So I would need Linux correct? Not an issue I can partition one of my PCs just want to make sure it's definitely needed.
I think my s5 is still running slim ROM haha so thank you! Did you have any programming (Java) experience when you started?

aholeinthewor1d said:
Thanks for the link! I've done some searching around also. So I would need Linux correct? Not an issue I can partition one of my PCs just want to make sure it's definitely needed.
I think my s5 is still running slim ROM haha so thank you! Did you have any programming (Java) experience when you started?
Click to expand...
Click to collapse
I had no coding experience at all before starting.
You need Linux. You will also want a decently speced computer. I have an 8-core processor and 24 gbs of RAM and it takes about 20-30 minutes to compile a build. The computer I started on took about 4 hours.

arcardinal said:
I had no coding experience at all before starting.
You need Linux. You will also want a decently speced computer. I have an 8-core processor and 24 gbs of RAM and it takes about 20-30 minutes to compile a build. The computer I started on took about 4 hours.
Click to expand...
Click to collapse
Yikes. I have a PC I built a few years back running Windows 7 currently
-Asus P8Z77 Pro motherboard
-Intel core i5 3570k
-8GB RAM
I know I could use some more RAM but I was considering getting an SSD first. I have an ancient HDD in there now. Not sure on the exact speed but it's slow

If I was you I'd start with kernel compiling before you get into rom developing. That's what I'm doing anyway, seems like getting a rom to compile is more involving.
You would need to read up on 'git' (it's a version control program) learn some C language and also read up on another program called 'make' what it does and how it does it.
Learn about 'toolchains' how they do and which one to use. I think you can get latest toolchains by downloading android-ndk (it should be one of the folders in the zip file).
With that said you need Linux and depending on the distro you use (Ubuntu,Fedora etc) you would need to download extra packages for development and that you would have to google it to find out which ones. Also you would need to know how to navigate within Linux, use that distro's programs or tools (although 95% are the same across all distros) and all of it using only the terminal.
Google is your friend. I know it is mine. Good luck.

Related

Learning to Develop on Android

So I've been palying around with the Android SDK. I've done a bit of developing before, but never in Java. The Android APIs are pretty well documented, but I'm missing the basics of Java programming (data types, declaring variables and constants, file operations, etc.).
Does anyone have any suggested references? I've been digging some myself but it's slow going.
If you haven't already, check out http://www.helloandroid.com , http://www.anddev.org , and look for O'Reilly books on Java or skip the first five chapters of "Java for Dummies."
Both of those are really focused on Android specifically. Anddev.org is really for developers while HelloAndroid.com is more of a blog and not much technical info.
Here's the best site I was able to find about the Java basics.
http://en.wikibooks.org/wiki/Java_Programming/Overview
After that it just learning the APIs, and I think Anddev is really going to be the site to watch on that.
I thought I'd share in case there are other aspirng developers watching.
Developing Thread
I didn't know where to add this, but if you need to move it to the right thread please do.
I want to start developing, but I don't know any Java. I'm sure that you guys probably know some books that I can pick up to start learning. Actually any advice or resources would be great since.
Ever since i got the G1 and seeing everybody speaking code it realy started to interest me. So any help would be greatly appreciated.
Thank you
I heard the dummy books aren't that good to start off with, but thanks I'll still look at it.
Bump,
Come on people i know you have some ideas, so i can learn java or anything to develop for Android.
Im also thinkin about starting or trying to develop for Android, like how would I start off makin a custom rom build?
Come on guys
See here
Christopher3712 said:
Come on guys
See here
Click to expand...
Click to collapse
that would have worked great if you spelled develop right LOL
The thing with programming textbooks is no one can ever agree on what book is "best". Some people like books that are basically just giant lists of functions and their syntaxes, some people like books with a lot of examples, some people like books that primarily explain the most basic functions in plain English. Some folks don't like to use books at all and learn programming purely from studying others' source code.
A lot of the Java-specific books written in the past decade are written without requiring pre-existing knowledge of C++, which would be good if you have never programmed in any language before. I think the "Headfirst Java" volume is supposed to be well-regarded, but I can't say that from personal experience.
Of course, you could always just find your local community college/adult school/vocational center and sign up for Java classes. Some community colleges might place Java far down in the CS track and make you take prerequisite courses. Depending on how the course is set up, what text it uses, and how much ground it intends to cover, it may or may not have prerequisites.
Good luck
neoobs said:
that would have worked great if you spelled develop right LOL
Click to expand...
Click to collapse
lol, i'm just all over the place today! no matter, i made my point
Christopher3712 said:
lol, i'm just all over the place today! no matter, i made my point
Click to expand...
Click to collapse
I wasnt referring to apps, but thanks?
Christopher3712 said:
Come on guys
See here
Click to expand...
Click to collapse
OMG hahahahaha i love it!
Learning to Develope on Android
I want to learn how to develop apks, use the SDK to its fall extent. I put Debian on my phone and windows x , made a couple of my own themes. However, i want to do more i just don't how the knowledge to do so. i tried to read on how to use java, c++, c.net, etc but I'm just not picking it up all to well. I just installed Ubuntu on my computer but my knowledge of Linux is very little. I'm welling to put the time and effort into learning how do these thing but I'm getting no where. Watching people like JK come out with roms just makes me want to do the same. i also just updated to the new SDK but for some reason it won't work (haven't gone around to find out why thou). Can anyone help me out, maybe point to toward some good sources, books, or whatever. i love messing with me G1 i just want to take it to the next level. i finish school on the 20th of this month and i have till July 15th of free time ( i leave for Basic Training). so i would like to get started between these times.
If a similar thread was already made i'm very sorry i searched like crazy to find one but had no luck, so please don't get made if there is one just point me to it.
THANK YOU
www.android.com
find source code to play with and read, read, read!
dead2hill said:
www.android.com
find source code to play with and read, read, read!
Click to expand...
Click to collapse
I have read so much my head could explode, but i think I'm reading from the wrong sources or just not getting it at all. I'm reading some books i got from friends with Master Degrees in this stuff and they are just confusing me.
The major problem is I'm a fantastic hands on learner but i have no one with the spare time to help on any of these. I've been taking the Cisco Academy Online and didn't get any of it until i had someone help with a hands on learning and it all just flowed right into me easily now i'm close to getting my CCNA.
But i'll keep reading till i get it, some day
fankly i would say if you wanna make apps then read a buch of tutorials, stare ata lot a source code. and create a few simple things first. i have not bothered with any of the sample's with the SDK because i just don't like them. i do however read lots of code daily and am currently trying to find the best way to get my app running. i am one of those people that if handeed source code i could tell you what it does and when, but if told to write a program that does something it will take ages for me to figure out. even with a year of both java and VB .net under the belt i still don't know much since those classes where a long time ago. read lots of code and you could probably benefit from having a java book around too
I found the sample code and tutorials shipped with the SDK very educational, and would recommend the soon-to-be Android developer to plow thru them. They give you (at least they gave me!) a basic understanding of how Android apps are supposed to work.
If you're not used to general Java development at all, I recommend starting out with a beginners book on Java development first.
/Mats
@hellsonlyangel - I have the same desire to learn how application development as you, particularly Android development. I've done the same as you over the years, reading tons of books and online tutorials on programming, but learning very little. I am taking a very general, but comprehensive, scripting course right now as a part of my Network Admin degree program, and I fell that I understand more after 2 weeks in this course than I did from all of my self study attempts. Sometimes, there's just no substitute to structured learning programs. The ISBN for the book that my course is using is 1418836338. It can be had on the cheap, used for around $8, just in case you want to check it out. Good luck.
hellsonlyangel said:
I want to learn how to develop apks, use the SDK to its fall extent. I put Debian on my phone and windows x , made a couple of my own themes. However, i want to do more i just don't how the knowledge to do so. i tried to read on how to use java, c++, c.net, etc but I'm just not picking it up all to well. I just installed Ubuntu on my computer but my knowledge of Linux is very little. I'm welling to put the time and effort into learning how do these thing but I'm getting no where. Watching people like JK come out with roms just makes me want to do the same. i also just updated to the new SDK but for some reason it won't work (haven't gone around to find out why thou). Can anyone help me out, maybe point to toward some good sources, books, or whatever. i love messing with me G1 i just want to take it to the next level. i finish school on the 20th of this month and i have till July 15th of free time ( i leave for Basic Training). so i would like to get started between these times.
If a similar thread was already made i'm very sorry i searched like crazy to find one but had no luck, so please don't get made if there is one just point me to it.
THANK YOU
Click to expand...
Click to collapse
So the best way I found to learn this is through trial and error. I will write code for a simple program, for instance a clock app. I will work on it until it does what I want it to then I will trash the code and build it again using what I just learned. It's just a lot of practice and don't get too deep until you have a full grasp of the concepts behind programming. You'll just get stuck and frustrated.

[Q] Porting the Honeycomb sdk - am i on the right track?

I understand that the sdk is nowhere near full featured, but now there are system dumps of the xoom, maybe helpful, right?
Well, i have never ported nor built a ROM before (done some theming and have no problem learning code). I came across these 2 port how-tos:
http://forum.xda-developers.com/showpost.php?p=11546129&postcount=76
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
Is that all i really need to get HC to boot? The instructions seem extensive but not impossible or difficult.
Has anyone attempted this or gotten HC to boot on the g-tablet? I'm willing to take a crack at it if a dev could tell me whether i'm on the right track with the tutorials or do i need more knowledge.
When it comes to ROM building/porting, i gotta start somewhere. I've been around these forums for years and its about time I attempt to return the favor (hopefully without bricking my device lol)
Thanks in advance.
If this post needs to be moved, i'm sorry mods, but i figured this is strictly a development question.
Feel free to attempt it. There are people working on it and have come to the conclusion that source is needed plus a couple files from nvidia.
IMO porting the sdk is a complete waste of time tho. You would be much better starting off with a rom that will compile like froyo rather than starting with something that doesnt work yet
thebadfrog said:
Feel free to attempt it. There are people working on it and have come to the conclusion that source is needed plus a couple files from nvidia.
IMO porting the sdk is a complete waste of time tho. You would be much better starting off with a rom that will compile like froyo rather than starting with something that doesnt work yet
Click to expand...
Click to collapse
thanks for the insight. You're right, maybe froyo would be a good place to start so i could get used to the process on something that will compile. I'll probably give it shot in the next couple of days.
jump on the irc channel. freenode channel #tegratab. Lots of help and a willingness to help those that want to learn. I've compiled cm7 several times myself. Not my cup of tea but it was interesting.

YANPAT (Yet Another Noob Programming for Android Thread)

Good afternoon,
I want to start learning programming for Android, as I am sure many before me have said. And as the title very well expresses, I am completely virginal in relation to programming. OK, some years ago I punched some Delphi lines, but what I learned about it can be amounted to zero
In order to commence the task, I count with a netbook, running Ubuntu 11.04, an Android phone (Xperia Play) and an Android tablet (Advent Vega), two "starting in Android" books, HTTrack in order to save websites for offline reading, a vacant summer, and the enthusiasm to learn something new. I don't have a specific goal in mind (is that a problem? Should I aim for something concrete to do as well?) but I think that, if I win certain knowledge, I will be able to create a useful app to share here.
The reason why I've opened this thread is because it should serve as a log of what I am doing concerning this endeavor, and maybe spark some support, some naysaying, some interesting discussions and some natter. At any rate, I hope to be able to contribute something good!
I am interested also. I was going to program for the iOS but can't bring myself to buy a MAC.
I have a lot of VB 6, VB.NET and Java - JSP development experience. My 10 year old daughter is a big gamer and wants to make games when she is older. I want to get her to help me make a small game so she can see what is involved in programming.
I still need to search for resources but if anyone has any good starter tutorials that would be great.
Sorry not trying to hijack your thread Logseman. Just don’t want to make more threads on the same topic.
Thanks
It's cool, in fact it'd be great if other people "out themselves" as potential programmers. It'd be a bit like a blog then, with the whole commenters sharing experiences . From what I've read your Java experience should make programming in Android quite easy, as the OS itself seems to be. I'm going to fire up my netbook and start the whole deployment. It can take the whole night easily...
After a whole night of downloads, I have deployed the SDK and eclipse on my netbook. They should make it more amenable, IMO, not only in this case but in installations in general. Installations are boring, as are videogame loading screens, but many of the latter feature something to make it worth your while.
I recently started android developing too (im 14 ) but since i was teaching myself it was hard to find a good book, but hello android by ed burnette easily teaches you how to make anything from 2D graphics to web views and 3D games. Tell me if you need a link, hope this helps
is that possible learn android programing without know any programing language before ?
kancil168 said:
is that possible learn android programing without know any programing language before ?
Click to expand...
Click to collapse
Sure you can. At the end of the day you have to start somewhere. Why not Android ?
I have an EEPC netbook with Ubuntu Linux also. I think I will pull it out and see what I can do with it.
Does anyone think it would be good for this or should I use my HP windows laptop?
I hope we can get some feedback from some experienced Android Devs.
Well, I am happy to see people sparked by the same idea! I hope we all get to do something worthwhile!
Ncaissie, I'd recommend the Linux netbook. It's more portable, which is particularly important for your assistant if she wants to handle part of the process and I have to say, after instaling many Linux distros, I find Ubuntu 11.04 a perfectly stable, quick and efficient OS, much more than Windows or other Linux distros. I am in fact pleasantly surprised as I was unconvinced by Unity in 10.10. Aside of that, since you're programming in Android, which is a mixture of Java and Linux, it reduces the confusion if you work with a Linux host as well, in my opinion.
About the learning process, I've been reading a bit about Activities and Services and Android building blocks. I've decided on my first milestone: a "Hello XDA" app. If time allows, I will have it done before this weekend. If I can't post it after this weekend, I'll stall the project as it would be clear I am not focused enough.
14yrolddeveloper said:
I recently started android developing too (im 14 ) but since i was teaching myself it was hard to find a good book, but hello android by ed burnette easily teaches you how to make anything from 2D graphics to web views and 3D games. Tell me if you need a link, hope this helps
Click to expand...
Click to collapse
have read good reviews for this book but I decided that I would learn Java before android since I'm planning on taking computer science anyway.
Sent from my SGH-T959 using XDA App
I was set to buy a cheapo Android phone as a development device. Turns out I made the worst choice: the Huawei U8110 Selina I chose seems to have issues about being recognised by ADB. Had I known this, I'd have taken some other one...
Fate conspires to keep me away from development Now my Xperia Play is not mounting the SDCards I feed it. I need to reflash it with FlashTool, but since I only had Linux installed on my computer and Flashtool requires Windows, I'm having to set up a dual boot environment, which implies wiping Linux, installing Windows and setting up two partitions, and then installing Linux again. Seriously, it's crap.
I really like this post,good luck with it.
Only one thing- I think it's important that you'd come with an idea for an app,rather than learning Android in general.
It will keep you motivated to move on and progress.
I've recently started developing for android too. While they get mildly bashed sometimes I've found that the apress books are pretty good. "Learn java for android development" by jeff friesen is long and very technical, and also requires that you be paying attention, but gets a pretty decent amount of java floating around inside your head before you even have to open up eclipse.
Honestly though I found it easier to work on a project and when I needed something that I didnt know to search around and find code snippets or dig through my books until I find the right answer and then move on to the next problem.
Good Luck
Sent from my SCH-I500 using XDA Premium App
tofira said:
I really like this post,good luck with it.
Only one thing- I think it's important that you'd come with an idea for an app,rather than learning Android in general.
It will keep you motivated to move on and progress.
Click to expand...
Click to collapse
I do have an idea in mind, and it is related with the security pattern grid. Is that part of Android opensourced?
Enviado desde mi VegaComb usando Tapatalk
I wasn't able to pick up the pace this weekend But my goal is clear for now. I'm up for a Hello XDA app.
Well, here comes my very first apk... plus source (complying with XDA's rules ) I managed to screw some things because I typed the code incorrectly. Eclipse moaned in two lines until I discovered two syntax mistakes. Just therefore, because I saw them, I think I did the proper thing in typing this example code even if I had it in front of me. I will try not to copy-paste code if I can avoid it.
I've installed HelloXDA in my XPlay and it works as intended, and per the source you can see there's no malware in the app. And I know that I'm making a bit of a fuss about a stupid HelloWorld app, but hey, it's MY HelloWorld app, I coded it
I like this thread. I'm also going into android programmins as a noob still in highschool. I've got a question: I am looking into creating a home screen replacement app, so what do you reccomend me to do: Learn java first or just read through the sections of the android books I've purchased that talk about homescreens?
Sent from my DROID2 GLOBAL using Tapatalk
Start with something smaller than a homescreen. Mess around with some tutorials.
roblikeschocolatecake said:
I like this thread. I'm also going into android programmins as a noob still in highschool. I've got a question: I am looking into creating a home screen replacement app, so what do you reccomend me to do: Learn java first or just read through the sections of the android books I've purchased that talk about homescreens?
Sent from my DROID2 GLOBAL using Tapatalk
Click to expand...
Click to collapse
what book is that?
Sent from my SGH-T959 using XDA App

Making Roms....

This maybe premature but I figured I would throw it out there; is there any devs who could tell me about the skill level or difficulty level of making new roms or tweaking existing roms? I'm learning about java programming and using j creator and eclipse. I'm still new but I'm a fast learner. I want to help out the charge community by keeping an active dev. I'm still a time away from that but want more insight..... Please no sarcastic remarks.... Thanks.
Sent from my SCH-I510 using XDA App
I'm attempting to start teaching myself this as well. The advice I've gotten is to start ofs theming. That way you can break open the apks and see what's inside, get a feel for how to change things and reassemble packages without doing any major work, and then expand from there. I'm in the process of changing jobs and cities, but I'm going to start playing around with things after I get settled.
a lot depends on what you want to do
developing for oem skin (touchwiz roms in this case) is a lot different than aosp
aosp requires a lot of java knowledge, and depending on the phone can be somewhat easy (nexus phones source will boot without changes) to nearly impossible (this phone)
touchwiz roms require some basic tools (7zip, smali/backsmali, apktool, rom kitchens or terminal knowledge) as well as some smali knowledge and countless hours of just figuring stuff out
many of us got our start as themers, from which you (over time) gain knowledge on rom layouts, where things are located, xml/smali editing, making update.zips and updater-scripts, and the like
you dont *need* to necessarily use linux to work on tw roms, but it certainly helps imo...although most of the tools out there work in windows too
my suggestion?: download a stock rom and download a heavily modded one of the same build (infiniti/gummycharged) and compare them with kdiff and decompile the apks to get an idea of what was changed
its a good starting point
Sweet, thanks for the advice. I am learning java pretty quick but realistically it would probably be a year before I'm proficient. I also just added computer programming as a minor. I would like another phone, the nexus obviously, but I need to chill on buying phones. I love aosp- if that was possible that would be great, but getting started anywhere is good. Thanks for your help fellas.... I'll keep you all posted here on my progress...
I know that the java language will help-but comparing will help me get acquainted with android. So far I've learned everything from forums so this is a new direction...
Sent from my SCH-I510 using XDA App
For those following who may want this information. I had a response from imnuts in RootzWiki where I posted this same question. Here's what he said as well. He complemented the answers already given- I also followed up on a list of software to help get started.
http://rootzwiki.com/topic/11184-new-roms/
Thx for starting up this thread. I'm actually lookin into rom dev as well and this thread has some great starting blocks in it +1 for u dude

What's The Best Way to Learn Android.

I really want to learn how Android works. I want to be able to build Android from source, and compile Roms. The goodies. But anytime I try, it's end up horribly. I just want to know where to start! Should I make a stock based Rom, and learn how to tweak it out? Should I buy a certain book, or read some threads! I don't know Xo I really want to become a Dev. Android is my life, and I want to be able to do what Strapped, XMC, and Tbalden do. Any tips are good tips.
I sure do wish you all the luck in the world Agent. And you certainly want to fashion yourself after three mighty fine developers too. I've had some of those same desires myself after seeing what someone that knows their stuff can do. I had so much trouble with HS Spanish and a few AutoCad Lisp routines that I can't even imagine biting off C++ or some of the other programming languages!
My youngest son though.....now that's a completely different story. :good:
WeekendsR2Short said:
I sure do wish you all the luck in the world Agent. And you certainly want to fashion yourself after three mighty fine developers too. I've had some of those same desires myself after seeing what someone that knows their stuff can do. I had so much trouble with HS Spanish and a few AutoCad Lisp routines that I can't even imagine biting off C++ or some of the other programming languages!
My youngest son though.....now that's a completely different story. :good:
Click to expand...
Click to collapse
I wanna learn while I'm still young, I'm out of school for the time being. I really want to take advantage of these couple Months before life is all about business, and how to properly Manage/Own a T-Mobile.
Sent from my myTouch_4G_Slide using Tapatalk 2
NOW is the time my friend before life gets in the way of your youth and ambitions. It WILL distract you and before you know it spare time will seem like it never comes often enough. I admire ALL of you that persue what interests you and learn while that mind is still fresh. KWIM?
WeekendsR2Short said:
NOW is the time my friend before life gets in the way of your youth and ambitions. It WILL distract you and before you know it spare time will seem like it never comes often enough. I admire ALL of you that persue what interests you and learn while that mind is still fresh. KWIM?
Click to expand...
Click to collapse
Hell Yeah, I'm considering taking classes at the local community college for Java. Apparently it's useful for learning Android. I go to a strictly business college. So I can't learn anything related to Android.
Sent from my myTouch_4G_Slide using Tapatalk 2
OK, so I have an Idea. I want to do what CM said, and learn the basic. I'm going to use Undeads Sense 3.0 Port as a base, and theme it to Sense 4.0. Remove the Bulletproof settings, and push over another tweak app. I want to make it as fast as possible, and have great battery. I always felt Sense 3.0 was the smoothest Sense rom we ever got. Zero Hickups, and No Lag. I'm going to at least do it on a personal level. Try to get a hold of Undead (he's IP Banned on XDA & Rootz), but it may be hard. Maybe even try and get the Amaze Camera Mod working. Just simple, basic things. Once I get used to the waters, I'll try something bigger. Like Paranoid Android.
I just found an Interesting guide about porting any Sense rom, to any Sense Phone. Pssshh, could you image Sense 2.1 on our phone. That would be sweet. The guide is boosted to be made for the most simplest of minds. So I feel I can take extreme advantage of it.
Sent from my myTouch_4G_Slide using Tapatalk 2
Keep on plugging - I admire your determination. And please keep letting us know how you're getting on - the start of a journey.
Sent from my myTouch_4G_Slide using xda premium
Alright agent since I can't quote your last post, I was on the inc2 forums and they have a wifi issue that's solved by turning the always on data off
Sent from my HTC MyTouch 4G Slide running MikXE
Where is Blue when you need him?
::Respect::
Hey guys!
I would say that making a post or thread like this is really the first step - knowledge can be gained, but the passion, that drive to work through all the tedious testing, retesting, writing and re-writing is not something that can be taught.
So start small.
We all have grand designs, plans and ideas - heck there's so much this device is capable of that I want it to do, starting everything at once just leads to unfinished projects and fragmented learning.
If you bring that excitement, that hunger for knowledge, then the rest falls into place but it takes time.
"I never let school interfere with my education"
...is such a fantastic quote. It's up to you to choose to take the time to sit down and read a technical document, white-paper or tutorial while your friends are out wasting time.
Definitely make time to walk away and socialize with real people, but remember that learning how to do this stuff takes a lot of time, effort and tons of frustration and dead ends.
I've been playing with software code for near 20 years now, and I still consider myself not much past amatuer status.
...and status means literally nothing. The only two things that matter are what you know, and what you don't.
So don't lie to yourself. Don't pretend to know something just because you are afraid of what people will think if they find out you don't. It's okay to say "I don't know"
In fact, it's essential to be able to say that not only to yourself, but to be able to admit that to the community, your friends, whomever.
If you don't, then you have no place to start learning. Pretending to know something just prevents you from actually being able to start learning how to do it.
So, after you are comfortable with a truthful assessment of what you can and can't do, the next step is to figure out how to go about learning what you don't know.
The biggest mistake everyone makes is taking on a huge project because that's what the end goal is.
"A journey of a thousand miles begins with a single step"
...another good one!
I'm sure we've all heard it before, but haven't pondered it so deeply. Another way to say it might be:
"The making of an awesome ROM begins with changing a single icon"
Break down the project you want to do into the smallest possible steps.
Can you decompile an app?
If not, definitely learn how to do that.
Once you have it decompiled, browse all the code. Especially what you don't understand or makes no sense. Don't try to understand it all, just absorb it and get to know what it looks like.
Now do that with every app on your device (play with all the stock apps first - they all came from the same place and reflect a certain coding style)
Now that you've browsed through all the code of all your stock apps, do it again. ...and again ...and again ... and again.
Sick of it yet? It's been a few weeks now and you've learned nothing you can directly use.
This part always separates the people serious about doing it from the ones turned off by all the tedious work with nothing concrete to show for it.
I mean, you've spent a couple of weeks just looking at code with no idea what you are looking at.
What you don't immediately notice is that you start to get a sense of the pattern, the layout, and what things are the same, similar, and completely different.
Now you start looking at tutorials you've read in the past and go 'wow, I know kinda what that means, I saw something like that in the code here!'
Ah - now it begins!
When it gets to be too much, do something you can handle from start to finish.
Change an icon, tweak the color of a font, something simple, but that you can feel the pride of success and accomplishment in.
Can you compile an app?
Decompile a working app - change nothing - then recompile it. Install it on your device.
Does it still work? Probably not.
Why?
Ah - the question that drives us.
9 times out of 10 someone releasing something cool is not because they wanted to make it, but because they wanted to learn how to make it.
One thing people forget all the time is that the stock software on the device is built by teams of people with delegated tasks and diverse talents that TOGETHER contribute to the success of the final product.
You? You're alone. You have to do it all. Graphics, sound, coding, planning, research, testing - you are taking a project that requires untold hours of dedication from a team of people ... Maybe just on the graphics alone. A whole other team is working on sound, another team is working on code, there is management to structure goals and delegate tasks.
Managers who may have no technical ability but a good handle on how to keep everyone moving and workikng cohesively. Other management that is keeping the teams on point with each other.
...and it still takes them lots of time to get things done. Not because it's some bloated over-staffed group with too much red tape (though that does happen) - but more because there is simply so much to do.
The next time I spend 40+ hours behind the keyboard with maybe not even a bathroom break won't be the first nor the last. I've sat down to do something on Friday and had someone stop by on Sunday night and I'm still in my work clothes from my day shift Friday, didn't even realize Saturday came and gone.
Does it all require that level of dedication - no, but, you get lost in it and that can happen. Never force myself to do it, just get caught up in learning it all.
Don't expect too much from yourself. You absolutely have the community behind you and so much knowledge here, tons of people willing to help, but in the end it's up to you.
You to do graphics.
You to do sound.
You to write the code.
You to compile it all.
You to figure out why it doesn't work ( and it rarely does).
For every success, you have many, many failures to get there. Especially starting out. Expect to get it wrong. Expect it to be broke just because you touched it. If it isn't, honestly, you're doing it wrong.
We learn so much less from success then we do from failure. If you aren't failing you aren't learning. If it always works the first time, then you are just doing the same tired stuff you always have.
You wanna learn how to code for Android?
Read everything you can, absorb the forums, go download source and browse it. Decompile all your apps and browse them. Start looking up what you don't know.
For every one thing you do learn, you realize there are ten new things you never knew you didn't know.
Now go learn about them, because each one of them will lead you to something else, or many something elses that you didn't even realize you didn't know.
...and did I mention put lots of time into ignoring what you want to do, and learning how to do it one tiny little piece ata time?
Patience is most important.
The patience to only change one variable, recompile, test, test, and test some more. Then, when you are satisfied with the result of one minor little change, make one more tiny change and repeat the process.
Learn the scientific method, and follow it rigorously. If you don't, might as well not bother getting into this stuff because all you will do is get frustrated.
You have to work slowly, patiently, one small step at a time. Try to predict the result of the tiny change you made, and then see if it was what you thought or a surprise. Why was it a surprise?
The question of why is the only thing that matters. Every one of those you answer is one more weapon at your disposal for the battle, one more tool in your box, one more pencil on your desk.
If you have little to no coding experience and expect to sit down and whip out a ROM, you are only setting yourself up for failure. But one day you can, with hard work, lots and lots of time, uncountable failures and hours of frustration and coding something just to have it not even compile, let alone work.
Have you taken the time to map the device?
When you got it stock, you should have put a file browser on it ( root explorer - just buy it already, you need it) and browsed the entire device.
Take a notebook and write out a full device tree on paper, everything you can see. Every folder, every file or folder in them, sizes, permissions, any detail you can see.
Why? Because it already works. You are lookoing at how a working ROM is structured.
I mean, how can you make something if you don't know what it is, looks like, how it acts?
Learned ADB and fastboot yet? Why not? You wonNt be successful if you don't.
This is a pretty long list already - and we've barely scratched the surface. A ROM is not a Sunday afternoon project - a ROM is a dedicated months and months long never ending project that eats up more time then you have every day.
So I'll leave you with one last thing before I go make a thread that people aren't gonna want to see - but I'm not leaving you guys, far from it.
Learn algebra, learn it well, or don't bother attempting to write code. (Or work in any construction trades/build anything professionally.)
Algebra is the single most important learned skill one can pick up across just about anything you can ever do with your life, and absolutely vital in computing.
There really is no "go here, learn this" method - you need to aquire the skills necessary to succeed in your project.
So go break something (minor - don't brick your phone) and then learn how to fix it. ...and pay attention in math class.
Sent from a digital distance.
Blue6IX said:
Huge Epic Post.
Click to expand...
Click to collapse
It's like your a warlock and when I typed your name, POOF! :victory:
This post covers every aspect you could ask for, I'm sure Agent isn't the only one who will gain knowledge from this post, thanks Blue!:highfive:
CoNsPiRiSiZe said:
It's like your a warlock and when I typed your name, POOF! :victory:
This post covers every aspect you could ask for, I'm sure Agent isn't the only one who will gain knowledge from this post, thanks Blue!:highfive:
Click to expand...
Click to collapse
Hell. Yeah. I'm just going to start theming. I want to make the ICS messaging Icon blue, and a blacked out UI.
Sent from my HTC MyTouch 4G Slide using Tapatalk 2
I just got ubuntu on my computer, spent an hour trying to install java lol. Now to figure out why adb doesn't work the way it does in windows haha.
edit: finally got adb working. i have no idea what i did, but after installing a bunch of different libs, time to start exploring haha =D
ekoee said:
I just got ubuntu on my computer, spent an hour trying to install java lol. Now to figure out why adb doesn't work the way it does in windows haha.
edit: finally got adb working. i have no idea what i did, but after installing a bunch of different libs, time to start exploring haha =D
Click to expand...
Click to collapse
Java was a b***h when I installed an unsupported version for compiling. This is helpful though it will guide you through installing and it can even switch java versions if you don't like your current one
AgentCherryColla said:
Hell. Yeah. I'm just going to start theming. I want to make the ICS messaging Icon blue, and a blacked out UI.
Sent from my HTC MyTouch 4G Slide using Tapatalk 2
Click to expand...
Click to collapse
I saw this done on AOKP website as a mod, i think this plus built in messaging pop up like an MIUI thing would b beast
::Respect::
ekoee said:
I just got ubuntu on my computer, spent an hour trying to install java lol. Now to figure out why adb doesn't work the way it does in windows haha.
edit: finally got adb working. i have no idea what i did, but after installing a bunch of different libs, time to start exploring haha =D
Click to expand...
Click to collapse
Man, i'll tell ya - if you had to pick the one thing someone would do to take a step into learning to bend android to your will, installing linux is the best reply possible.
Windows is great to get your feet wet, and can manage some things more easily - frilly stuff, eye candy type details.
If you want to talk about experiencing the thrilling joys of success all that invested effort brings - doing so on a linux box is so much more rewarding then on a windows box.
Definitely see about getting a second monitor if you can swing it. Working with two display panels more then doubles your productivity. You can have a tutorial on one screen and be following along on the other.
That aside, one reason the linux box is so much more rewarding is because of the range of things you can mess with.
You can't work with a kernel in windows. Already right there the most important part of the ROM is off limits to you in a windows box. (as I sit here typing this on windows - mind you.)
Another reason linux is so sweet to work on for coding android is that they speak the same language. Writing code is quicker and easier, connecting the device happens more seamlessly and swiftly.
All these little things add up to save you time.
...and time is your greatest hindrance. It slips by all too quickly and then you are obligated to walk away and do something else. So being able to squeeze more work into less time is the consistent refinement of what you know.
Rarely do you learn how to do something the most efficient way on your own, and really that is the heart of open source. You can see how someone else did something, and learn from how they got there.
I've communicated with people I couldn't speak the language of through code, sending changes back and forth without any written correspondence.
To be able to explain the various joys and experiences learning computer coding has brought me would be impossible. There is so much intangible awesomeness that comes from investing time into learning all of this.
Especially since cell phones are so popular and mobile computing is so easy any more. Being able to bend the device in your hand precisely to your will is ever becoming a more important skill to have.
For those wanting to invest that time into what brings us all here collectively, the rewards really are beyond what you would think starting out.
As much as I wanna delv into this as ACC, I simply have no time haha. However, learning this now will probably help me in the future, so why not.
At the very least I'll finally know what you guys are talking about in the dev section lol.
Blue6IX said:
Another reason linux is so sweet to work on for coding android is that they speak the same language. Writing code is quicker and easier, connecting the device happens more seamlessly and swiftly.
Click to expand...
Click to collapse
This. Install Linux, learn to love it, and learn to customize it. A big part of setting linux up the way you want involves working in a command line, troubleshooting when errors come up, building, and compiling. The time you spend troubleshooting and customizing everything on your linux box will familiarize you with all the commands, shortcuts, quirks, and understanding of why this does that in a linux environment, and will help you to no end.
I'm going to get a new Laptop before school starts up again. Then I can finally get cracking

Categories

Resources