SK Sync

SK Sync Client Version 1.0.01
SK Sync Server Version 1.0.01

This document describes the second release of SK Sync.
It was last modified on January 2, 2009.
Questions about this program should be addressed to info.sktechnology AT gmail.com
Any mail sent to this address should have SK Sync at the start of the subject line.

A history of changes made to the program may be found here.

SK Sync consists of a pair of programs, SK Sync Client and SK Sync Server. The client is run on an Android device. The server is run a PC which could be running Windows, MAC OSX, or Linux. In fact, the server is Java program and should run on any machine with a Java 5 runtime. If you upgrade either of these programs from a previous version, you must upgrade the other one also.

SK Sync will synchronize files stored on the SD card of an Android device with the files stored on another computer. It can also be set to transfer files just one one direction, to the Android device, or to the PC. It communicates through the wireless interface. When copying a file, any directories that do not exist at the destination will be created.

Please check the list of known limitations.
Please read the disclaimer at the end of this document.

System Requirements

User Requirements
The program is easy to use once it it set up. However, depending on your home setup, it may take some expertise to get the server set up on your system. Here are the things you need to be able to do: Obtaining and installing the server program

The server program is available without charge and can be downloaded from http://www.sktechnology.net/android/sksync/files/.

This is an executable jar file which should run any on system having a recent Java runtime environment. If you do not have this installed, you can get it for free from java.sun.com/getjava. On a windows PC you should be able to run the program just by clicking on it. In other environments, go into a command window, and execute:
     java -jar syncserver.jar
If the java program is not in your execution path, you might need to enter the full path to this program.

When you start the program it will bring up a window. Push the Start button to start the server. You should get the message:
Server waiting for connection on port 23456.
If you get the message
Error setting up server socket on port 23456
it means another program is using this port. If this other program is another copy of SK Sync Server, you will need to stop that program. Otherwise, you will have to set up the server to use a different port number. Choose a number between 10000 and 30000. Click the Change Port or Detail button. Enter the new port number and push return. The new port number should appear at the top of the window. Try starting the server again. You might have to change this port number every time you start the server on your PC.

If you changed the port number used by the server, you will have to configure the port number on the android device also. This is explained here.

Look at the top of the server window for the IP address of your machine, listed on the second line under Host:. You will need to configure the client program with this number. If the address is listed as unknown, the program could not determine its address and you will need to find your IP address in another way.

Make sure you have started the server and the message
Server waiting for connection ...
is displayed. Keep the server running and start the client program on the android device. You can minimize the server window if you like.

Running the client program on the Android device.
You can obtain the client program from the Android Market. Search for SK Sync. Install it on your android device. Make sure you have enabled wireless connections on the Android device and are connected to your home wireless network. Some help with this is available here.

When you start the client you will see 8 values displayed at the top of the screen. You will need to change at least some of these. These eight values configure the client program and will be referred to as a configuration set. You can make several configuration sets for different purposes and easily switch among them. Here is a list of the values and what they mean.

The client comes with 3 sets of configurations. You can switch among them by pushing the Next Set button at the bottom of the main screen. You will probably need to edit these configurations for your current setup. You can modify, delete, or add configurations. Changes made to the configurations on the Android device will remain in effect after you leave the program. To modify the configurations: Three buttons appear below the editable field. As explained above, the Next button changes which configuration parameter to edit. The Reset button sets all of the current configuration parameters to their current saved value. Default changes all of the values to the first default configuration. No permanent changes are made until one of the buttons in the lower right corner of the screen is pushed.

At the very bottom of the screen are four additional buttons.

The hardware Menu button has one option, Initial Configuration, which restores the configuration to its initial values. Back on the main screen, the Next Set button will choose the next saved configuration set. Push the Start Sync button at the bottom of the screen to start the synchronization of files. The Android device and your PC will start exchanging information. If you see the message Sync Thread Done and no error messages, the synchronization has been competed successfully. If not, see the Troubleshooting section.


Examples

Synchronization
This will make the list of files in an Android directory agree with those in a directory on the PC. Files that are in one place and not on the other will be copied. If the use time option is in effect, and a file exists in both places with different modification times, the one with the later modification time will replace the one with the earlier time. If no time options is used, then only files that do not exist on the other machine will be moved.
Set the direction to bidirectional (no time) to synchronize files in this way. Any destination directories needed at either end will be created if they do not already exist. If you choose recursive mode, subdirectories will also be synchronized. If two files have the same name and modification time in both places, they are considered equivalent, even if they are different. In this case neither file will be modified.

The first default configuration set is an example of synchronization. It will sync files between the /sdcard/skmemos directory, used by the SK Memo program, with the directory D:/myandroid/skmemos directory on your PC. You can change either of these directories if you want to sync information from other programs.

Moving files to the Android device from a PC
This moves files from a PC to the Android device. Only files that do not exist on the Android device in the given directory, or those with later modification date on the PC (if use time is selected) will be moved. No files on the PC will be modified. If you choose recursive mode, files in subdirectories will also be moved. Set the direction to be from server to move files in this way. Directories on the Android device will be created if necessary.

The second default configuration set is an example of this configuration. It will move files from the directory D:/myandroid/mymusic on your PC to the /sdcard/music directory of your Android device. This latter directory is where music files are normally stored. To load additional music onto you Android device, just put them in the PC directory and start SK Sync on the Android device using this configuration. Files from D:/myandroid/mymusic already on the Android device will not be copied. No files will be copied to the PC.

Moving files to a PC from the Android device
This moves files from the Android device to the PC. Only files that do not exist on the PC in the given directory, or those with later modification date on the Android device (if use time is selected) will be moved. If you choose recursive mode, files in subdirectories will also be moved. No files on the Android device will be modified. Set the direction to be to server to move files in this way. Directories on the PC will be created if necessary.

The third default configuration is an example of this. Pictures taken by the camera are stored in the SD card in the directory /sdcard/dcim/Camera. This configuration moves files from this directory to the directory D:/myandroid/camera. You can change this destination directory to the appropriate one for your PC. The direction is set to to server so files are only copied to the server, and only if they either do not already exist on the PC, or they have a later date on then Android device.


Troubleshooting
If you push the Start Sync button on the Android device and immediately get an error message starting with
!!! Error connecting to remote host
check the following:

Here is a way to test if you have a wireless connection between your PC and the Android device.


How to find your server (PC) IP address


Starting SK SYnc Server
The SK SYnc Server is distributed as a java JAR file. On most systems you should be able to run the program by just clicking on the file. It requires that a Java runtime system version 1.5 or later is installed on your system. You can download this for free from java.sun.com.getjava. If it does not run when you double click on it, right click and choose Open With and select Java Platform.

You can also run this from a command window by executing:
java -jar syncserver.jar. If it cannot find the java program, you might need to include the full path. On a Windows machine, look for it under
C:\Program Files\java


Known Limitations


Disclaimer:
The SK Sync Server is provided free of charge without any guarantee. You are responsible for making sure it suits your needs. You should always make a backup of your important files that is independent of this program.