ARM Translation on Genymotion - android

Okey, BlueStacks is a bit slow on my pc, so I read somewhere in the internet that Genymotion is a bit faster then BlueStacks. Then I downloaded Genymotion and installed it. And after a lot of complex steps I finally understood that I need ARM translation and Google app for playing Android games. Now, I can understand that Google app is needed for getting the play store. But I am still in the dark about the 'ARM translation'. Why is it needed? what does it do? what happens if I don't use the ARM translation? And lastly, what does ARM stands for?
-Thanks in advance.

ARM is a processor architecture, you can read more about it here.
Android apps are sometimes designed with X86 architecture and sometimes with ARM.
You have to install the ARM translation in order to install on your emulator apps that use ARM architecture.
It's not a must have, but a lot of apps won't work without it.

Android games generally make use of OpenGL ES which is built from the ground up to work specifically with an ARM SoC. The Android NDK itself allows game developers to optimize their software by using C/C++ and even ARM assembly code.
The GenyMotion emulators are designed to work around an Intel x86 / x64 architecture, which is why they are faster than the Android emulators. But because of that, and because they have now decided to forgo ARM translation, they cannot run games.
A standard Android emulator actually compiles Java source to dex, and dex to ARM assembly, and these ARM instructions are run on an ARM emulation called QEMU. This makes the Android emulator incredibly slow, as it is in effect running an emulation of an ARM processor on top of an Intel-Windows machine. But it is able to run games.
The Android emulators emulate, while GenyMotion is more effectively a simulation.

Related

Get working Android Vulkan samples under MS Windows

I want to test Android Vulkan samples under Android Studio in MS WIndows 10
using this manual https://developer.android.com/ndk/guides/graphics/getting-started
I cannot do it because of the error
Device supports x86, but APK only supports armeabi-v7a
I have tried all options suggested here What is the reason for the error "Device supports x86, but APK only supports armeabi-v7a" but it does not work.
I have following Virtual Devices
Even if I use armeabi-v7a I cannot start app. And it is EXTREMLY slow.
Please help me to use clear steps to get working Vulkan samples under x86 images of Android. Thanks!
There are a couple different problems here:
First, the "device supports x86_64, x86, but APK only supports armeabi-v7a" means exactly what it sounds like: you've got an emulator that only supports 32-bit and 64-bit x86 instruction sets, but the native code in your APK is only compiled for 32-bit ARM. Emulating x86 devices is much faster since they can run in a virtual machine (the host CPU is actually executing emulator instructions directly, instead of having to translate them one by one in software). Configure your project to build native code for x86 in addition to armeabi-v7a.
Second, when using an ARM emulator, or if you fix the first problem and run on an x86 emulator, I don't think the Android emulator emulates a Vulkan-capable GPU yet. So you should be able to create a Vulkan instance, but vkEnumeratePhysicalDevices should return a count of zero available physical devices.
You don't give any details about "cannot start app": do you see anything in the log? Are you able to create an instance? Or is there some other completely unrelated problem before you even get to that point? Nobody can help you with that without more details.

Can the android emulator run on an ARM device

I need to do a lot of android testing where the device I use has to be ARM based. While it is possible to create these devices in the default android emulator they are of course very slow on my x86 development machine.
A lot of this testing runs headless and automatically so I thought about setting up an ARM server and emulate the devices there in the hope that the performance would be better. While looking around I realized that there is nearly no information about this. Is it possible to run an android emulator (ether the one provided with the SDK or any other) on a ARM machine to get higher performance for the virtual devices?
This is actually a very good question.
Some cloud services like Amazon are providing the arm based machines. With those machines, we can run android emulators in cheap price.
Google doesn't provide the android emulator binary for arm.
But you can build those emulator binaries from AOSP. You have to do some work such as editing of cross-compile build files, adding target directories and building related third party libraries in arm architecture.
If you need any further information, I would attach detailed technical tips or step-by-step manuals.

How to run an android app without stop

I recently built an android application that i need to run 24/24 7/7.
I thought about using web servers, so I bought KVM VPS WITH 2GB RAM AND 2 CPU CORES (Ubuntu). I tried to install Genymotion on it but it doesn't work, so I tried to use the androidx86 version on virtualbox and it works but it is very slow.
Now i am asking if there is a way to run an android application 24/24 on a server ?
In order to run an Android application on your computer and have it be fast, you'll need to use the x86_64 or x86 images. Using an ARM or MIPS based image requires overhead since native instructions can't be run on an x86 computer. Genymotion is good, but I find the new Android Emulator is really fast, and it's free.
I would check out the new Android Emulator and use an x86/x86_64 based image. You can customize your image to provide extra disk space and RAM allocation to the system image for better performance. I've had great luck getting it to run quickly and smoothly in recent builds.
Here is blog post and video from Google announcing the new and improved emulator at Android Dev Summit in December of 2015: http://android-developers.blogspot.com/2015/12/android-studio-20-preview-android.html
Note: Please make sure you have the most up to date Android SDK for best performance and to make sure you have the version they talk about in the link.

How to compile Android AOSP for x86

I've seen that there are emulator images available for Android which can run on x86 virtual machines. I'd like to build my own x86 Android image from source, but I can't seem to find instructions online. Is it currently possible to build a custom x86 "ROM"? (not sure "ROM" is appropriate term for x86 systems, whatever)
Yes it's possible, but you still need a Linux machine to compile it (without going into a lot of troubles).
There are a lot of information on porting android to X86 platform in the net. I suggest you to start with this one: Android-x86 - Porting Android to x86 .
You can also have look at XDA forun. They do a lot of work on porting ROM's.
Regards.

Is there some way to develop for Android using an ARM based computer?

I've seen in the Android Developers page that the SDK requires an x86 computer. Is there someway to use an ARM Based linux machine running Ubuntu to develop for Android?
This depends to some degree on what you mean by "to develop for android".
There are a number of scripting tools and frameworks which can be used to create applications on android, without actually compiling any java code. Some of these are intended even for development on the android device itself.
In terms of traditional SDK apps, most of the android toolchain is open source and potentially build-able for any posix-ish platform. The problem is the java jdk - you would need to obtain something to fill that role in the toolchain which would run on your ARM system. Something which compiles another language to dalvik opcodes and thus bypasses the need for the jdk could also be a possibility.
Presumably porting the NDK gcc & binutils along with the android packager is possible, which could make available either the official "native activity" option of more recent android releases, or some custom solution in which the java portion is a pre-generated wrapper and only native code is written for the interesting parts that would have to change during routine app development.
Finally, we aren't far from the point where it would theoretically be possible to emulate an "older" x86 system on a cutting-edge ARM one; potentially the x86 jdk could be run in such a virtual environment, albeit inefficiently.
Since this answer was written, solutions for doing Android Java->Dalvik development on the device itself have become available. As these work at least on ARM-based Android devices, that would qualify as developing for Android on an "ARM based computer". Presumably the same ideas could be applied to an ARM-based netbook or "chromebook" type of system.

Categories

Resources