[Q] Aspiring Android ROM Developer: Build Apps or Hack AOSP First? - Fascinate Q&A, Help & Troubleshooting

Hey there, everyone.
I'm just looking for some advice. I've been using my Verizon Samsung Fascinate since November, and for the most part have been a very happy user. Ever since I installed a Gingerbread-based ROM, I have been extremely happy with both the device's performance and new features (nothing says cool like the Old TV Shutoff animation). Lately, I have been wanting to try my hand at modifying and packaging my own Android ROMs for the Fascinate. Obviously, I have never done something like this before, so I'm looking for some advice.
I've been programming in Java for over a year now and I'm very familiar with the language as a whole. I've used it in various programming competitions through school along with building some applications and tools for the company I'm currently interning with. Right now, I feel that I have the basic programming skills required to look through code and understand what the logic behind it is (at least I hope).
My question for you all is this: should I jump right in and start poking through the AOSP code, or would it be more beneficial for me to start off as an Android App Developer, slowly working my way into Android hacking? I have some ideas for potential apps (which I'll probably end up developing regardless, but at a later date), so if it would be more beneficial to just develop apps, I certainly have a basis for my ideas.
Any personal stories/recommendations would be excellent. Thanks in advance for any/all answers!

Related

[Q] Android Development for Operating Systems class

Hi guys,
I'm new to the forum, but I plan on developing ROMs with a few people, so I will probably frequent them soon.
In my Operating Systems class, I was asked to come up with ideas for a project. Well, since I'm just starting to build Android ROMs anyways, I was going to see if I could use this idea for class. I guess my question is, do you guys think this would be a good project to last a few weeks of the semester (at least)? If not, can you suggest ways that will make it longer or shorter? We would be building them for a Droid Incredible.
I have a general idea, and it seams that just getting an AOSP ROM up and running would be no problem at all, from what I read anyways. It seems like the tailoring or the importing of ROMs is what really takes time and effort.
Thanks in advance for the input.
It depends on the class skills. But it's really great idea to study Linux and low level Android features. uh.. I didn't have such interesting project during my university years ((
The only big issue is high initial level of knowledge. Also many peoples may quickly give up fighting with some unclear compile or deploy issues. It's not trivial to debug on such devices. They may quickly lost their interest. But overall this is great idea. Where are you teaching?
I'm not actually the professor, I'm a student at Saginaw Valley State University (Michigan). I'm the "Class Leader" so I told the professor that I would give him the list of ideas I had for projects.
If it's for a grade, it might be a good idea then. They may lose interest, but if their grades are on the line, I would hope they struggle through it. Plus, we are all in groups, and they can pick another project if they don't like this one.
Thanks for the info, Purler.
Does anyone know how different it would be to make a ROM for something that requires a mouse input, like the Raspberry Pi?

[Q] Starting Android Development with no experience in Software Programming

Hi xda-developers,
I am an Embedded developer with vastnexperience in Firmware development in C programming (for microcontrollers), pcb designing, corel draw/photoshop (intermediate level) . Now I am looking to stretch my self a lil further by trying my hands on Android Programming. I have no prior experience in Software development. It would be kind of experienced developers out here to guide me with possible approaches that I can give to Android development without a much steep learning curve. As I would be practicing android development mostly on weekends (as of now), I would like to get started with things that I can relate with already. That way it would keep me going. Help me out with:
1. Possible applications I should work on. Something that can also be helpful for the community of users and developers.
2. Starting point and other obstacles I would come across while development.
3. Application ideas.
P.S: I also have a rPi lying around catching dust.
Some of the features still cant use on this. Libraries could be use.
Start with "Hello World"
Regardless of your software development capabilities you should always just mess around with the tools that are available and see what you like and what you don't like.
Try every tool you can, when you feel like you know those inside out have a go at extending the functionality of one of those.
For me when it comes to learning a new technology like Android SDK just playing with it inspires me to want to create real and practical applications.
Goodluck and have fun.
PS: I would stick around and see what happens with the release of Qt 5.2 Hint hint...
Yea. Android like embedded requires you to set up a Dev environment so get that up first. ROM building vs app developing are hugely different. Decide which and download the tools. (May require you to install a whole new os and tweak it heavily. Last time I ventured to compile a ROM it was a day to set up my Linux distro of choice)
And like what was said before start with hello world and move up in small bites. You will gain better understanding of how things work and will be less frustrated. Don't expect a full featured app to appear. Once you play around with all the little components eventually you will see a big picture and the building blocks for the "big app" will be there ready to use.
Sent from my One using xda app-developers app

[Q] Designing a Custom Android Device

I'm looking into building a custom android device to be embedded in a project I'm working on. I won't need GSM/cell service, so this would be more of a 'tablet' with wifi that's the size of a phone. The first version of this project used some lower level embedded controllers, but for a better user experience (capacitive touch screen, full featured app, etc), I'm looking into using an embedded android device and having a friend (who told me to post here about this) write an app to run on it for me. This project is starting to scale, so buying a cheap tablet and tearing it apart isn't really a good option; I'll need to build something from the ground up. My problem is that I'm more of a microprocessors guy, so I don't really know where to start with this kind of hardware.
I found this thread which was a good start, but the info is like 3 years old now.
Has anyone tried to do something like this? Should I be trying to find a manufacturer who already does this type of thing to work with? If so, how do I find someone like that? If I am going to do the design myself, what kind of processors can run an Android OS? Where's a good place for learning that type of info? Are there any reference designs out there I can use to get started? Is running Android on RaspberryPi a good starting spot, or is that simply not scalable?
Thanks for the help, I hope I'm in the right spot. Apologies if not!

[Q] Old developer needs serious learning advice

Hello All,
Will try and keep this short: Am an old time developer, since 1979. I was self-taught, as a kid, never one class. The weakness there is that I never learned most of the terms.
So when learning new languages, it was harder since I didn’t have a reference point. i.e. may no longer be used, but I created “linked lists”, just never knew they were called that.
Anyway, I never got past using C and WinSDK. And I learned just enough Perl on the fly as I needed it to create some backend parts to some of my apps.
I am desperate to start a new project, preferring to do it on Android first. As hard as I looked for LOCAL developers with serious programming experience, and preferably some Voice SDK experience I failed. I tried Craigslist and Meet Up. Nothing.
So I need to do this MYSELF. Or at least start it and come up with the alpha-prototype on my own.
After all that explaining, what’s the BEST (and least expensive) means I can purchase to teach myself programming an Android device?
I always loved forums, we’re talking back when NEWSGROUPS were the way to go. Because out there was always someone who knew…and was willing to share their point of view.
Currently using a PC-Windows environment, so any IDEs in that arena would be preferred.
So any help, any direction would be so appreciated.
Many thanks ahead all,
Sergio
I would definitely recommend grabbing Android studio and looking through Androids developer docs. If you're familiar with java all you really need to know is the Android framework and how everything works together (lifecycles, passing data around, working with various sensors/hardware, etc).
Android studio is free so no cost to you there. If you're not familiar with java there are tons of good resources online
Sent from my XT1254
Hi!
I agree with @blackangus, i started programming for android with eclipse at that time and some tutorials i found online.
In my experience is a little bit frustrating at the beginning because is has some hard to understand concepts if you come from low level languages.
you can try to follow a basic lessons to start understanding the different parts like,
1) Views ( it cost me pretty much to understand how views and activities work)
2) Networking and async threads (restfull services calls and json manipulation)
3) Play services (push notifications, account registration and such)
this was the approach i took and it helped me a lot, i hope my humble guide helps you too.
5 years ago I got my intro to Android via Android App Inventor: http://appinventor.mit.edu/explore/
Good intro to Android concepts but drawing pictures instead of writing code still can't produce professional apps.
So I dove into learning Android Java. Nice...
My background was in C ; I never quite figured out C++ and have heard since that Java is superior anyway, written for OO instead of adapted from C.
I still program plenty of C for Android NDK low level code.
Before C, I did various assembly/machine languages, including the first CPUs in the mid 1970's and in early 80's front panelled a simple OS into an old PDP-11/05 to use an Apple clone keyboard and a "TV Typewriter" type 6847 Video board I built...
Now I'm wondering about iOS Objective C. Much more money still it seems in iPhones/Pads.
I am a newbie too. My background is microcontroller programmer, so i use C very often. When i start learning android programming, i begin with learning java and eclipse first, after i got the OOP concept, i begin learn to use android API and Android Studio....when we start from low level language, learning Java is easier... Java basic first then android API....
I am a serious coder, usually working with enterprise applications at my job. In my experience, if you need to learn something new, it is better if we get help from some friends or professional trainers. Saves us a lot of time and trouble. If you want to learn the basics of OOP and are going to build something, I suggest you get help of a professional trainer. You will be clear about the subject matter easily and with your experience, you will achieve progress within no time.
Wow. I don't feel so bad now. I'm and old geek too. I'm looking at trying to develop a simple game for Android. My last coding was in 1988 using COBOL. I'm a System Analysist but most of my experience was in medical systems and Digital Radiography. I'm basically a College Freshman.
Thanks for the information.
Can we keep this thread open or create another for Q&A from you wiz kids?
A funny note: I was involved with Search and Rescue in 1979. We were a driving force to get SAT phone's going but our budget only allowed for 2 satellites that year. We tested with a fellow driving in California while talking to us in Milwaukee. We only had a 20 minute window , then had to wait till the next.flyover 3 hours later. We've come a long way. Let's keep the momentum going!

