Difference between revisions of "Android"

From HaskellWiki
Jump to navigation Jump to search
(Remove the reference to thrift - unrelated)
(8 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
== Introduction ==
 
== Introduction ==
   
Android is an operating system for mobile phones, based on Linux; software development is mainly done in Java. See the [http://en.wikipedia.org/wiki/Android_(operating_system) Wikipedia article] for more information.
+
Android is an operating system for mobile devices, based on Linux; software development is mainly done in Java. See the [http://en.wikipedia.org/wiki/Android_(operating_system) Wikipedia article] for more information.
  +
   
 
== How to develop Android software in Haskell ==
 
== How to develop Android software in Haskell ==
   
  +
There are two main approaches to writing Android applications. You can either use
Use the [http://en.wikipedia.org/wiki/Java_Native_Interface JNI] to Haskell binding library [https://github.com/neurocyte/foreign-jni foreign-jni]; demonstration of the use: [https://github.com/neurocyte/android-haskell-activity android-haskell-activity].
 
  +
the Java Native Interface ([http://en.wikipedia.org/wiki/Java_Native_Interface JNI])
  +
or the Native Development Kit ([https://developer.android.com/tools/sdk/ndk/index.html NDK]).
  +
 
If you'd like to go down the path of using the JNI there is a Haskell binding library [https://github.com/neurocyte/foreign-jni foreign-jni]; here is a demonstration of its use: [https://github.com/neurocyte/android-haskell-activity android-haskell-activity].
   
  +
You can also create applications using the NDK. See the [https://github.com/ajhc/demo-android-ndk NativeActivity demo application] using the [http://ajhc.metasepi.org/ Ajhc Haskell compiler] for example.
Another option is, to use Thrift, as described in the blog article [http://mortenib.wordpress.com/2009/10/29/thrift-and-haskell/ Thrift and Haskell]
 
   
  +
There has also been some success in compiling GHC as a cross compiler. See below.
There is
 
[https://github.com/ajhc/demo-android-ndk NativeActivity demo application]
 
using [http://ajhc.metasepi.org/ Ajhc Haskell compiler].
 
   
 
== Discussions ==
 
== Discussions ==
Line 26: Line 29:
 
* [http://hackage.haskell.org/trac/ghc/wiki/Building/CrossCompiling Cross-compiling GHC]
 
* [http://hackage.haskell.org/trac/ghc/wiki/Building/CrossCompiling Cross-compiling GHC]
 
* [https://github.com/neurocyte/ghc-android ghc-android]; a build script for building ghc cross compilers targeting Android.
 
* [https://github.com/neurocyte/ghc-android ghc-android]; a build script for building ghc cross compilers targeting Android.
  +
* [https://github.com/sseefried/docker-build-ghc-android docker-build-ghc-android]; a [https://www.docker.com/ Docker]file to build a GHC 7.8.3 cross compiler targeting Android on Debian Wheezy. Based heavily on [https://github.com/neurocyte/ghc-android ghc-android]. You can also just <code>docker pull sseefried/debian-stable-ghc-android</code> from the Docker Hub.
  +
* [https://github.com/conscell/hugs-android hugs-android]; a port of HUGS Haskell interpreter to Android.
 
* [[ARM]]
 
* [[ARM]]
 
* [https://ghcarm.wordpress.com/ GHC on ARM]
 
* [https://ghcarm.wordpress.com/ GHC on ARM]

Revision as of 18:32, 18 March 2015

This article is a stub. You can help by expanding it.

Introduction

Android is an operating system for mobile devices, based on Linux; software development is mainly done in Java. See the Wikipedia article for more information.


How to develop Android software in Haskell

There are two main approaches to writing Android applications. You can either use the Java Native Interface (JNI) or the Native Development Kit (NDK).

If you'd like to go down the path of using the JNI there is a Haskell binding library foreign-jni; here is a demonstration of its use: android-haskell-activity.

You can also create applications using the NDK. See the NativeActivity demo application using the Ajhc Haskell compiler for example.

There has also been some success in compiling GHC as a cross compiler. See below.

Discussions


Related