# Visual Basic > Universal Windows Platform and Modern Windows Experience >  Time to learn Java?

## dilettante

I wonder what the impact of this will be on most developers?




> While the idea of running Android apps On Windows PCs is interesting, Bajarin makes a more interesting strategic point. If Windows 8 tablet users can indeed just run Android apps what reason will there be for mobile developers have to spend time porting their applications to Windows 8 when they can kill two mobile OS birds with one programming stone?





> The BlueStacks Android Player is also available for any Windows XP, 7 or 8 PC directly from BlueStacks. AMD claims though that their version of the program thanks to "the collaboration with BlueStacks with optimizations for AMD GPU and APU [accelerated processing unit] technology enables a superior experience on AMD-powered PCs."


BlueStacks and AMD bring Android apps to Windows

Microsoft seems happy enough.




> BlueStacks' Rosen says that most of the people at Microsoft he's spoken to have been receptive to BlueStacks powering Android apps on Windows. "Microsoft gets all the apps that they want," he said in an interview before CES. 
> 
> BlueStacks for Windows 8 has buttoned up several hardware partners, although it was reluctant to name more than a few names at this time. It did call out AMD, which has BlueStacks available for hands-on demos on computers at its CES booth; Hewlett-Packard, which will be providing the software on its All-in-One PCs; and InHon, a Taiwanese newcomer to the PC marketplace that will be releasing a carbon-fiber ultrabook line in March 2012. InHon will include BlueStacks on its upcoming Windows 7 line, as well as its Windows 8 computers when they come out later in 2012.


BlueStacks goes Metro with Windows 8

----------


## Nightwalker83

I'm already learning java but like the other languages I know I'm not an expert in it.

----------


## dilettante

Well if this "BlueStacks" thing doesn't turn out to be a geek's toy or dancing bear and really works well enough, and if it comes preinstalled on enough new Windows machines...

It may well make some sense for "app" developers to target Android.

The whole "app" game seems to be about mass market penetration.  Normally this is accomplished by writing the thing 2 or 3 times to cover the most popular platforms.

Even if it turns out that Metro/WinRT "apps" make sense as a target for _in-house line of business_ applications it probably suggests they'll be wanted on tablet or even phone devices too.  So mass market has a sort of meaning there as well even if the application is nothing of use to anyone outside the company.  You'll want to target as many devices as possible.

Writing it once for Android and covering Android phones and tablets as well as Windows desktops and tablets sounds pretty good from the development cost point of view.  Then if required you can always build a secondary iOS version, perhaps leaving that target until the application has proven itself useful enough.


Another interesting use of virtualization if nothing else.

----------


## Jenner

We uninstalled Java from all our company PCs recently because for what little we use it for, we got sick of the constant security updates and issues forcing a full-download and install of the thing.  Until the Java environment gets an incremental, unobtrusive patch and update system like Windows, the IT headache of maintaining it on 50 PCs is just a drain on resources.

----------


## dilettante

You don't need Oracle's Java installed at all to run Android applications on Windows.  This is done by running them within a virtualized copy of Android, which includes the Dalvik VM, which is based on but distinct from the Oracle JRE.

BlueStacks is just one of these under development.  A newer entry into this arena is called WindowsAndroid, which like BlueStacks wraps the virtualization software, Android, etc. into one bundle.


As far as I know there are provisions for pushing JRE updates out to client PCs silently from SUS servers and the like.  I've had clients who were huge Java shops and would laugh at a mere 50-PC network to manage.  You probably have a point about the lack of incremental updating, but I personally find the frequent, massive, multiple (for several Framework versions) .Net updates each month to be far more painful.

Bad enough you have to update your hardware PCs, but all of your test and debug VMs need updating too.  The .Net tax each month is a far more costly proposition in my eyes, but then I only have two machines where Java is installed and don't need it on everything else (unlike  the force-fed .Net Frameworks that I have no use for).

----------


## DataMiser

Interesting, I have not really looked into Java, have did a little JavaScript but very little of that. 
Do you have any good links to Java resources and/or a VM for running Android under windows?

----------


## dilettante

Well "Android Java" isn't straight Java, but the core language is the same.

Android Bootcamp Series 2012 is a nice series of short sessions, though the pace can be a little tedious.


