[ Sorry but this is part 2 in the series, I have completed part 1 but will not be able to upload the article until tomorrow ]
This is the 2nd part of a series on my taking a look at the code here, to test it and then improve it if required. In part 1, I ran the Ocaml server on my laptop. In this part, I run the android client. Tomorrow (Monday), in part 3 I am going to get the client and server communicating. On Tuesday, I will hopefully collect some data that I can then extract in some suitable format. On Wednesday, I hope to run Iperf between my client and server to collect data and extract in some suitable format. On Thursday, I hope to have a day of collecting data using both the GitHub code and Iperf. Finally on Friday, I hope to use a statistics package such as MatLab to compare the data collected and see if there is a statistically significant difference.
Since I have managed to mess up my eclipse/android install (see part 1), this gives me a perfect excuse to set up eclipse with ADT Plugin on my desktop. I've also got my hands on a different android phone, since the code that testing was designed for API 10. The phone info is as follows:
Model: HTC Hero Andriod Version: 2.3.7CPU: ARMv6- compatible processor #34Available memory: 190MBMod Version: CyanogenMod-7.2.0-RC1-UNOFFICAL
Build Number: GWK74
Build Number: GWK74
THE BIG PLANThe stages in setting up the Android ADK, Eclipse and loading the code that I'm testing on the Android device (spec above)
- Download the Android SDK (Software Development Kit)
- The SDK only installs the SDK tools so to install other parts of the SDK, I've got to open up the Andriod SDK Manager, this is done by cd'ing into the tools/ directory and executing android SDK
- To develop an Andriod app, I need to download the lastest Android SDK Platform-tools and at least on Android platform. The platform that I want is the one associated with Android 2.3.7 and API 10, I'm going to get the related SDK Platform. Documentation and System image.
- Download and install the latest Eclipse Classic
- Add the source of the ADT Plugin to the Repository in Eclipse and download the Developer Tools in via Eclipse
- Specify the location of the Android SDK directory in the Preferences panel of Eclipse
- Create a AVD (Android Virtual Device) in Eclipse with target platform 2.3.7 and API 10
- Download the code that I'm testing from GitHub
- Import the code into Eclpise
- Test Code on the AVD
- Plug in Android phone and test code on the Andriod phone
AND THEN THE REALITY
The Android SDK is avaliable from the Android Developer Site, the package for Linux is called android-sdk_r20-linux.tgz.
The download comes as a .tgz file, this can be extracted using: tar -zxf android-sdk_r20-linux.tgz after using cd to move to the directory that you downloaded the file to.
I've found that its useful the learn as your going along, the purpose of the arguments that you are passing to programs, so that you can then easily adjust the arguments in future to suit your needs. Using man tar, explains that -z means filter archive through gzip, -x means extract the filesand -f means that your next going to give the file name.I would highly recommend that when following tutorials with Unix commands that you use man to look up what the executable and its arguments do.
As with the last time I installed Android SDK, to launch the Android ADK Manager, I need to enter ./android SDK instead of android SDK. This then appears to work fine, but I would still be interested as to why I didn't work as expected.
[To clarify This command is entered after you use cd to move into android-sdk-linux/tools]
I selected the required packages (that I've listed in the plan above) and download them, simple as.
(Read this whole paragraph before beginning to download Eclipse) I download Eclipse Classic 4.2 for 32 bits as a .tar.gz file and extract the file (like before using tar -zxf eclipse-SDK-4.2-linux-gtk.tar.gz ). To install Eclipse, I cd into the new eclipse directory, to find no configure file, so my normal method of installing from .tar.gz files, of using ./configure && make && sudo make install will now not work. I little bit of research highlights that installing eclipse its not as straightforward as it might seem and the best approach for integration into Ubuntu is to get it from the software center, though I would prefer to continue to use the command line, I'm happy to leave it for now and return to this point at a later date
I start up eclipse, select my workspace and go into Help > Install New Software. I add the ADT Plugin at the URL https://dl-ssl.google.com/android/eclipse/. I then select the Developers Tools and install
|With a slow connection, |
I restarted Eclipse and configured the new ADT Plugin to link it to the Android SDK. On launching Eclipse, I'm presented with a Welcome to Android wizard (not used in the instruction at https://developer.android.com/sdk/installing/installing-adt.html)
Using the Eclipse GUI setting up a virtual device is straightforward. I navigate to the correct page on GitHub, download the code and extract as already done twice before and then I import the code as an existing Android project into Eclipse.
On loading the code, that I know should compile, eclipse highlights 2 errors and 13 warnings. As I'm just testing the code today before reviewing it next week. I will ignore the warming but deal with the errors as they prevent me from testing the code. The first error is from the line: import com.google.gson.Gson; I download the Gson project from googlecode and add it as an external libray to the project to overcome this. The second error is from the following line: public void onClick(View v). The error is that: The method onClick(View) must override a superclass method so this can be fixed by removing the above @Override annotation
Before I can run the code on the emulator, I create a new andriod project and add the code so far. I then use Run As > Android Application to test the code and it works
I put the android phone into USB debug mode, plug it in and run as. Again it works :)
"The best part about being a computer scientist is the feeling of satisfaction when something finally works"