Changes between Initial Version and Version 1 of AndroidBoinc


Ignore:
Timestamp:
Mar 16, 2012, 12:18:47 PM (13 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AndroidBoinc

    v1 v1  
     1= BOINC on Android =
     2
     3== History ==
     4
     5Jeff Eastlack (then of Freescale) has been working on getting SETI@home
     6(and other scientific programs) to run fast on ARM processors since 2007.
     7As of 2011 he had SETI@home doing about 1 GFLOPS on the latest Freescale processor.
     8
     9In 2008 a team led by Oded Ben-Dov ported SETI@home and a simplified BOINC client to Java on Android.
     10This was a proof of concept but is not the right long-term approach,
     11as Android is now able to run native-mode programs.
     12
     13At about the same time, Peter Hanappe from Sony Research wrote, in C++, a simplified BOINC client
     14called BOINCLite, which is able to handle only 1 project attachment and 1 job at a time.
     15We considered this as a basis for BOINC on Android but decided it was too limited.
     16
     17At the 2011 BOINC Workshop, Keith Uplinger, Peter Hanappe and Michael Tarantino
     18experimented with Android and wrote up
     19[wiki:WorkShop11/HackFest#BOINConAndroid instructions for building Android apps on Windows].
     20
     21In 2011, Carl Christensen and Peter Hanappe independently built the BOINC client
     22(and the various libraries it uses) on Android.
     23
     24== Architecture ==
     25
     26As of now, the preferred architecture is based on the standard BOINC client,
     27so that we can allow multiple attachments, multiple jobs running in parallel,
     28and queued jobs.
     29
     30On !Win/Mac/Linux, the GUI and the client are separate processes that
     31communicate over a TCP connection.
     32However (as proposed by Peter Hanappe) for Android it's probably better
     33to bundle them in the same program.
     34The BOINC client would be included as a library,
     35and would run in a separate thread.
     36
     37== What about the GUI? ==
     38
     39The current BOINC GUI (the Manager) is implemented using WxWidgets,
     40for which no port to Android exists.
     41Also, though the Manager's "simple view" is similar to what
     42we might want on Android, it's not quite right.
     43
     44So the plan is to implement a new GUI, in Java, using the Android toolkit,
     45which will communicate with the client using the existing GUI RPC mechanism.
     46(Note: this mechanism currently uses a TCP connection, but it could be modified
     47to use Unix pipes or some other IPC mechanism).
     48
     49Note: someone (I'm not sure who) has already implemented a BOINC GUI for Android:
     50
     51http://code.google.com/p/androboinc/
     52
     53This is intended to control BOINC clients running on remote hosts,
     54but in principle it could control a local client.
     55I haven't looked at it.
     56
     57== Project plan ==
     58
     59To be determined