What are differences between same ROM for different devices? [closed] - android

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
For example, can anybody give some concrete examples of differences between Cyanogen Mod 10 for Samsung i9100g and CM 10 for i9100?
As far as I know, they have different hardware and that's why their drivers are different, as a result their HAL are very different from the other. However, I'd like to have an example contains -maybe- several lines of code.
I am aware that there are many many people who wants to get into Android porting/development and does not know how to start what to modify/change, I am one of those. I think the answer of this question will be beneficial for those.

The biggest is going to be the kernel and the RIL (radio interface layer).
Different devices have different hardware. Different hardware needs different drivers. If you have two similar devices often little modification needs to be made to run one OS on a sibling device. However, even hardware that looks the same externally can have drastically different internals.
If you want to get into platform development, follow some of the people who do it and look through what they're doing. jt1134 does a lot of the kernel and platform dev for the Samsung devices. The CyanogenMod org has a lot of code worth looking at too and the team even has a wiki that goes into some of the finer details about building from source.
You should also sit around in the Android development IRC rooms on the Freenode and Mod-a-droid servers. You can ask questions but don't always expect to get an answer. You can even try PMing jt1134 on freenode (if he still hangs out there), he's pretty responsive if you can convince him you know what you're doing << as in read all the publicly available documentation first.
Here is an outline of the process you need to follow.
Milestones:
0.5. Setup a development environment http://source.android.com/source/initializing.html
Download the kernel sources from Samsung.
Compile the Linux kernel.
Wade through all the developer docs at source.android.com
Download the Android platform sources from googlesource.
Make any modifications required for your device (for example: you may need specific vendor files (drivers) for your device, you might need some custom init scripts, etc.).
Compile the android platform <-- this takes a long time
After this, you should have a OTA flashable copy of the Android Open Source Project that you can test on your device. This process took me about a month to research and get down, it's not a trivial endeavor, I wish you luck.

Related

which phone for the most of Android versions? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 6 years ago.
Improve this question
Im developing an Android app and I would like to test it on a real device so that I'd like to get a phone, on which a different version of Android can be installed, upgraded and downgraded.
Which phone can run most of Android versions? How should I choose it ?
Thank you.
[This answer applies to official Google releases of the Android software, not to alternate distros like Cyanogen.]
There are very few devices that even support more than one or two versions of the Android system. Carriers and OEMs seem reluctant to upgrade devices at all, and when devices do receive major upgrades, they rarely get more than one.
Of course, Android is open source, so you can build whatever version you want, right? Not really. Although the base OS is open source, OEMs have no obligation to release the actual source used to build the kernel and userland for any particular device. With a closed-source device, upgrading is out of the question. The best you can hope for is a downgrade, if you can find the right binaries.
As one commenter noted, Nexus devices are in general a good choice. They are usually supported for at least three OS revisions, and can be upgraded and downgraded easily. With few exceptions, they run 100% open source software.
If you're willing to get your hands dirty, the device that supports the most versions is the Panda board, which for many years was the standard test board for the Android Open Source Project. It was recently replaced by the HiKey board, which is more powerful and less expensive. If you don't mind building a device out of raw components, the combination of a HiKey and a Panda will cost less than a single Nexus device and likely remain valid for years to come.
I recommend you to go with the emulators but if you want a real device you should test on a Nexus device, but even nexus devices can't cover all the platforms
You can find most of the Android official versions here
Also you can find custom ROMs for different phones here
Note
Even if you flash ROMs on some devices, you still might get into different issues on different platforms because Android is customized by each phone manufacturers. For example, the Android that runs on the Nexus devices is the official Google version, but is different than the one that runs on a Samsung, HTC, Sony, etc.

