[info]how apps are installed+used - Samsung Galaxy R i9103

HAVE you ever thought how an app is used and how it is installed ???
Well now you can cause I am here..:victory:
Many of you have probably heard, that Android uses Java. But have you ever heard anyone saying that Minecraft (The Linux .Jar) works on Android? No, you haven’t. And you most likely never will. This is because Android uses the so-called ‘Dalvik-VM’, VM meaning Virtual Machine. Yes, you got that: Virtual machine. Java doesn’t work natively on a computer. It runs in its own little cosy-cub. That’s why many people see such a potential in Java – That’s also one of the reasons the Android team chose to use Java. But because Android (usually) runs on ARM-based devices, one cannot simply install Java to the system and expect everything to work. So instead, they decided to use Dalvik.
Dalvik is the process virtual machine (VM) in Google’s Android operating system. It is the software that runs the apps on Android devices. Dalvik is thus an integral part of Android, which is typically used on mobile devices such as mobile phones and tablet computers as well as more recently on embedded devices such as smart TVs and media streamers. Programs are commonly written in Java and compiled to bytecode. They are then converted from Java Virtual Machine-compatible .class files to Dalvik-compatible .dex (Dalvik Executable) files before installation on a device. The compact Dalvik Executable format is designed to be suitable for systems that are constrained in terms of memory and processor speed. – Wikipedia.
Click to expand...
Click to collapse
Just from reading that, most of you will get a brief idea, of what Dalvik really is. But let’s ask a different question. Why are the apps installed using a Java virtual machine?
This question is actually quite simple to answer. We have all had this problem: We use a program on our beloved computer and all of a sudden, the whole system crashes and requires a reboot. This can have multiple causes, but the main one, however, is that the process had an internal error, while trying to attach to a specific piece of memory. But this can only happen in natively-running apps. Apps that run in a virtual machine can also crash, that’s not what I’m trying to say at all, but when the apps crash in a virtual machine, it’s virtual. It does not affect the system – Only the virtual computer. But as good as a virtual machine can be at some times, it also has many pros. One of the… how can I put this? Superior arguments for not using a virtual machine is speed. Sure, if you’ve got a computer with a bucket-load of power, it should get easy tasks done, right? Not necessarily. A virtual machine still runs as a program which has to request access to different memory locations which then allow the virtually-running program to request access to memory from the virtual machine which then asks the host OS for the needed space. Even though this usually only takes a second or two, per operation that is, it can be really annoying when different requests are pending for an answer. That’s where native code is much better. Native code only has to request for a memory location once, and then never again. That means less queuing and more speed – Ultimately resulting in more responsiveness.
Here comes a question to you, the readers: If you were a program, with the choice to choose whether it gets run in a virtual machine or natively on the OS, which would you choose. To make the decision a bit harder, you are approx. 50MB in size, your main task is IO (In-out) and you process large files (Pictures, renders, archives, videos, etc. …) and you’ve just gone into beta.

Related

Android apps on windows phone