Custom ROM builders, what would be your advice for someone learning the process

First of all, thanks to all custom ROM builders who have made the Android ecosystem diverse and rich. Even when the companies whom we pay for the device stop providing us with updates, your tireless works keep our cellphones alive and running.
Now, I would like to understand what goes into building a custom ROM. Here are my questions:
-> What kind of knowledge is prerequisite for starting such a project? For example, proficiency in C++, Java and an understanding of Linux kernel seems to be the basis of it. What else would you suggest?
-> Which tutorials, books or documentations would you suggest to learn the stuff? There are a few videos on Youtube, a few threads here, but sadly they seem to be out of date, and I guess Google has changed the Android system architecture drastically in recent years. Also, there seems to be a misunderstanding between building from source code, and modifying the source code before build. There are many which focus on the former, which is not that difficult of a project.
-> What kind of tools would make the whole process easier? There are a lot of tools like SuperR Kitchen, but are they used by actual devs? Or do the devs make their own tools for development?
-> What hardware specs would you suggest for Android system development? Is 16GB RAM enough, or is 32GB optimal? What about CPU: speed vs threads, which is more preferable?
-> How do you implement a new feature that doesn't exist in any current ROM? How do you, let's say, add a customizable lockscreen, or scrollable QS tiles?
-> When you start a ROM development, there is always an ethical question of stealing someone else's code. However, you have to start somewhere. Some ROMs say they are based on AOSP, or Lineage. How does the choice of base ROM impact the final product? How much do you copy code from a different custom ROM's source code?
-> Any other advice, suggestion or warning. Feel free to enlighten us.
Consider this thread to be a Q&A, where, if the devs are kind enough to participate in, we will get to pick their brains and learn from the process.

Categories

Resources