Completely new to programming of any kind.
Tech savvy, and quick learning.
I am wanting to build my own rom, with the fundimental feature being that the rom uses the SPEN functionality.
would i be better at going from source, or using a base rom?
and is this a difficult task? or something I should be able to pick up with relative ease?
B3NJ1M4N said:
Completely new to programming of any kind.
Tech savvy, and quick learning.
I am wanting to build my own rom, with the fundimental feature being that the rom uses the SPEN functionality.
would i be better at going from source, or using a base rom?
and is this a difficult task? or something I should be able to pick up with relative ease?
Click to expand...
Click to collapse
Since you want to keep SPen functionality, I think you should base your ROM on Samsung's firmware. Building a ROM from scratch (from AOSP) is quite difficult. There are plenty of How-To guides to help you add new features or remove existing features to/from your ROM. You can theme it, debloat it and customize it to your liking. The next step would be to add performance and battery life improving tweaks like making init.d scripts, patching services.jar, etc.
You won't even need a lot of stuff to get going. The necessary things you need are: Java, Notepad++, 7-zip, a basic raster graphics editor like GIMP or Pinta... and of course, plenty of free time. You can also take a look at an existing ROM's zip file to see how it was made and if the creator permits, you can also base your ROM on their ROM.
Good luck! :laugh:
Related
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.
So I'm fairly new to android having been on the iOS scene for quite a while now, and I've always jailbroke my phones to get the most out of them.
Now I've started using android, I'm interested in rooting but don't really fully understand it yet. Custom ROMs, Kernels etc etc, its a lot more in depth than jailbreaking and I was wondering if there were any threads, or sites (or anyone willing to post about it) explaining what its all about, the benefits, drawbacks, why people do it etc so I can get a good understanding about it before I start messing around.
Any help/info would be greatly appreciated.
Rooting is a way of allowing apps to get superuser privileges. Also for modifying parts of the OS that you couldn't normally access. The advantages are that you can flash custom firmware. Remove stock bloatware. Block ads. Do cwm backups. The kernel is the area between the phone os and the hardware. Different kernels tweak different settings. Which one you chose will depends on what you want to achieve. Performance battery etc. I wouldn't worry about kernels for.the moment. Rooting the SG3 currently does not change the stock kernel anyway. Look for xda member chainfire he is the man to follow. All I can suggest is read up on the forums as much as you can. Don't touch a thing until you understand the core of any instructions your attempting to.follow. Good luck
Sent from my GT-I9300 using xda premium
The main reason for jailbreaking is the ability to sideload apps (install apps that are not from the official market such as alternative keyboards, Emulators, ...) e.g. from Cydia.
Android phones already support this feature out-of-the-box, you just have to tick the corresponding box to confirm you understand the risk of possible malware when installing apps you found somewhere on the internet.
Based on this feature there exist several alternative markets, SlideMe and Amazon being the most popular.
Additionally Android allows you to modify most of the system starting from the launcher to dialer and up to low-level features such as equalizer and notification LED control by installing a corresponding app.
Root gives you access to far more low-level features such as backing up apps including their 'secret' data (Titanium Backup), getting the S3 to use mass-storage mode, remove Advertisement (AdFree), get detailled informatiaons about your phone's battery drain (BetterBatteryStats)...
Samsung ROM's have gotten better but people always want other, new or changed features or upgrades to OS-versions Samsung is not officially supporting. For instance the old Galaxy S1 never got an official upgrade to Android 4.0 but the Cyanogenmod project made it available.
Samsung-Kernels obviously do not support such features such as overclocking the CPU (which I wouldn't recommend anyway on the S3) and have good but not excellent optimizations. E.g. the sound processor can gain huge improvements by simple software optimizations (Voodoo Sound) and the phone feel much snappier with tweaked CPU scaling algorithms. Additionally custom kernels can e.g. include NTFS support which Samsung does not provide due to license and potential stability issues.
In conclusion I'd say, stay with the original ROM if there is nothing that really bothers you but I'd recommend flashing a custom rooted kernel such as Siyah as it brings direct improvements.
Thanks for the replies.... I'm trying to find as much as I can to read up on, but I'm yet to find a decent website with some info explaining everything from the start. I prefer to know exactly what everything is, what it does etc etc before I start messing around.
Anyone know anywhere I can find this info, threads containing beginners guides to rooting or something similar?
joeyh51 said:
Thanks for the replies.... I'm trying to find as much as I can to read up on, but I'm yet to find a decent website with some info explaining everything from the start. I prefer to know exactly what everything is, what it does etc etc before I start messing around.
Anyone know anywhere I can find this info, threads containing beginners guides to rooting or something similar?
Click to expand...
Click to collapse
Here is a good guide on rooting http://androidforums.com/evo-3d-all-things-root/389787-beginners-guide-rooting-android-devices.html
Google is your best friend. I am going to add a section on my website www.modmymobile.co.uk with a simple breakdown.
Have a look on YouTube there is a few step by step guides.. only downside to rooting is you will lose your warrenty
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!
Hello guys, I had an idea and wanted to discuss it with you people that you are definitely more experienced than me, I was wondering if it was possible to create a single apk which is the ROM, or this apk should include the bootanimation, and the launcher would be the apk (or rather a activity in it) ditto for SystemUI framework-res or for short, this apk should consist of the various components that make up a normal ROM, all in one file (except, I think for the folder META-INF because that is read, as far as I know, the default of any recovery, or should create a recovery made on purpose), the benefits would be many of the small size of the system, the speed, the "simplicity" of programming (think that should be programmed to a single apk with all the functions of a system and not to distribute all in many files), but then I came effettivamante doubt that this is not feasible, and so I wondered if you could do the same thing but only for apk (those contained in the app folder)
So what do you think?Is feasible?
No.
R: What do you think?
luxifr said:
No.
Click to expand...
Click to collapse
Why?
UP!! someone might be a little more precise
---blacksoul--- said:
UP!! someone might be a little more precise
Click to expand...
Click to collapse
Don't bump your own thread. Why on earth would we even want to do it? It would increase the size of the ROM, make it extremely hard to debug, and I'm not even sure how it could hypothetically work.
"Joining" all the system apps is certainly possible.
But:
-Seperate apps can be supported and updated better
-One APK with ALL THOSE THOUSENDS of Java code lines is VERY messy
-Compiling it would take long , very long - less attractive to developers
-I can think of much more, but it isn't of any use so I'll stop here.
Cy
Sent from my Galaxy Nexus running Android 4.2 JB
I'll add one other...
You'd still need an underlying file system since Android/Java are interpreted languages and require an interpreter to execute the code.
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