Hi guys,
I'm currently using an iPhone as my primary phone and android as a secondary one. I want to shift to windows phone (mango) but there are a few apps on the android not available on winmo which I can't live without. Is there any way to run android apps on the windows mobile the same way(or ANY way) its done on the blackberry play book?
Thanks
I don't think there's any. But there are alternate apps.
Android apps on WP7 would be incredibly difficult, though theoretically it could be done with enough effort.
Most Android apps use Dalvik (a dialect of Java). This is totally incompatible with the Silverlight/C# that WP7 apps use, but there are enough similarities between them that it might be possible to build a tool that either translates the Dalvik instructions to MSIL (the binary that compiling C# produces) at launch, or dynamically interprets it (the latter would be very slow, though).
However, even with purely Dalvik apps, there are other problems. WP7 apps are limited to a very restrictive sandbox, with no access to the vast majority of the filesystem (for example). Android apps, by comparison, have a great deal of access to the device they run on, so even a very simple app may expect to have permissions that wouldn't be available on WP7. Instead, attempts to access restricted parts of the filesystem would have to be "virtually" redirected within the sandbox. This is possible in many cases, but a *lot* of work to code and has all kinds of weird edge cases.
Additionally, Android apps have a very different runtime model from WP7 apps. The biggest change is in how they handle leaving the foreground; WP7 apps are either suspended or dehydrated, while Android apps often just keep running (they can elect to suspend, but aren't required to). WP7 does support background tasks (with strict limitations, at least if you stick to the official APIs), but moving the Android app runtime into those background tasks would be quite difficult.
Finally, there's the issue of hybrid apps (apps that use native code in addition to managed runtimes like Sliverlight or Dalvik). These are much more common on Android than on WP7 (at least, than on WP7 outside this webite). Android runs on a Linux kernel, using POSIX system calls and APIs. WP7 runs on a CE kernel, using win32 system calls and APIs. There's a very loose mapping from one to the other (see the Wine project for running Win32 apps on desktop Linux) but it adds a lot of overhead and would be another layer, at least as tricky as the managed part, to the difficulty of this project.
Short version: nope, sorry.
GoodDayToDie said:
Android apps on WP7 would be incredibly difficult, though theoretically it could be done with enough effort.
Most Android apps use Dalvik (a dialect of Java). This is totally incompatible with the Silverlight/C# that WP7 apps use, but there are enough similarities between them that it might be possible to build a tool that either translates the Dalvik instructions to MSIL (the binary that compiling C# produces) at launch, or dynamically interprets it (the latter would be very slow, though).
However, even with purely Dalvik apps, there are other problems. WP7 apps are limited to a very restrictive sandbox, with no access to the vast majority of the filesystem (for example). Android apps, by comparison, have a great deal of access to the device they run on, so even a very simple app may expect to have permissions that wouldn't be available on WP7. Instead, attempts to access restricted parts of the filesystem would have to be "virtually" redirected within the sandbox. This is possible in many cases, but a *lot* of work to code and has all kinds of weird edge cases.
Additionally, Android apps have a very different runtime model from WP7 apps. The biggest change is in how they handle leaving the foreground; WP7 apps are either suspended or dehydrated, while Android apps often just keep running (they can elect to suspend, but aren't required to). WP7 does support background tasks (with strict limitations, at least if you stick to the official APIs), but moving the Android app runtime into those background tasks would be quite difficult.
Finally, there's the issue of hybrid apps (apps that use native code in addition to managed runtimes like Sliverlight or Dalvik). These are much more common on Android than on WP7 (at least, than on WP7 outside this webite). Android runs on a Linux kernel, using POSIX system calls and APIs. WP7 runs on a CE kernel, using win32 system calls and APIs. There's a very loose mapping from one to the other (see the Wine project for running Win32 apps on desktop Linux) but it adds a lot of overhead and would be another layer, at least as tricky as the managed part, to the difficulty of this project.
Short version: nope, sorry.
Click to expand...
Click to collapse
That was quite disheartening for the OP
But I liked the thorough explanation.
for curiosity, which apps are you looking for?
Thanks a million for the detailed reply. I can give up on this now otherwise would have gone crazy searching. As for the apps I wanted to use Rako which basically controls the lighting in my house and creston media which controls my theatre. These I can't live without.
Additional ones would be anonymous email and sms bomb.( to bug my friends)
as for the lighting you got me..
but for media the xbox (if you have one) companion controls my whole xbox media experience from audio (zune), movies (integrated movie player streaming from my pc)..
What about this - http://wp7mapping.interoperabilitybridges.com/Library?source=Android
Can't this be used?!
buffalosolja42 said:
but for media the xbox (if you have one) companion controls my whole xbox media experience from audio (zune), movies (integrated movie player streaming from my pc)..
Click to expand...
Click to collapse
Crestron controls my theater as a whole i.e lights, projector, blu ray etc. I just need to press 1 button and lights dim, screen comes down, blurry starts playing and so on. For the xbox controller its only for the xbox
buffalosolja42 said:
but for media the xbox (if you have one) companion controls my whole xbox media experience from audio (zune), movies (integrated movie player streaming from my pc)..
Click to expand...
Click to collapse
drupad2drupad said:
What about this - http://wp7mapping.interoperabilitybridges.com/Library?source=Android
Can't this be used?!
Click to expand...
Click to collapse
Okay im a noob and i have noooo idea what that is
drupad2drupad said:
What about this - http://wp7mapping.interoperabilitybridges.com/Library?source=Android
Can't this be used?!
Click to expand...
Click to collapse
That is just for developers who want to port their app.
jessenic said:
That is just for developers who want to port their app.
Click to expand...
Click to collapse
Exactly! So yes, Android app can come to WP, only if developers are hard working to port it.
However, I haven't done more than making ROMs for WM, Themes for Android, but I am currently porting 2 apps from Android to WP. Honestly, all porting is made so dead easy that a little bit of English and Bing at hand, and you are off to a great start! It's slow process but anyone can port if they want to.

[Q] Goggle play on Windows phone 7.5

A question can i install google play on Windows phone 7.5 and get the apps too work that i have dowloade from google play ?
bastian94 said:
A question can i install google play on Windows phone 7.5 and get the apps too work that i have dowloade from google play ?
Click to expand...
Click to collapse
Short Answer: No.
long answer: No, really no.
Ok
OK:good:
Why would you even think this might work? You can't install RPM or dpkg or zypper or Aptitude (those are Linux mackage management tools, in case you don't know) on Windows, and even if you could, the apps certainly wouldn't run. Why would you expect any difference with Android (Linux-based) package management on WP7 (which is somewhat like desktop Windows)?
WP7 uses part of the .NET framework (Silverlight or XNA), meaning the Common Intermediate Language and .NET 3.7 runtime libraries. For native code it uses the CE subset of Win32 APIs. It uses CE system calls. Its application models is built on completely different assumptions than Android's.
Android uses Java language compiled to Dalvik bytecode and executed in the Dalvik runtime. For native code, it uses Linux APIs (those that are available in Android), and POSIX system calls. Its application model much more closely resembles a desktop OS (or WinMo) than it does WP7.
It's imposible, diferents O.S, different kind of applications
neoriix said:
It's imposible, diferents O.S, different kind of applications
Click to expand...
Click to collapse
Short answer: No, lol.
Long answer: I would be a miracle having something like an emulator/virtual machine on each smartphone. Imagine sharing apps between iOS, Android, WP7/8 just in a virtual environment. But, NO, it's still impossible. (just some GBA/NES emu).

x86/64 bit emulator for ARM Processor

So I was wondering if its possible for someone to create or start developing an application that can emulator x86/64 code on an arm architecture?
What x86 code, exactly, do you mean? Do you mean running native x86 code directly or do you mean taking Java or .NET code and running it?
Ultimately, pretty much *anything* is possible to emulate. However, emulating it in a way that it can run in a reasonable amount of time is unlikely to happen. There are just so many things that are limited in the RT version of the .NET Framework.
ok, im not exactly best qualified for this but ill try and explain
in short, no, you could potentially make an emulator for a given program, but to make some be all end all x86 emulator to cover everything would be massively inefficient and probably not possible
you primary obstacle is that RT uses managed code, that means MS tells you want you can and cant do, it gives you the frame work if you like and you can build what you want within that frame work but step outside it and do your own thing isn't possible (yet)
once you got over that barrier, next up would be to port every single function and call sent to the CPU to an ARM equivalent, ARM is like a tadpole compared to Blue Whale of X86 so it wont do everything on chip meaning youd need to also convert it in software to something it can do
It would be like trying to blow a golf ball through a garden hose
however, small limited programs that don't rely on many hardware functions and with limited calls outside of its own program would potentially be possible to emulate assuming you can get native code to work anyway
Surface RT - Paperweight
Surface Pro - Glorified Tablet/Notebook
Just go with the Pro, it will make life much easier. The whole emulator debacle isn't even necessary if you just go with the logical choice.
I mean the Tegra 3 is awful as an SoC--I don't know what moron said Quad A9's are better than A15's, not to mention the GPU is junk compared to an SGX.
Overall Micro$oft shot themselves in the foot.
qhdevon43 said:
So I was wondering if its possible for someone to create or start developing an application that can emulator x86/64 code on an arm architecture?
Click to expand...
Click to collapse
Actually Visual Studio 2012 could technically support building desktop applications to run on Surface RT and other RT (ARM) tablets. However, at this time, Microsoft is also allowing Microsoft signed applications. And, I heard that if you disabled that check in the registry, then you get blocked by RT. It is definitely possible that in the future, Microsoft might allow desktop applications to be recompiled for RT.
In the meantime, Remote Desktop is wonder in that I can connect to my Windows 8 laptop and use it to run any application with almost full touchscreen functionality. So, combining a Surface RT and a Windows 8 computer is ideal for me.
wrexus said:
Actually Visual Studio 2012 could technically support building desktop applications to run on Surface RT and other RT (ARM) tablets. However, at this time, Microsoft is also allowing Microsoft signed applications. And, I heard that if you disabled that check in the registry, then you get blocked by RT.
Click to expand...
Click to collapse
Add it stands, you can't even really disable UAC without breaking Metro in full Windows 8 (the UI setting to disable it doesn't really disable it). They have that thing locked down pretty well!
You can enable test-sign mode on RT, this would allow you to run your own ARM desktop apps, signed by your own cert, not with MS one. This is absolutely legal, but it can be closed by MS in some of the new hotfixes (and they'll definitely will, when this mode would be used to run cracked apps).
It is really possible to make a working x86 CPU emulator that would allow you to run x86 windows programs on RT. Just remember my port of "heroes of might and magic" 1 and 2 for Windows Mobile - it was more difficult to make it, as WM had a more limited Win32 API than Windows RT has.
I'll make a nearly universal emulator for RT when I'll buy a device, project is already started and has good results. But I'm waiting for a device that is based on quad-core Snapdragon S4. I would not recommend buying Tegra devices, 4-core Krait beats them in CPU and 3D speed. And high CPU speed would be necessary for smooth x86 emulation.
Quad A9's are better than A15. If you wasnt too busy kissing jobs ass, you would know this. Tegra line is alot better that any apple "cpu"
Ace42 said:
Surface RT - Paperweight
Surface Pro - Glorified Tablet/Notebook
Just go with the Pro, it will make life much easier. The whole emulator debacle isn't even necessary if you just go with the logical choice.
I mean the Tegra 3 is awful as an SoC--I don't know what moron said Quad A9's are better than A15's, not to mention the GPU is junk compared to an SGX.
Overall Micro$oft shot themselves in the foot.
Click to expand...
Click to collapse
@Jaxidian: Disabling UAC disables Mandatory integrity Controls, which is how the sandboxes for both IE and Metro-style apps are implemented. Metro-style apps check, when they are launched, if they are running in such a sandbox, and exit if they aren't.
Disabling UAC is, and always was, a terrible, idiotic thing to do, and I truly don't know why MS made it an available behavior. Just set it to auto-elevate without UI instead, if you really can't stand having proper principle of least privilege in your OS. This is a little more complex (you have to use the Local Security Policy editor, which can be launched by typing "secpol.msc" into Run or by going into the Administrative Tools) but is a much better solution as things which explicitly want to be run with limited permissions (sandboxing) still can be.
@dazza9075: Dosbox is an x86 emulator that is already available on other ARM platforms. It just doesn't support the (many) x86 opcodes that have been added since the 386. It certainly can't do 64-bit. However, it's fine for running old DOS programs, including games. Somebody should port it to the Windows Store if possible, or at least see about making a homebrew build of it that we can run on RT devices. This is totally not my area of expertise or I'd do it myself.
A full x86 emulator, like Microsoft's old Virtual PC for Mac (except running on ARM instead of PPC), is technically possible. It's just hard. It sounds like some people are already working on this, though.
Regarding publishing DosBox, Bochs, Qemu, ScummVM and other emulators to Windows Store - they would be unable to pass the certification. Read the requirements here http://msdn.microsoft.com/en-us/library/windows/apps/hh694083.aspx
3.9 All app logic must originate from, and reside in, your app package
Click to expand...
Click to collapse
For emulators - app logic resides in an emulated program that is typically not present in app package.
By the way, Microsoft Internet Explorer can't pass this check too - as it downloads and executes flash from web. But MS is already known for its double-standards.
The other reason why those apps may be refused:
3.5 Your app must fully support touch input, and fully support keyboard and mouse input
Click to expand...
Click to collapse
Old programs (games at least) may be unusable without keyboard or mouse. My own program was refused for this reason, because it is unusable without hardware keyboard.
It is possible (and really easy) to port Bochs or DosBox for RT as a "desktop" application (making a "metro" port would be a bit more difficult). I can do that myself when I'll get hands on a Krait-based quad-core RT device, if someone would not port them earlier.
Regarding Tegra 3 vs Krait - Krait is not directly based on A9 nor on A15.
mamaich said:
You can enable test-sign mode on RT, this would allow you to run your own ARM desktop apps, signed by your own cert, not with MS one. This is absolutely legal, but it can be closed by MS in some of the new hotfixes (and they'll definitely will, when this mode would be used to run cracked apps).
It is really possible to make a working x86 CPU emulator that would allow you to run x86 windows programs on RT. Just remember my port of "heroes of might and magic" 1 and 2 for Windows Mobile - it was more difficult to make it, as WM had a more limited Win32 API than Windows RT has.
I'll make a nearly universal emulator for RT when I'll buy a device, project is already started and has good results. But I'm waiting for a device that is based on quad-core Snapdragon S4. I would not recommend buying Tegra devices, 4-core Krait beats them in CPU and 3D speed. And high CPU speed would be necessary for smooth x86 emulation.
Click to expand...
Click to collapse
mamaich said:
Regarding publishing DosBox, Bochs, Qemu, ScummVM and other emulators to Windows Store - they would be unable to pass the certification. Read the requirements here http://msdn.microsoft.com/en-us/library/windows/apps/hh694083.aspx
For emulators - app logic resides in an emulated program that is typically not present in app package.
By the way, Microsoft Internet Explorer can't pass this check too - as it downloads and executes flash from web. But MS is already known for its double-standards.
The other reason why those apps may be refused:
Old programs (games at least) may be unusable without keyboard or mouse. My own program was refused for this reason, because it is unusable without hardware keyboard.
It is possible (and really easy) to port Bochs or DosBox for RT as a "desktop" application (making a "metro" port would be a bit more difficult). I can do that myself when I'll get hands on a Krait-based quad-core RT device, if someone would not port them earlier.
Regarding Tegra 3 vs Krait - Krait is not directly based on A9 nor on A15.
Click to expand...
Click to collapse
But its only a matter of time before we figure out a way to sideload metro apps without going through the store.

BlueStacks App player

Hi everyone.
Could anybody compile BlueStacks App Player for Windows RT?
It would be great to use this app on our tablet with Win RT
I use on my laptop (win7) and wish o use on my Surface RT
Official site
Thanx a lot
It would be a great app to have, but seeing that it's not open-source there is about zero chance of it ever getting ported by the community.
Your best bet is to just hope that they (the actual makers of the app) decide to bring it over to RT, which is possible but unlikely.
Search next time; the devs here are up to their ears in requests for closed-source applications and are pretty fed up with it. Sorry.
They've actually already stated that it's coming...
Not explicitly. They hinted at it in a Help forum post, but never confirmed or denied it. And that was months ago.
jtg007 said:
Not explicitly. They hinted at it in a Help forum post, but never confirmed or denied it. And that was months ago.
Click to expand...
Click to collapse
Actually they had listed on their site that they were working on an ARM version.but not sure if they still are. Seems unlikely MS would allow it in the store due to direct competition with the windows store.
guitar1969 said:
Actually they had listed on their site that they were working on an ARM version.but not sure if they still are. Seems unlikely MS would allow it in the store due to direct competition with the windows store.
Click to expand...
Click to collapse
MS doesn't have a whole lot of control of things outside the Store. They could side-load an app pretty easily.
The vast majority of RT devices aren't "jailbroken" for sideloading arbitrary ARM binaries. Also, remember that RT doesn't (currently) support OpenGL, which means any Android apps/games that use advanced graphics won't work unless BlueStacks write and include an openGL-via-DirectX compatibility layer.
GoodDayToDie said:
The vast majority of RT devices aren't "jailbroken" for sideloading arbitrary ARM binaries. Also, remember that RT doesn't (currently) support OpenGL, which means any Android apps/games that use advanced graphics won't work unless BlueStacks write and include an openGL-via-DirectX compatibility layer.
Click to expand...
Click to collapse
I meant side-loading a Metro app, which can be done by just about everybody.
Cant sideload metro apps without a developers certificate
Derp. Yes, of course sideloading is the obvious way to go about it. Getting the dev license is easy, and yeah BS would have to sign their app, but that's not exactly difficult and their cert doesn't have to be signed by anybody else; it just requires that the end user install the cert before the app if it doesn't already chain to a trusted authority. The appx installer script automates all of that, though.
That said, the OpenGL issue is still there. Don't count on 3D games, at a minimum, working.
Don't forget however, that all of this is pretty much irrelevant right now. The Surface lacks the power to run Bluestacks. On my 6-core 2.3 ghz 6 gigs of ram computer with a great graphics unit, Bluestacks is still relatively slow. Just imagine it on the quad-core 1.4 with 2 gigs of ram that the Surface has. Not to mention it's on ARM, which is considerably less powerful than x86 or x64.
C-Lang said:
Don't forget however, that all of this is pretty much irrelevant right now. The Surface lacks the power to run Bluestacks. On my 6-core 2.3 ghz 6 gigs of ram computer with a great graphics unit, Bluestacks is still relatively slow. Just imagine it on the quad-core 1.4 with 2 gigs of ram that the Surface has. Not to mention it's on ARM, which is considerably less powerful than x86 or x64.
Click to expand...
Click to collapse
I dont think bluestacks is a multithreaded application in which case your 6 cores would be irrelevant and it would be purely down to your 2.3ghz clockspeed, which is not high at all. 6gb of RAM would also be irrelevant as no android app requires that much RAM so it simply wont be needed. GPU, not so sure what happens there, most of the apps I try running dont seem to enable my GPU at all so I am not sure if bluestacks is using software or hardware OpenGL, but then I havent tried any 3d games or anything. It runs ok on my 3.5ghz AMD athlon 2 but its not always as perfect as lets say a nexus 7 tablet running android natively.
I'm admittedly not 100% sure on how BlueStacks works (is it a native x86 DalvikVM, or is it emulating a full ARM system?), but it should be, at least in theory, possible to get it to run as naively as it does on Android by just porting the DalvikVM to Windows RT. That should result in speeds at least similar to a lower end Android tablet (Windows is bigger and has more cruft than the linux kernel that's running the DVM). With some sort of reverse WINE scenario it should also be possible to get a degree of binary compatibility for native libraries/addons.
SixSixSevenSeven said:
I dont think bluestacks is a multithreaded application in which case your 6 cores would be irrelevant and it would be purely down to your 2.3ghz clockspeed, which is not high at all. 6gb of RAM would also be irrelevant as no android app requires that much RAM so it simply wont be needed. GPU, not so sure what happens there, most of the apps I try running dont seem to enable my GPU at all so I am not sure if bluestacks is using software or hardware OpenGL, but then I havent tried any 3d games or anything. It runs ok on my 3.5ghz AMD athlon 2 but its not always as perfect as lets say a nexus 7 tablet running android natively.
Click to expand...
Click to collapse
Sort of, yes. But still, that means the Surface would be way less powerful. Also, my RAM is EATEN by Bluestacks because it's not apps that are the problem to run, it's Android. You're basically loading an entire virtual machine onto your RAM to run, in a program shell, then running Android apps on top of that. So the power of the device does matter... however:
netham45 said:
I'm admittedly not 100% sure on how BlueStacks works (is it a native x86 DalvikVM, or is it emulating a full ARM system?), but it should be, at least in theory, possible to get it to run as naively as it does on Android by just porting the DalvikVM to Windows RT. That should result in speeds at least similar to a lower end Android tablet (Windows is bigger and has more cruft than the linux kernel that's running the DVM). With some sort of reverse WINE scenario it should also be possible to get a degree of binary compatibility for native libraries/addons.
Click to expand...
Click to collapse
Bluestacks would have to run a full emulation of ARM in order to run all apps, right? Because when you install native x86 Android, it runs very few apps from the store, because they aren't compiled for ARM.
Netham45 could be right though that we could kind of make Android run natively, though I'm highly dubious about it happening through Bluestacks. Bluestacks most likely won't make an ARM port (especially cause I doubt Microsoft would allow it in the store) and if we did have access to source code, it's still built around running on Intel processors, and would probably have to go through all sorts of unnatural emulation... So making a totally separate Android program from scratch (which would require inordinate amounts of work) would probably be the best bet.
No. I think bluestacks is actually "just" a port of the dalvik VM to run on windows.
Android apps are not compiled for a specific CPU type. They are compiled for the dalvik virtual machine which is in a way similar to the java virtual machine, in fact a dalvik applications source code is java source code hense why many people say android apps are java, in reality the dalvik VM is very different from the java VM and the 2 are not compatible.
The vast majority of apps do actually work on x86 just fine.
The main problem is that google restricts apps based on your device and often it doesn't recognise x86 devices so doesn't show results, the default app manifest files don't actually restrict platform but many devs set them to arm for some reason. With various tools to spoof what device you appear as you can still gain access to thses other apps.
The problem apps are those that use the NDK (a small minority). NDK apps do have native code, but not just for ARM. The NDK default settings are to generate binaries for ARMv7, but it can be set to x86, ARMv6, MIPS or to compile multiple binaries for a mixture of the above (causes its own issue as it includes the binaries for all platforms in one APK which loads the relevant binary at runtime, good for compatibility as one APK covers all devices but makes the final APK massive). x86 devices of course cannot run ARM compiled apps which does include a few big name apps.
I don't know if bluestacks has left it as pure dalvik VM on x86 or if it does include an ARM emulator for the NDK but it certainly isn't just running an ARM emulator and tyen android atop of it.
I don't experience the ram eating effects you mention either.
SixSixSevenSeven said:
No. I think bluestacks is actually "just" a port of the dalvik VM to run on windows.
Click to expand...
Click to collapse
That's exactly what my understanding was as well, although what I'm about to say somewhat contradicts that.
Interestingly, http://www.bluestacks.com/technology.html says that BlueStacks is "fully configurable" and that it "supports" Windows on ARM as well as x86 Chrome, even though neither of those are actually available today. So, not sure if that page is before or ahead of its time.
"BlueStacks employs a lightweight, optimized, soft hypervisor with deep enhancements to support "embedded virtualization". End consumers can enjoy the full Android environment through BlueStacks, or just install Android app icons directly on the Windows desktop."
What the page basically says is that the core virtualization that BS uses is very easily configurable to different combinations or permutations of OSs; that the technology can just as easily run Windows on Android or Android on Chrome as it can Android on Windows, which is the only current release. It also implies that BS can do BOTH a mere dalvik vm (just install apps to the Desktop) as well as a complete system emulation (full Android experience).
There may be hope for RT yet.
As far as I remember, Bluestacks is using QEMU as there base platform. So it's probably still running ARM code in emulator.
I am looking at if we can port the Dalvik VM over to Windows RT. Anybody want to join the explorations?
So far I can see the Dalvik VM has lots of generated ARM assembly code and have huge dependencies on linux.
Porting would need quite a bit of effort.
Developers from Windroy has done it for the Windows X86 platform. If they can do it for Windows RT, it'll be much easier.

