Hacker News new | comments | show | ask | jobs | submit login
Develop Android apps on the device (play.google.com)
46 points by 6ren 1869 days ago | hide | past | web | 44 comments | favorite

It is rapidly becoming obvious to me that Android is the "reasonable and right" way forward for desktop and laptop Linux as a UI layer. The only UI environment with more options and available applications on Linux is the web.

It doesn't seem relevant to me that it has a Linux kernel. It's a very different platform from a traditional Linux distribution. For those who want "Linux", Android isn't a suitable alternative. It is a great platform in its own right, though.

As someone put it, Android isn't Linux, it's a Java stack. It could run on Windows CE if Google had made it so.

You have a point, (except there is no Java on Android, only Dalvik bytecode ), but that's not the whole story. The experience that people have with their Android devices is very much due to the underlying Linux kernel and utilities: Device drivers, interrupt handling, multi-tasking, memory management, power-management, file systems, privileges, etc. And you can bypass the Dalvik VM with your apps if you wish.

That's true to an extent, but I seriously doubt Android's Java stack (and it is a Java stack, although it runs on Google's Dalvik) couldn't work fine on another underlying OS.

The funny thing is that the same can be said of Linux distributions. If you discard the huge driver support and some cool technologies that underlie some things we expect both from Android and Linux distributions, the kernel becomes irrelevant. The official port of Debian to the FreeBSD kernel[1] proves this.

[1] http://www.debian.org/ports/index.en.html

Indeed. In college the fans of "Linux" agonized over which Linux distribution or BSD distribution to use. Which goes to show that the idea of "Linux" on the desktop is very different from Android using a Linux kernel.

Since more than 90% were using a Linux kernel it was only occasionally that someone would say UN*X or 'nix. If not for the trademark that probably would have happened more often.

Google actually made quite significant changes to Linux kernel (Binder, ashmem, alarm timers, wake-locks, adb gadget support, userspace gpio, paranoid networking, etc) to make it work. So yes, it could run on another kernel, provided they would be allowed to make such changes on it too.

It should be noted that the alarm timers and wake-locks were the big showstoppers, and the most recent kernel release[0] offered a more generic implementation which is a superset of Android's current functionality:

[0] http://kernelnewbies.org/Linux_3.5#head-e04ea6fe9005ea057124...

And that's the great thing about Linux. Companies can optimize for their use and then bring their changes back into the mainline where everyone can benefit:


Regarding Java on Android, I think that Oracle made the same argument in court and lost big-time :-) And yeah, it is obviously possible that Dalvik could run on other operaring systems, but I don't think that the user-experience of Dalvik on WIN CE would pass muster with very many consumers :-)

What makes you think that? A Windows CE based Android would be nearly indistinguishable to end users from the Linux version save for an extra logo in the About screen somewhere. With the branding stripped off, the average person would never know Windows Mobile and Windows Phone (7) are both CE-based.

I was referring to Linux's superior network stack, memory management, multi-core CPU handling, etc. The user-experience of Dalvik on a Linux kernel would be superior to a Dalvik instance running on a WIN CE kernel.

Care to back that up with evidence? Can you prove Linux would actually have enough of an edge over WinCE that a user would be able to perceive a difference, given identical hardware?

Well we've diverged a bit from the thread, but I'll make a final comment. I'm not aware of any apples to apples comparisons between Linux/Dalvik and the equivalent under a WIN CE combo. So the above is my opinion based on years of painful experiences dealing with clunky Windows embedded devices. Ultimately, the market will decide if customers will put up with a WIN CE device and right now, it's not looking good for Microsoft.

>So the above is my opinion based on years of painful experiences dealing with clunky Windows embedded devices

Windows Phone and Windows Mobile are different from Windows embedded devices. WM sucked while WP is much much better.

>Ultimately, the market will decide if customers will put up with a WIN CE device and right now, it's not looking good for Microsoft.

I guess Linux failing on the desktop means it is clunky and painful to use and thus is not looking good? Not to mention that OS X share of desktop is less than WP's share of the phone market.

Marketshare is not the whole picture.

And that's not even counting WebOS devices like the Pre and Touchpad, which totally failed even with the "Linux's superior network stack, memory management, multi-core CPU handling, etc" of the kernel it used.

Does that matter? What matters is that it runs on a version of the Linux kernel that is converging with the current release.

It could run on a molecule of DNA, and that'd be super-cool, but it is Linux that is in desperate need of a good interface layer.

