I recently installed the Bluestacks Android emulator. I happened to look at the process running under ProcessExplorer and was surprised to see that it is a .NET application.
The HD-Frontend.exe is the Bluestacks UI process and is highlighted yellow because it has loaded the .NET framework. There are a number of other processes associated with Bluestacks and most are also .NET.
Opening the EXE in Reflector.NET also shows that it is .NET.
I thought Android was Java-based. What's going on here?
Android is Java-based, but that does not mean an Android emulator has to be written in Java -- just functionally emulate Android devices.
While BlueStack's site does not list any system requirements for its emulator that I could find, at least a couple sites -- e.g. Bazooka Apps and Android Emulator for PC -- mention .NET as a requirement.
Ultimately the proof of what's going on is right in the process list and Reflector results you found.
its an emulation tool whose job is to read the dex code respond to that how the android phone should respond and not to compile and run that dex so it could be on python or ruby also there is no boundation at all that you have to make android emulator on java becuase android is built upon java.
Related
my title is a little different than what i try to say, i couldnt exactly tell what i mean.
as far as i know we develop android apps with android studio(and there were support for other ide s like eclipse before) you code it and make a gui app with drag and drop.
recently i tried to open source code of few android apps like whatsapp. i extracted the classes.dex file and checked the source code. it was written with java. but when i google "whatsapp" it says it is written with erlang.
my question is, how the code written with erlang turns to a java code? as far as i know you can make android apps with c++ too. since we dont have a translator for languages, how is this being possible?
WhatsApps backend is written in Erlang, not the app
https://www.quora.com/Is-WhatsApp-fully-written-in-Erlang
Android uses the Java Virtual Machine (JVM) runtime. To run Android apps on a phone you either need to write them in a JVM language (Java, Kotlin, Scala), or write them in another language and that has a rumtime interpreter on the device (Javascript + Android Webview, Flutter + Flutter Runtime)
You can write your app in just c++, but then you won't have any of the Android SDK available to you. You'd have to rebuild the entire view plaform (among other things). Flutter does this.
If you have more specific questions I'd be happy to answer them
I am very enthusiastic in learning and developing android applications using the native java language. Sadly my emulator is not running at all. It ran once but it was very very very slow. I am using Eclipse and the Android ADT bundle.
If it is a hardware thing here then please see my specs below. As far as I'm concerned, these are pretty decent specs for a laptop for developing apps.
Can anyone shed some light on why the emulator is unable to run properly? I really would like to start developing apps as soon as I can.
You can try three things:
Check whether your processor supports Intel HAXM. This will make the
emulator as fast as real device.
Try GenyMotion.
Alternatively, consider developing on Linux. The Linux kernel contains a module called kvm that is the equivalent of the Intel HAXM driver on Windows. The emulator is blazing fast on Linux with any kind of processor.
References:
1. Why is the Android emulator so slow?.
2. Speed up your Android Emulator!.
3. 8 Tips to Speed Up Your Android ARM Emulator.
4. How to speed up the Android Emulator by up to 400%.
The stock emulator is very slow. I had the same issue currently I am using Genymotion emulator which is way to better than the emulator that is packaged with the SDK.
here the download link:
https://www.genymotion.com/#!/download
Though it does not have all the features available for free
Is there a UI package that works on both Android and desktop Java? I am wondering if a package exists that can either be handed a window or activity and will display user defined graphics with a identical interface on both Android and a PC.
The end goal is to have code that works both on android and a PC with very minor to no modification either way. A tool such as Bluestack is not what I am looking for because it requires installation on the users end.
I do not think this is possible.
You can install the android sdk + emulator and run the apk on the desktop, but then you have already expressed your wish not to install anything on the client side.
Considering your requirement (identical interface, minor to no modification, no user installation) I would say your best bet is a web application with a mobile view css.
It turns out that JGame was more or less what I was looking for. It runs fine on both desktop java and android devices.
Well i `ve made an app using java me and as graphics i used lwuit library which i added into the midlet`s jar. On Nokia it runs smooth and i wanted to port it to android. So i found out about microemulator http://microemu.blogspot.ro/2008/11/running-java-me-applications-on-android.html and i followed those steps and i got the apk. However when i run it into the Android Emulator it closes at start. I don`t know what may be the problem because i was able to convert the demo jar app into apk and it ran succesfuly.
Any ideas on what should i do?
I suggest you port your application to Codename One which should be pretty simple. It has proper Android support which will make your application look and act native on Android.
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
I'd like to create Java app that should work on both Android and Windows
.
I created JAR Java app on Eclipse Classic 3.7.1.
It works okay on Windows with Java 6 VM (http://www.java.com).
BTW, I tryed j2me app for mobile phone on Windows.
It does not work. Hmm....
I 've installed Jbed 1.20 on Android Emulator.
That j2me app started okay there.
But my own Eclipse's jar did not run.
It said that "no Midlet name" in it.
Well, it seems I should develop j2me midlets for Android.
Is it right?
I have installed J2ME_Runner 2.0.3.7 plugin in my Eclipse.
But I can't create j2me app.
I tryed the following
1) I created Java project. Then I created "File-new-others-j2me midlet".
The Eclipse indicates that the following strings are invalid:
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
2) Next I tryed
file-new-project-J2me midlet suite.
I typed project name but I can fill the next screen.
There are empty "Group" and "Device". Dead end.
Questions.
How to create j2me midlet in Eclipse Classic for ANdroid 2.2 or 3.0?
Is it possible to run Java SE Jar files on Android?
What should I install to develop j2me midlets?
What is the better tool: Eclipse or NEtBeans?
BTW, I looked at J2ME "HelloWorld" source code.
Why it is so different than Java SE source code.
What? Java SE and ME source codes are not compatible?
Thanks.
I don't think there is an answer to your question. Java is not everything. You will not be able to create a GUI app that works on both Android and Java Desktop.
What you can do is to separate your application core library codes and your application GUI. The core library can be shared for both Android and Java Desktop application. However, you will need to implement GUI for Android and Java Desktop separately.
I believe J2ME is an old technology. Since most smart phone OSs have their own APIs and they perform much better than J2ME, there are less attention to this technology.
If you really want to have an application which run on any platform, you should considering making a web application. All you need is web browser but, of course, you will not be able to access system functionalities of your phone or OS.
I am not exactly sure, what you want to achieve.
Sure..there are probably J2ME emulators for both, Android and Windows, but I fail to see the point in using J2ME in either Android or Windows. Programming an App for both seems hard to me due to the different capabilities of each platform (Screen resolution, input device, ...)
Maybe there is also a misunderstanding: Android is a Mobile Device that features Java, but not in the way like some mobile devices that support JavaME. On Android mostly everything(e.g. Launcher, MailClient, Dialer, AppDrawer, ...) is built to run on the DalvikVM (The JVM on Android), not just some Games/Tools.
The DalvikVM provides nearly the same featureset as a desktop JavaVM, in fact you compile your class-files with a standard JavaSE compiler. You can use the same JAR libraries with Android and PC (as long as they don't use native code). So there is no need to use J2ME.
BUT: For some tasks (e.g. UI, device access) you have to distinguish between the 2 platforms, so it'll be hard to write an complete app that runs on both. But it is possible to create a JAR library with the Algorithms(maybe even the Listeners for the UI), which can be used by both, Android and PC - so you just have to build the UI for each platform seperatly.
For some hints, check out google for some Android tutorials, there are pretty good ones out there.
As for your second question: Eclipse! I never used NetBeans, so I can't tell which one is better, but there is the ADT, a plugin for AndroidDevelopment available, which is very powerful (I dare even say non-optional, even if you can develop for Android by just using Notepad and the Console)
J2ME apps won't work on PC, J2SE apps won't work on mobile phones. MIDlets are meant to be running on mobile phones so there's no way to run them on PC without emulators.
Back in old times I was developing J2ME apps in NetBeans with Wireless Toolkit tool. If you need to make MIDlets you will get all you need with that set.
Hint: developing rich feature MIDlets which should run properly on thousands of Java phones is a pain in the arse. Keep that in mind if you really want to start developing in native J2ME.