Is bare metal Linux possible?

Bit of a story here.
So I have been long into car hacking, doing all sorts of canbus related modifications to my Merc W203 model.
The stock radio is utter garbage by today's standard, and Xtrons do a ton of android head units for my car. (Either with an A35 CPU and 2gb ram, or Px5 CPU with 4gb ram).
I am wondering, would it be possible to COMPLETELY remove android from it, and instead boot something like archlinux-arm on it. I want to create some custom applications on it whilst also having full control over the entire OS (Hence the want for Linux, not android).
I do kernel development as well so I am not worried at all about devices not working, I can likely hack together a kernel driver for nonworking hardware on the unit.
I am simply looking if it is possible to wipe android and see if it's possible to use it as a bare bones PC.
Any help would be appreciated, before I bite the bullet and spend £250 on one!:laugh:
You still need the GUI and stuff like that.
Besides, Android "is" Linux! Much better, imo, to base it off of Android, to keep the ecosystem that that comes with.
FransUrbo said:
You still need the GUI and stuff like that.
Besides, Android "is" Linux! Much better, imo, to base it off of Android, to keep the ecosystem that that comes with.
Click to expand...
Click to collapse
I am pretty sure by he said 'bare bones' does not mean an (Linux kernel based) operating system with only an command line terminal (i.e. something that looks like MS-DOS).
My point is that native Linux doesn't HAVE "mobile GUI". It have X11, which is *NOT* (!!) suited for such a project..
So either have to port whatever GUI Android have back to Android, or write his own. Which is a *MASSIVE* (!!) undertaking..
Also, Linux isn't quite suited for mobile applications. That's why Android was created. It took all the good from Linux and made it fit a mobile application.. Reverse engineering or back porting all that work to Linux is just dumb..
FransUrbo said:
My point is that native Linux doesn't HAVE "mobile GUI". It have X11, which is *NOT* (!!) suited for such a project..
So either have to port whatever GUI Android have back to Android, or write his own. Which is a *MASSIVE* (!!) undertaking..
Also, Linux isn't quite suited for mobile applications. That's why Android was created. It took all the good from Linux and made it fit a mobile application.. Reverse engineering or back porting all that work to Linux is just dumb..
Click to expand...
Click to collapse
Wait does the OP mean he need some thing like postmarketOS(some kind of Linux distribution with mobile GUI)?
Of course he does!! What do you think "Linux" is?!
Linux is *JUST* (!!) the kernel! NOTHING else.
The *distribution* is everything else. Boot procedure (scripts, commands, filesystem tools - technically that's "The Userland" - the install procedure, the packaging etc etc). Then you put your GUI on top of that.
On top of that you have X11. Or "The GUI". TECHNICALLY, X11 require some more stuff, the window manager too actually be useful. Without it (the window manager), X11 is just an API to the graphical functions - "draw window border", "draw a close button" etc etc. Which is what the window manager utilises.
So: kernel <- userland <- X11 <- Window manager <- Graphical apps
Then all of that is packaged up in a need CD/DVD/Image to make it easily installed and used. And we call that "The Distribution".
This is how UN*X works and that's how LINUX works. Simple, portable and very useful. But not for a phone, tablet or, in this case, a car!
That's why Android was created. It is ALL of that, in ONE package! With thousands and probably millions of apps compiled for it. Do it yourself, and you have to write EVERY (!) app you need yourself - radio apps, navigation etc etc ad-finitum..
Because NO ONE/THING (except in very rare occasion) "talks" to the kernel. They "talk" to libraries (libc, libX11 etc) to do what they need. Which is why you need "The Userland". THEY (the libraries) then "talk" to the kernel (networking, filesystem, input, output etc) giving the apps a nice API - "Application Programming Interface". A set of functions and tools for applications to use, so they don't have to recreate "the wheel" every time.
Now, I'm not going to go deeper, unless you want me to . I do understand that the un-initated don't know the difference between "Linux" the-kernel and "Linux" the-everything. But this *IS* important, believe it or not..
The kernel is absolutely useless on its own. It can't do squat! It was never MEANT to be used on its own. It was designed and built to be used *with* a distribution - "GNU" in the large majority of cases..
Although it's possible to use bare-bones Linux with either your own distribution (MASSIVE amounts of work, I know, I've tried it!) or an existing one (Debian GNU/Linux, RedHat, SuSE etc - they all provide binaries and packages for a multitude of processors), none of them have all the goodies that Google Play Store have.
And none of them are really targeted towards a mobile graphical environment.
Raspbian for example, was made for the Raspberry Pi, but that is in 99% of cases a non-graphical environment (robots and media stations mostly). Most distributions is like that.
The Play store on the other hand is *specifically* targeted towards a mobile, graphical environment. As this is. I would be foolish to try to reinvent the wheel when Android already IS Linux+userland+GUI+distribution.
Keep in mind though that Android apps on Google Play is compiled for an ARM (ARM64) architecture! Meaning, whatever hardware utilised, MUST run on/with an ARM processor..
All this limits the hardware choices substancially.
Everything "is possible". In theory. In practice though, I'd say the answer is "no". It is simply to much work to get it working. For absolutely no benefit.
With that being said... Bare Android on the other hand!! Now THAT is an idea.
Get your Android kernel source and compile it for the specific hardware you're using and then your Android distribution, set it up juuuuuuust so and you'll get what I (and probably everyone always wanted - a non-bloated piece of ... well, we've all seen them.

Categories

Resources