Changes between Version 7 and Version 8 of AndroidBoincImpl
- Timestamp:
- Aug 30, 2016, 9:45:24 PM (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AndroidBoincImpl
v7 v8 1 1 [[PageOutline]] 2 2 3 = AndroidBOINC=3 = BOINC for Android = 4 4 5 AndroidBOINC is a port of BOINC to Android devices. 6 Using AndroidBOINC, BOINC projects can distribute scientific tasks 7 to Android devices, 5 This doc describes a port of the BOINC client to Android devices. 6 Using this client, BOINC projects can distribute scientific tasks to Android devices, 8 7 enabling volunteers to contribute CPU time of modern smartphones and tablet computers. 9 10 Projects are free to download the sources of AndroidBOINC from UCB's BOINC repository and configure the client.11 Projects are in charge of their version's distribution e.g. on Google's !PlayStore.12 8 13 9 == Architecture == 14 10 15 The Android application consists of the regular BOINC Client11 The client consists of the regular BOINC core client 16 12 and an Android-specific GUI. 17 AndroidBOINC combines the two independent BOINC components of Client and GUI. 18 19 The BOINC Client was adapted to accommodate the needs of mobile devices 20 and can be cross compiled to run on ARM-Android-based devices. 21 To allow volunteers to control the Client, 22 AndroidBOINC's second component is a GUI, 23 developed for Android using the common design patterns. 24 AndroidBOINC bundles those two components together, to be distributed in a single APK. 25 26 Client and GUI communicate via RPCs, similar to versions on Windows or Linux. 27 28 Talking Android, AndroidBOINC consists of a Service (called Monitor), 29 which interacts with the BOINC Client and holds data (!ClientStatus, !AppPreferences) 30 which is accessed from various Activities. 31 13 These two components are bundled together, to be distributed in a single APK. 14 Client and GUI communicate via RPCs, similar to BOINC on Windows or Linux. 32 15 33 16 === Aspects of the Android platform === … … 47 30 file at compile-time, 48 31 the user then gets prompted to grant access upon installation. 49 AndroidBOINC requires the "Network" and permission in order to32 BOINC requires the "Network" and permission in order to 50 33 transmit workunits and setup socket for the RPC communication 51 34 in-between Manager and Client. 52 35 The permission "RECEIVE_BOOT_COMPLETED" is used to start 53 the BOINC Client upon boot.36 the BOINC core client upon boot. 54 37 Permissions get granted to the App-specific Linux User ID, 55 38 and therefore also applies to its child-processes. … … 65 48 66 49 * Distribution: 67 Like every other application, AndroidBOINC comes in an APK package.68 The BOINC Client gets distributed as part of the Android app and resides50 Like every other application, BOINC comes in an APK package. 51 The BOINC core client gets distributed as part of the Android app and resides 69 52 in its "assets" directory. 70 When executed, the Client gets copied to the local storage space and executed from there.53 When executed, the core client gets copied to the local storage space and executed from there. 71 54 72 55 === Considerations for mobile devices === 73 56 74 57 In order to accommodate the limitations of mobile devices, 75 two features got introduced to the BOINC Client:58 several features were added to the BOINC Client: 76 59 77 * Wifi detection: AndroidBOINC, by default, does communication with its project scheduler78 only when logged into a Wifi .60 * Wifi detection: BOINC, by default, does network communication 61 only when logged into a Wifi network. 79 62 This helps volunteers keeping control of limitations on a data plan. 80 63 81 * Charging only: AndroidBOINC, by default, computes tasks64 * Charging only: BOINC, by default, computes tasks 82 65 only when the device is being connected to a power source, preventing battery drowns. 83 66 … … 92 75 === Config file === 93 76 94 A config file (currently prefs.xml, should be renamed) will contain 77 A config file (currently prefs.xml, should be renamed) will contain boolean flags 95 78 * "run at boot?" 96 79 * "seen welcome?" (has the user seen the welcome dialog?) … … 151 134 * leave the client running 152 135 * need an "exit all" button some 136