Hey guys,
so this is applicable to all devices and its android specific therefore I think this is the best place to ask these question/s. I learned coding with Python for a few months last year and really enjoyed it. Now I am thinking since I have an android phone that is claimed by most "unbrickable" and I am probably stuck with it for another year I decided to learn android programming and contribute to this awesome community and hopefully make my phone awesome myself. Before I can do all that I have a few questions. Most of the development guides I saw after google searching, referred to how to create apps ( now I know there are guides to creating roms here). If I learn with those guides how to make apps will it be a similar process when I wan't to make custom roms? Also how to start? Start with Java SDK, with eclipse? Point to some guides plox
early thanks
There are guides for building apps... and guides for building ROMs... but AFAIK, guides for customising ROMs don't really exist... ROM customisations are generally just done following the API or using someone's work as a reference point....
craigacgomez said:
There are guides for building apps... and guides for building ROMs... but AFAIK, guides for customising ROMs don't really exist... ROM customisations are generally just done following the API or using someone's work as a reference point....
Click to expand...
Click to collapse
I think I worded that wrong. I know there are guides for building apps and building roms but I was asking If I use one of those guides to build app + learn to build app using a book or something will it help me build roms later? And for the custom rom thing, I meant like theres hellfire ics cm9 then theres eaglesblood ics cm9 for same device but by different people so I when I said custom rom I mean like my own ics cm9. but anyway thanks for your answer.
First and last bump
Making ROM's is different then making apps, while the skills you learn using Eclipse and Java JDK will only teach you Java, XML and ADB at most, when making ROM's you need to know many different things. While you can make custom ROM's with little programming experience to be a true master of making custom ROM's you need to know Java and XML, for modifying and creating your own custom apps you can include in your ROM, C and C++ for tweaking the kernel to truly optimize performance, Shell for creating scripts to automate tasks and performing other functions in your ROM, Photoshop/GIMP for image editing and creation in order to customize the look of your ROM, as well as patience to debug any problems you may run into and a couple other skills as well.
If you want to learn how to compile CM9 check out these guides:
[TUTORIAL]Setting up and compiling CM9/CM10 from source
Galaxy Nexus (GSM): Compile CyanogenMod 9 (Linux) It's for the Galaxy Nexus but it's still a very good place to start with to learn how to compile CM9 from source.
For learning basic customization of ROM's check out these great videos:
Let me know if you still have questions .
shimp208 said:
Making ROM's is different then making apps, while the skills you learn using Eclipse and Java JDK will only teach you Java, XML and ADB at most, when making ROM's you need to know many different things. While you can make custom ROM's with little programming experience to be a true master of making custom ROM's you need to know Java and XML, for modifying and creating your own custom apps you can include in your ROM, C and C++ for tweaking the kernel to truly optimize performance, Shell for creating scripts to automate tasks and performing other functions in your ROM, Photoshop/GIMP for image editing and creation in order to customize the look of your ROM, as well as patience to debug any problems you may run into and a couple other skills as well.
Okay that makes sense. So if I learn to make apps since thats what most guides are, I will learn to work with JDK and XML but creating ROMs requires much more knowledge. I am okay with just being able to compile source codes/porting roms from similar devices and what not. I am pretty decent with Photoshop so thats a win Thank you sir
Click to expand...
Click to collapse
Related
Im want to start making my own custom roms just need a jump start from people who knows how to do it, any programs out there that you can add/remove apps from original vibrant rom and creat your own rom?
i have a windows 7 64 box and ubuntu.
thank you
I have no real experience with creating a ROM, however, if you are serious about learning how to create a ROM and/or customizing the Android system, you should first and foremost go here:
http://developer.android.com/index.html
It will contain all the information and files you will need to get started. Hope this helps.
I have the SDK installed but i heard something about Android Kitchen on Ubuntu cant find anything useful on it on google.
I would start smaller by building themes or apps to get more familiar with building with android before jumping in elbows deep...
Sent from my SGH-T959 using XDA App
http://forum.xda-developers.com/showthread.php?t=667298
Good Luck
I am by no means a chef, I have simply been sourcing all of the info I can find to create my own custom ROM, during that time I have found a multitude of posts from people like myself asking for help or information on building our own android roms.
I am not going to waffle about stuff I dont know much about but simply post links for you to read and learn from for yourself, enjoy.
http://forum.xda-developers.com/showthread.php?t=906161
How to run custom roms in Android emulator written by Perceval from Hyrule, this is a cracking guide. I was very stuck with this bit until I found this.
http://developer.android.com/sdk/index.html
Get The SDK
http://source.android.com/porting/customization.html#androidThemes
A simple resource on customising Android
http://www.eclipse.org/
Eclipse Development Environment.
http://developer.android.com/sdk/eclipse-adt.html
Android Development Tools for Eclipse
http://code.google.com/p/smali/wiki/DeodexInstructions
How to Deodex a rom.
http://forum.xda-developers.com/showthread.php?t=760805
Change your LCD Density on any build, credits to jdsemler
http://forum.xda-developers.com/showthread.php?t=697938
A cracking resource found on these forums and written by Decad3nce
http://wiki.cyanogenmod.com/index.php?title=Main_Page
Cyanogenmod Wiki on Themeing HTC devices.
http://www.satyakomatineni.com/akc/display?url=displaynoteimpurl&ownerUserId=satya&reportId=3279
A fantastic resource about .apk's
http://developer.htc.com/
Guess
http://android.modaco.com/content/z...quick-guide-to-modifying-build-prop-with-adb/
Useful guide on the build.prop file.
http://elinux.org/Android_Glossary
Well..a glossary : )
http://droidpirate.com/2010/08/21/development-everything-for-making-android-themes/
A cool resource for theming.
http://forum.xda-developers.com/showthread.php?t=891604
Custom frameworks written by sopL87
http://droidpirate.com/
Get your goodies here, themes, docks, notification bars and icons.
http://www.jbthemes.com/AndroidThemeingGuide/The Ultimate Android Themeing Guide.pdf
The Ultimate Android Themeing Guide by various.
http://droidpirate.com/links/
Link to more links.
http://gitorious.org/search?q=android
Gitorious Android Search, link to several android projects.
I hope that anybody looking for info on developing there own custom ROM finds this post useful and I look forward to seeing some interesting new builds from people like myself.
Regards.
(All credits to the respective writers)
daz1uk said:
I am by no means a chef, I have simply been sourcing all of the info I can find to create my own custom ROM, during that time I have found a multitude of posts from people like myself asking for help or information on building our own android roms.
Click to expand...
Click to collapse
Good on you for putting this together!
Great work, I'm sure this will save myself and many other a lot of time
Hello XDA-Developers,
I'm 16 Years old an I'm from Germany so please excuse my Gramma mistakes etc.
After the release of Jelly Bean there ist only one thing in my Head: learn how to develop
my own custom rom based on Jelly Bean for a Device which havent got get an update
till now.
It would be nice if someone give me advice how to start developing my own Rom. It would be
nice to know how I can start developing an how I can insert WiFi or Graphic Drivers from an older
(official) Rom to my own Rom.
I'll be happy if you can give my some advice for getting started to be a real XDA-Developer.
Greetings from Germany,
Sascha
Find a book on Linux Kernel/device driver development and read it. Build your kernel, make some modifications. Find a device similar to yours and start porting. We can't give you a step by step or do stuff for you. If you have a question about a specific item, error, feature, or bug then ask about it, but we can't do much with these "how do I start developing" questions. Just read kid that's all I can say.
I highly recommend following this guide and building the "hello world" app. If it doesn't work properly the first time, start from scratch and rewrite it again and again until it works. That's what I did and it really helps you gain a basic understanding of XML and java.
http://developer.android.com/training/basics/firstapp/index.html
Check out some of the various guides on this website as well. I highly recommend reading the "introduction to edify language" which is used for coding updater scripts. I had problems at first with the updater script and I had to decompile other roms and check out their updater scripts in order to gain a proper understanding.
http://www.freeyourandroid.com/index.php
This is also a good guide to check out, it's about building your first app as well but significantly more detailed than googles guide. I haven't read the whole thing myself yet but am in the process of doing so. It's good to have an understanding of how to code apps as well since it helps you understand XML and java which is also needed for ROM development, and makes it easier in general to get a grasp of various coding languages.
http://www.vogella.com/articles/Android/article.html
Also decompile some apps/tweaks/roms for your particular device and check out the code. For example I compared the stock rom for my phone to an AOSP build of ICS just to check out the different code and study it. It's very interesting and a good way to learn. PM other devs in your devices forums if you have questions or get stuck somewhere, that's exactly what I did and the devs were very helpful.
Good luck learning and have fun!
Hello Everyone I Am New In This World And I Have Some Questions About Developing
-Which Programming language Should I Learn To Create Apps.?
-How To Create ROM?
-What About Porting Something From A Device To Another One?
-Is The SDK Of The Mobile Is Enough To Port Something From It?
-Should I Own An Old Phone For Testing?
P.S. I Have GS3
You develop for Android primary in the Java language. You may write native (i.e. compiled) code as well, but Java is recommended in most cases.
Creating custom roms is much like creating a Frankenstein Monster. Decompose your original rom, pick the pieces you like, replace the other with stuff you dig up from other places, or create yourself. Then re-pack everything in your new custom image, flashing you phone. The details about what to use to split images, flash devices etc you have to search this forum for - it'll differ from device to device.
When developing for Android you chose a minimal API level, e.g. Android 1.5. This way your app will run on all devices with at least Android version 1.5, no porting needed. Java is "write once, run many" so to say.
You can test your new apps either on you phone or in the emulator (Android Virtual Device) supplied with the SDK. If you intend to develop lots of code, a dedicated phone may be quite useful for testing, yes, but absolutely not necessary. You'll not crash your phone just because your application crashes, all apps are running in separate processes protected from each others.
You find the official tutorial at developer.android.com/training/basics/firstapp/index.html
Thanks For Your Help. Your Words Are Very Useful
THE.W!ZARD said:
Hello Everyone I Am New In This World And I Have Some Questions About Developing
-Which Programming language Should I Learn To Create Apps.?
-How To Create ROM?
-What About Porting Something From A Device To Another One?
-Is The SDK Of The Mobile Is Enough To Port Something From It?
-Should I Own An Old Phone For Testing?
P.S. I Have GS3
Click to expand...
Click to collapse
you need java to learn programming................
for basic rom making a bit of general knowledge is enought not much of programming is required........
for basic porting you can use cygwin for complex ports u need t change the framwork files which you will learn as the time passes..
sdk is required for building app and adb fastboot not for porting and other kind of stuff(related to api's)............
what do you mean by old phone.. you build mods for your phone so test it on the phone you built the mod for not old phone or something like that.........
The first thing you need to do is learn Java.
http://forum.xda-developers.com/forumdisplay.php?f=613
Hi guys,
I'm currently a university student with some decent Java skills, I want to start some android rom development mostly for the Nexus 7 2013 but I'm not sure where to start. I have googled and all I have found are guides on using kitchens, I'm looking for something more advanced, where I could learn to create a rom like SmoothRom for the Nexus 7 2012 with performance tweaks to make it super smooth and stable.
Any help would be apreciated. Sorry if there is an answer to this somewhere, like I said so far I've only found kitchens and I don't think that's the type of development I need to be doing.
Thanks
Http://source.android.com
Try building cyanogen mod first
GO TO THIS SITE
http://wiki.cyanogenmod.org/w/Devices#vendor="Google";
THIS SITE OFFERS YOU TO BUILD ROM FOR YOUR DEVICES AS WELL AS OTHER DEVICES
Thanks, will try building some source code first
Also could someone maybe provide some info on where to learn about implementing linaro and what it is? It sounds very interesting but not much info on it.