Hi boinc_dev, In the past week I have continued digging into architecture aspects of BOINC on Android in more detail. Mostly about topics discussed at http://boinc.berkeley.edu/trac/wiki/AndroidBoinc. I want to figure out what is possible and where the limitations are, regarding my GSoC proposal.
I learned that the BOINC client downloads project apps in order to compute tasks. This specially caught my attention, because I thought downloading code at run-time could be problematic. In order to examine the problems porting the BOINC client to Android more detailed, I have created a sample application which I would like to share with you if there is interest. I tested the following features on my (unrooted) Sony X10 and the emulator: a) Cross-compilation There is a cross-compiled native library for Unix/ARM. Compiled on my Windows machine using the build script supplied with the Android NDK. This would also be possible from x86 Macs or Linux computers. I read that it’s also possible to create a customized stand-alone tool chain with the NDK, but have not tried it yet. b) JNI Function of this native library get invoked from Java using JNI. I used javah from the JDK to create the headers. c) Dynamic shared libraries Most important, it downloads a native library from a web source, saves it to the application’s Internal Storage space, chmods it to executable and invokes a sample function of this library using JNI. All at run-time. I am quite surprised myself that this actually works. It makes it impossible for Google to examine an Application’s behavior before approving it to the MarketPlace?! -Joachim _______________________________________________ boinc_dev mailing list [email protected] http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