...and it already (sort of, through RIM's Dalvik VM) runs on QNX.

Ah, is that how RIM's "give us your Android app and it will automagically work on the PlayBook" works?

It seems relevant to me because its the only UI environment that runs in a relatively linux-compatible world that is modern, well-maintained, and performant.

What else does Linux have? GTK+? Qt? A slew of also-ran desktop environments that have existed for years without gaining significant reaction in the marketplace?

If we as Linux users want to make a world where there is a competitive, usable-dare I say, desirable-desktop environment for Linux, then Android wouldn't be a bad horse to hitch our wagon to.

And quite frankly, I suspect there would be a lot of money in it. Were I not embarking on a we startup I consider very important, I'd have left my job to pursue this.

One thing that makes me think Android is something else is the lack FOSS apps to run on it. The distribution methods even seem a bit hostile to me. I wanted a code editor for my Nexus tablet, and the options in the Android Market were paid closed-source apps and free closed-source apps.

I don't mind using the occasional proprietary app but what I and many others love about the Linux desktop is that that there is a nice FOSS app in almost every category.

> I don't mind using the occasional proprietary app but what I and many others love about the Linux desktop is that that there is a nice FOSS app in almost every category.

There is no reason that these cannot exist on the Android platform. Unlike the Apple App Store, which demands developers place additional restrictions on their devices, the Play store has gone out of its way to keep both passive (BSD, MIT, CC) and active (GPL & APL) licenses viable. You can even have your APK deliver your sources.

The distribution methods are whatever you want them to be. Supporting the Play store is almost certainly a must, but there are multiple app marketplaces and you're free to mix and match those as you see fit.

One issue I have with the Play Store is that AFAIK there is no way to make your Play Store .apk downloadable directly from the Play Store website without an android device. If I could download and inspect one at my leisure I might find it more comforting.

I suppose this could be fixed without Google's help, if someone made a third-party site with a list of vetted open source android apps with an email warning mechanism in case an open source app becomes closed in a future update.

I did think about it as I went about my day and I don't disagree with you about the potential for Android-based PCs that even a longtime Linux weenie could love. The OEMs tried hard to make Android NetBooks and tablets long before the platform was ready. I discounted them for reasons that were beyond their control. Now that the platform is getting ready I can see potential for that to happen.

I'm doubtful as to whether it's going to happen, but I've bet against Android and been wrong before.

I'm a big Android fan but I can't agree with that until / unless Android develops some kind of windowing system that allows multiple apps on the same screen. On a phone, full screen apps are fine. On a tablet it starts to get annoying. On a desktop it would be a disaster. Windows 8 is pointing the way, I hope Google has something thoughtful and well designed to eventually allow apps to share a screen (officially and without hacks).

There is essentially nothing that stands in the way of this except the will to do it and a device to motivate it, as evidenced by Samsung's recent offerings (which, presumably for expediency, is limited to their specially instrumented apps).

The fundamental models of Android does not preclude running multiple activities at once, assuming you can "focus" the back button to a specific pane.

I have my doubts that Google will ever support anything flexible enough to work as a general purpose OS. Android could work, but I think it will require a major community driven fork.

Just one example: I was trying to develop a tablet kiosk, I considered Android, until I learned that with every release it gets harder and harder to remove the on-screen navigation.

Google has a very specific user experience in mind, and they make it increasingly hard to deviate from.

I also might note it's trivial to hide the soft buttons bar at any time as of Ice Cream Sandwich. I'm not sure where you heard it's "getting harder" when there is an explicit API that everyone uses.

An explanation at Stack Overflow: http://stackoverflow.com/questions/8469112/hide-ics-back-hom...

A reference: http://developer.android.com/reference/android/view/View.htm...

That method doesn't work for kiosks, because they reappear whenever the user touches the screen.

I think there is a way around this (keep them hidden even on user interaction) in ICS, but they have removed it in Jelly Bean, i,e, apps that hide the on screen nav permanently in ICS no longer work in Jelly Bean.

Google has a specific use case for android (single mobile user) and deviating from that is like swimming upstream.

Okay, point taken. But kiosks are more than a little outside the scope of the discussion here. The people who want a great, open Linux laptop, tablet and desktop far outweigh the folks making kiosk software.

That's just the first thing that comes to mind that I wasn't able to do. The only purpose was to illustrate it's inflexibility.

I love the concept of Android, but a general purpose OS needs to be flexible--at least under the hood. As of right not Android is not a general purpose OS. I'm not saying it couldn't become one, just that it would take some pretty major changes.

The UI will have to change pretty significantly as well.

> The only purpose was to illustrate it's inflexibility... I'm not saying it couldn't become one, just that it would take some pretty major changes.

I think the changes are moderate and of an additive nature. But to bring out that hammer of frankness again, what the hell else do we have for desktop and laptop linux that is anywhere near close enough.

Hint: nothing.

Why wouldn't they embrace it? They already have a system flexible enough to make a product like the Transformer Prime feasible. All that's missing, really, is some compatibility work with the new wake lock support in the Linux kernel and a tileing window manager.

So what did you end up picking?

A small embedded Linux distro and embedded Qt.

Makes sense. I am trying to pick something for a similar use case and android+tablet hardware at first seem perfect and I thought, "oh, I'll just disable the home button" but unfortunately that is not possible. That would completely mess up the basic use case of Android -- to run mostly isolated apps on a consumer smart phones, allowing any app to lock the screen would kind of break that.

(NOTE: one way to hack it maybe is to encase the tablet in another box and cover the bottom bar, haven't tried that).

>(NOTE: one way to hack it maybe is to encase the tablet in another box and cover the bottom bar, haven't tried that).

That works--it was the first thing I tried as quick fix, but I thought it was a bit ridiculous to have to do that, so I decided against it.

You can use the full Eclipse or even Visual Studio on the new Windows 8 x86 tablets like the Surface Pro or lots of other upcoming offerings.


Upside is CPU power and existing toolchain compatibility, downsides are battery life, cost, thickness, size(compared to 7" tablets) and weight compared to Android tablets.

Right, but I have very little interest in that ecosystem. It's great for some people, but I think it's importance is overstated in the modern computing world.

Do people really code on their tablet/phone? I can't imagine how hard it would be for me to code on one. Usually (since I'm still relatively new to the platform) I'll be switching to StackOverflow/Google a fair amount while coding. Also ergonomics and speed of typing on a tablet if you're used to using a keyboard become an issue.

I think it might be great for kids, from what I've seen most teenager these days don't use computers a whole lot anymore and rely on their phone as primary internet device (for messaging, chatting, email and browsing). So they might stumble upon the possibility to make their own app and play around with it, creating a HelloWorld app and so on. That's how you get them hooked.

Possibly, I'm a college student currently and don't really see the use of it so maybe I'm already too old!

My phone? Naw, but a tablet like the transformer I would work on code if I was offsite and I needed to do a small fix or something like that.

With 2ghz quad-core arm, this is (now) a very good idea.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact