I'm interested in doing some enhancements to android emulator (implement webcam on emulator). Therefore I'm following the android source and emulators source to get basic understanding & the connection between modules. But its really hard to understand it for someone who is new to android. Therefore can anyone please direct me to some resource to understand this. May be some proper documentation, tutorials or anything that i can understand this.
And since i'm interested in emulator if i change the code of emulator with in "external\qemu" , then build it using "m emulator" and run using "emulator" , will those changes effect or apply onto the started emulator.
And if anyone know please let me know that, what is the sdk it uses when it run as "emulator" from the build android source code. Cos if i want to install some application to that emulator how can i do that?
Please help if anyone know...
You will want to implement a compatible camera interface in QEMU. QEMU is a multi-platform system emulator which provides a complete emulated system.
I would suggest implementing a camera which matches an existing hardware device. For this, you will likely need to study the existing drivers which are part of the kernel source.
Related
I want to learn Android BSP porting.For that I want to port Android kitkat on TI's Panda board.I have already done the Linux porting on panda board.Please suggest the starting point for the same.
I have tried similar thing on Exynos5250 development board with partial success. With partial I mean, the system is up, shell is accessible, all partitions are mounted. But display is not up. So I may guide you a little bit. I may describe what I did for this.
First of all take two source codes.
1) AOSP to which you want to port your Pandaboard.
2) Take any working Andoroid source, it may be ICS or JB or even KK.
Now, You need to port your HARDWARE BOARD to KITKAT SOURCE(1)
So, get KK aosp and build it once for any device already available in source. Follow,
https://source.android.com/source/building.html
Now follow this link in XDA forum.
http://forum.xda-developers.com/chef-central/android/guide-android-rom-development-t2814763
This describes things if you are starting from scratch.
Or if your machine is already set for building AOSP with proper tools refer specifically
http://forum.xda-developers.com/chef-central/android/guide-android-rom-development-t2814763#9
This shows what to change and where to change. Just note that you may not have cm.mk file as that is specifically for cyanogenmod.
There are few useful links in my bookmark bar that you may refer when the code is building(It takes hours, believe me)
http://wiki.cyanogenmod.org/w/Doc:_porting_intro
http://elinux.org/Android_Device
http://forum.xda-developers.com/showthread.php?t=2620389
http://www.kandroid.org/ndk/docs/ANDROID-MK.html
Android device configuration for AOSP
You may use the JB kernel for a while to boot it up as I did, but it will break some features in Kitkat android.
Also, I while building you may face a lot of errors. You need to deal with them on your own.
Also if you successfully port it, don't forget to share the process you followed.
I hope this will provide a good start for the process. Good Luck.
During my education I have been developing Android iOS apps and websites for almost 18 months. Now, as my final year project, I am working on Linux source code with the goal to boot it on a mobile device – like Android. I have it successfully as a Debian package following tutorials on the Internet. I am currently using Ubuntu.
I have a strategy but not sure if I am on the right track. It is as follows:
A:
Download Linux source code. Remove extra drivers, compile and
install it on currently running Ubuntu and use it.
Customize the code further and boot it as my own distribution. For
that I'm following LFS.
Specify a particular target mobile, modify the code for it, write
drivers if I need any, not sure which one (that's why I'm here :) ),
and boot the kernel on it.
I do not know whether my strategy is right or not. I'll really appreciate if someone can tell me:
B:
Am I on the right track? If not, what might be the right one?
Do I need to specify a mobile and customize the kernel code for that
one?
Other than drivers, what else do I need to change in the kernel?
Last but not the least when I boot the kernel on a mobile device; am I going to have any
interface or terminal there?
Sorry if my question doesn't make sense. I am a student and still trying to figure things out. I would be very thankful if someone could give me hints on what subjects to search for on the Internet.
Update: What I want is to confirm whether my strategy is correct or not. If not, then please just name the steps I should follow.
It is not unusual that the drivers for the SoC and devices around it are closed source.
As far as I know, the drivers for the Exynos SoC (the stuff Samsung uses in many of their devices) is (partly) closed source.
So generally speaking you have to write drivers for everything and everyone.
Especially the actual radio connection is tricky as there are no devices which need proprietary
firmware blobs (although the rest of the drivers may be open source).
Another problem is the boot loader on many devices, which does not easily let you install
custom kernels (hash sum stored in the boot loader, unwilling to boot if kernel hash does not
match).
So, assuming you are developing for a device that is already supported by android, I personally
would start with the corresponding device tree for your device and start modifying that.
You can a lot of device trees on CyanogenMod's github page.
Benefits:
You can start off with a working state
If something breaks you know it was you
Alternatively, you can peek at other projects like Ubuntu Touch.
They are able to utilize existing android kernels by using Hybris.
If you want to have a distribution based on Debian/Ubuntu I would recommend
trying Ubuntu Touch and modifying that.
I need to reproduce a bug that I think is on devices running Android 2.1-update1. The emulator options exist for 2.1 but I don't see option for update 1? It is important to be able to test for all device scenarios, so i need to know how to create AVD for a specific update.
You cannot get the emulator to match exactly devices, you can only test against "vanilla" Android releases from Google.
Unless you can get images from the device manufacturer or source code for the kernel (which you should be able to find or request) and of the Android framework (which will be quite more challenging to obtain) that you can recompile and generate the proper images, then you are out of luck.
INHO, the emulator is really a great tool to help you develop applications, but it does not replace a real device when it comes to testing.
I am working on WIN CE platform and quite new on Linux and android. I want to port android in PXA270 device running with ARM 9 processor. I googled and found, first install linux kernal, modify it according to the target device, add device drivers and install android image. Thats good but it is difficult for a new person like me. As i read somewhere that android is developed by modifying actual linux kernel(adding low memory killer, android logger etc) then why we dont use that modified android directly on our device. Is that available to use? If yes then how?
please tell... thnkx.. :)
Check out the 0xdroid project, they followed more or less the same route you want to take but for another platform (OMAP), nevertheless you'll probably learn some things from them and their project.
Maybe I'm wrong, but what you want to do looks like a major undertaking to me...
Alternatively, you can try the old Android porting for PXA27x:
http://sourceforge.net/projects/android-pxa270/
More or less as it says on the tin.
Before I even contemplate downloading the SDK, I was wondering if there was any way of testing Android apps that I'd write without an Android phone available to me? I'm unsure as to whether or not the tools that come with the SDK come with an emulator like VS does for Windows Mobile.
Sorry if this is a stupid question, but maybe I'm searching for the wrong thing.
Edit I don't suppose there's anything that'll let me write widgets on/for an emulated version of the interface HTC use on the Hero/G2 either is there? Not that it would matter that much.
There's an emulator available as part of the SDK.
http://developer.android.com/guide/developing/tools/emulator.html
I'd add that the emulator is really quite comprehensive. Things like camera previews don't actually display camera data, but they put block animations in their place. All in all it's one of the best mobile emulators I've seen to date. Probably better even than gasp the iPhone simulator.
As said above there's an emulator available,however with larger apps it gets fairly tedious to use the emulator.Its fine for learning the ins and outs but id suggest investing in an android phone once you've got a good grasp of the sdk,it really does make a difference!.