http://www.android-x86.org/ offers a few builds that you can install into a VM.

The one I'm using (from another site) isn't available anymore, probably because it has been rendered obsolete by newer developments or the guy got bored and moved on or something.  Who knows?  Maybe he got into trouble with Android-x86.org, Intel, AMD, or somebody who are running the mainline x86 Android projects.

----------


## HanneSThEGreaT

> The whole "app" game seems to be about mass market penetration.  Normally this is accomplished by writing the thing 2 or 3 times to cover the most popular platforms.


True, and this really sucks. recently I had to make an Android app, a Blackberry app, and is now busy with the Windows 8 Store 8 app.

I had to rewrite the same app 3 times to be compatible with all major app stores.
What is nice though is that the guys have made it so very easy to get started with Android & blackberry programming. You just download the Android SDK ( which contains the Android phone simulator, samples, as well as Java Eclipse ) or the BlackBerry SDK ( which includes the Blackberry phone simulator, samples as well as Java Eclipse Indigo )

The main problem however comes with Windows Phone 8 apps. Why?

Well, the hardware and software requirements is a bit ridiculous, especially for a country such as South Africa. The only thing that really bothers me about its hardware requirements is the fact that you need Intel processors, instead of AMD. The following list lists what is needed before starting Windows Phone 8 development:

*64bit host operating system.
At least 8GB of RAM for the host machine so that you can assign 4GB to the Virtual Machine
30-40GB of free space.

The free space is not really a problem, usually. The 64 bit operating system, hmm, yeah, I suppose I can understand that if I try really hard; but the fact that I will need a VMware machine bothers me a bit. The problem is: If you are running a machine with an AMD processor, you will not be able to load the Windows Phone 8 emulator, but, you can still program with the use of Visual Studio 2012 Ultimate or VS Express for Windows Phone 8 though.

This puts a lot of people off, even me. Why? Well, this means if I have an AMD machine, I either need to buy an INTEL processor, or even a new PC ( depending on your resources ), just to be able to load Hyper-V on my machine to use the Windows Phone 8 emulator.

Software

You will also need 
Windows 8
Windows Phone 8 SDK
Coreinfo
VMWare Workstation 9 or higher

This sucks, beacuse instead of just having a simulator like Android and Blackberry have, you would have to run the Windows 8 Phone simulator in a virtual machine environment!

So, if Android can enter the Windows market so to speak, I';d say, why not? Yay!





> You don't need Oracle's Java installed at all to run Android applications on Windows.  This is done by running them within a virtualized copy of Android, which includes the Dalvik VM, which is based on but distinct from the Oracle JRE.


Correct. 




> We uninstalled Java from all our company PCs recently because for what little we use it for, we got sick of the constant security updates and issues forcing a full-download and install of the thing.  Until the Java environment gets an incremental, unobtrusive patch and update system like Windows, the IT headache of maintaining it on 50 PCs is just a drain on resources.


Yeah, that sucks with Java continously pushing updates through, but as mentioned before by dilettante, you don't need to install everything that is Java, just the necessary coding tool ( Eclipse ) with its associated plug ins

----------


## dee-u

Anyone here who can point me a step-by-step instruction on what to install so I can delve into Android development? Can we use a database with it? Planning to make a student attendance system with android so I can just use a phone or tablet to check the attendance of students.

TIA

----------


## HanneSThEGreaT

All you need is the Android SDK. You can find it here :

http://developer.android.com/sdk/index.html

It includes Eclipse, Android SDK, The Android SDK tools and more. It is a big-ish download, around 450 MB

AFAIK, it also comes with the SQLiteDatabase classes and so forth

----------


## dilettante

But SQLite is a local datastore, a bit more primitive than MS Jet MDBs and without any such thing as multimachine access.

To create multiuser applications you will need to use some client-server DBMS, or a web service, or perhaps some cloud based data service as a middleman.  Basically if you are going to do mobile development you need to get "into the cloud" and in most cases a NoSQL database is going to be (a.) cheaper to use and (b.) less likely to lead you into poor practices than a cloud-resident or externally hosted RDMBS.

You can still use SQLite for a lot of data, but generally you are going to need to replicate it or sync it to some master database except for strictly local data.

----------