Qnx vs Android Vs iOS [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
What advantages would a real time operating system like QNX bring to the smart phone / tablet space vs what android and iOS are doing.
Is really going to be more reliable and secure and at the same time providing great performance and security?
Thanks
It's very hard to figure out exactly what RIM is saying when they mean "QNX". Yes, they bought QNX Software from Harmon-Kardon, but it's not like a QNX was selling a tablet OS out of the box.
QNX provides various components for the customers, including but not limited too:
QNX Neutrino RTOS -- a microkernel (with a few variations) that runs on x86/ARM/PPC/etc. The normal development kit for this comes with the RTOS, all the standard UNIX/Posix utilities, a Windows or Linux IDE based on Eclipse, and a GNU toolchain. You can buy it, and bring up embedded platforms and write C/C++ code to your heart's content.
On top of that, QNX provides various packages that provide other features. They've got Photon, a X11-like windowing toolkit to make GUI apps, but it's really limited to making old-school UNIX apps. They've got a Core graphics toolkit which allows for low-level OpenGL accelerated graphics. They've got some Flash-running compositing toolkits for general purpose UI stuff. Then, on top of that, they've got some toolkits and packages aimed at cars.
So now, when RIM says "We're using QNX", it's unclear about what they're using. The kernel, sure, a lot of the underlying OS, sure, but the entire User Interface doesn't really match up to anything that QNX has publicly provided to date. I consider that part of the system the most critical for user buy-in. Comparing the details of the iOS kernel vs the Neutrino kernel, while interesting to some, is mostly irrelevant to the product itself.
I think that discussion is touching just some very high level capabilities of QNX.
Some of important things:
This system is very mature from all points of view. It doesn’t have issues on kernel level and uses completely different architecture vs. Linux.
One thing is that you don’t need to rebuild kernel if you change something on drivers level or something like that.
System is much more stable and doesn’t have crashes on kernel level.
You don’t need to take tricky procedures to balance multi threads solutions as it is in Linux.
You have fault tolerant system by default and other things. Just read QNX capabilities in white papers.
UI and Applications part for Mobile devices (smart phones, tablets) still be architect and implemented but it tem of time only.
System is really scalable from single chip microcontroller up to Cisco variant and full Airport Control System 24/7 (London )
Linux CANNOT be scaled this way at all.
So will see next two years...
QNX has made their first attempt to enter in Tablet Market which I believe is not bad. But they have always been a pioneers in developing support systems for any hardware like emended systems on aircraft Industry (including F-16), auto-mobiles and other industries.
I have used Playbook, I believe its wonderful, touch is amazing better than apple specially with all-side touch swap option leave no room for buttons. Its microkernel architecture protects every application, driver, file system, and protocol stack in the safety of memory-protected user space. As a result, multiple third-party applications can run simultaneously on the RTOS without corrupting one another or the RTOS itself.Furthermore, its will be like first Multi-core / Multi Tasking Tablet and the best part is that Now Android app's can also be installed and run on Playbook.
QNX is quite a bit heavier than Android IMO, so it will take something along the lines of the HTC Vision (TMobile G2) to get it running smoothly with modern software.
Funny enough, one of the airlines I worked for in the early 2000s ran their pilot training flight simulator, which had a complete 2 seat cockpit with QNX and an ancient 386 + coprocessor. Most smart phones would kill that machine.

Would there be a market for this idea (cross platform VM for iPhone OS) [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
Note:
The VM mentioned in here is not like in VMWare or VirtualBox, it is more like Java Virtual Machine (JVM), (as well as Python and Ruby).
That is, the fact that objective c is an interpreted language, should make it easier.
For a long time I wondered if the following idea worth a nickel or just a waste of time and energy. I am willing to start a project which will provide a kind of a VM for all iPxxx apps - so developed once for iPxxx can run on a Macbook, iMac, Linux, Android and windows (desktop and mobile). You get the idea, right?
I want to do to the current iPhone SDK, the same as what Mono did to Microsoft .Net and perhaps a more complete set of implementation.
I tend to believe that if overnight all apps on appstore become available on the android market as well that would be a mini revolution. Think about running iPad apps on every tablet that will come out to the market in the future.
Wouldn't it be fantastic to all the developers, which from now on, can write once and sell everywhere?
The main questions which I ask myself repeatedly is: "Is This Legal?" - I mean, say I have done this, would apple's lawyers will start sending me all kinds of nasty emails?
I am willing to hear your opinion about this idea as well as if some of you willing and able to join forces and start this open source project.
There is not much benefit in porting from phone to desktop. While that is essentially a freebie once you write the VM, it is not compelling in itself. The touch interface does not always work well with a mouse.
The reason to write it would be to add 100k free apps to android. I say free because there would be no reason to buy them, since you could just copy them. The VM would be equivalent to a jailbroken phone in terms of piracy.
Legally, I think you would have no better standing the psystar did. If you are making a pure VM, then you are installing Apple OS on unlicensed hardware. I am no lawyer, but I cannot imagine they would embrace the project. You could also try to be like Wine, implementing the entire OS from scratch.
As far as the actual feasibility of running apps in a VM on Android, I would have low expectations. Apple hardware is better than average, while Android hardware covers a wide range. Many apps would run poorly or not at all on a lot of the android hardware out there, even if there was no overhead for the VM. And there will be overhead for the VM.
I think this task is not a trivial one. Implementing a VM (Java?, Inventing your own language?) is not an easy task. Every VM implementation has tons of hours of design and development carried out by many skilled engineers. Even if you attach to standards (i.e. you could maybe implement a Python interpreter) instead of reinventing the wheel, this is sure a lot of work (at least for a one-person-project). Moreover if you try to implement a new approach (language?) you need to take programmers into account. How would you make your language/platform popular enough to let programmers create good applications?
On the other side (leaving legal issues out, that there surely be many), instead of thinking big, haven't you wondered how would you distribute your VM installer? I do not know iPhone very well, but as far as I know you can only install applications through iPhone Market. If your VM simply does not make fun to Apple it would be turned down with the ease of a click. No matter how many hours have you invested in your project. And no matter what you fight, if Apple doesn't like it, game over. Look at Flash for instance. They are just pushing to get what you are trying to do (or just already did) with Flash 11. What happened here? Apple doesn't want to let others take a slice of control of their platform. Game over Adobe on iPxxx. Do you think that what a big Corporation with gazillions of users, money and lawyers like Adobe couldn't do, would be feasible for a bunch of passionate programers employing a few hours of their spare time and little or no financial/legal support?

Android Development Device [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I'm looking to get a device (phone, tablet, etc.) for developing Android applications. I know I can use the emulator to get me started, but I feel like that will only get me so far along. I'm looking for something reasonably priced, and I don't want a phone contract, data plan, etc. Anyone have any suggestions?
I would recommend either a Nexus One or ADP2 ( you can get via Market once you sign in as developer. ). Other option is ebay. All attendees of google i/o got moto droid as a gift. And several devices are on ebay, priced around 350-400.
I wouldn't buy G1 for a reason i think it close to end of life. I'd also avoid devices alternative homes and ui ( blur, touchwiz, sense ). You want to clean google experience phone.
Advantage of Nexus of Dev phone - you'll have engineered bootloader, which let you to install custom roms and you can get root access which among other things allow you to use awesome tool hierarchyviewer ( from SDK ) on the device .
As a registered Android developer you can get an unlocked phone for $399. However, I am sure if you keep an eye on ebay you can find something that will suit your needs at a cheaper price. I see a bunch of Motorola Droids listed for a little over $300.
While the Nexus One and ADP2 are great because you can load custom builds of Android on them, that doesn't really sound like what you are most interested in. In fact, doing so will preclude you from running the Market application. For application development, you really just need any phone that lets you load non-market applications over ADB. You may want to consider getting a phone that has a keyboard to ensure that it works properly for your application. Finally, take into consideration which version of Android you are targeting. Newer phones run newer versions of Android.
If you plan developing something that might take an advantage of a hardware keyboard, get Motorola Droid/Milestone or a G1 (which you can turn into ADP1). I'm using the latter as my apps are targeted at 1.5+. Nexus One is the other option.

Device for Android development [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
not much of a programming question, but development related still,
I'm starting Android development and have been at it for just a little over a week. So far so go regarding progress, specially for someone who hadn't touched Java in his life (but have good C#, Objective-C, VB.NET and Fortran experience)
As I'm looking into a testing device I'm undecided on the phone to get. I need it to be unlocked, so I'm looking into Dev Phone 2 or Nexus One. The difference being $120~ish in price.
Anyone having one of those and using it for development? which do you consider is the best choice. Is the extra speed and screen in the Nexus One worth it?
I'm targetting SDK 1.6 but down the road I can see myself playing with 2.1.
Any input is appreciated
Regards
Something I learnt today was not to let a developer work on the faster model of mobile device when most of your users have the slower model. If it's good on the faster one, it's not always good on the slower device. I'd get a retail G1 as they can be flashed to all kinds of Android revisions. Plus they'll be cheap.
If you go for the Nexus 1, your apps will look better but only to Nexus 1 owners, mostly!
From what I've heard all Android devices are going to get a bump to some form of 2.1 in the future. The specific feature set of each particular build would depend on the hardware capabilities of the device. Neil makes a good point about speed and polish but with a device like the G1 (which I have and love) you will yourself to be limited by the hardware whereas with the Nexus One you can choose to limit yourself or you can choose to develop Live Wallpapers!
Also, you've asked 7 questions and haven't accepted any answers. If you keep that up you'll soon find that people are less willing to spend the time answering your questions.
If you want a test device go for the g1. If you want a good android phone for everyday use go for the droid or the nexus one.
For development be careful which carrier you buy the phone from, some of them like AT&T will change them to forbid installation of software from unknown source etc. to enforce the market. Those are pretty useless for a developer then.

Categories

Resources